デスクトップ向けビルド
debuff のゲームは静的な Web アプリなので、ネイティブのウィンドウで包めばデスクトップアプリとして出荷できます。おすすめは Tauri です。ブラウザを同梱する代わりに OS 自身の Web ビューを使うので、インストーラーがとても小さく収まります。
Windows での検証では、スターターゲーム(npm create debuff)が 1.8 MB のインストーラー(MSI なら 2.8 MB)になりました。アプリは約 1 秒でウィンドウを開き、メモリ使用量は約 33 MB でした。Electron アプリは、だいたい 80〜100 MB あたりからのスタートです。
現状
この手順は Tauri 2 を使って Windows で検証しています。macOS と Linux もそれぞれの前提条件を満たせば同じ手順ですが、まだ検証できていません。これを自動でやってくれる debuff desktop コマンドはロードマップに載っています。
1. 前提条件
Rust と、各プラットフォームの Web ビュー用ツールが必要です。Tauri の前提条件ガイドに従ってください。
- Windows: Rust(MSVC ツールチェーン)、Microsoft C++ Build Tools、WebView2(Windows 11 にはプリインストール済み)。
- macOS: Rust と Xcode コマンドラインツール。
- Linux: Rust、
webkit2gtk-4.1、そして Tauri が挙げているビルド用パッケージ。
2. ゲームに Tauri を追加する
ゲームのフォルダ(npm create debuff で作ったもの)で、次を実行します。
npm install -D @tauri-apps/cli@2npx tauri init --ci --app-name my-game --window-title "my game" --frontend-dist ../dist --dev-url http://localhost:5173 --before-dev-command "npm run dev" --before-build-command "npm run build"これで src-tauri/ ができます。src-tauri/tauri.conf.json を開いて、2 つの項目を設定しましょう。
identifier:com.yourname.mygameのような、一意の逆ドメイン形式の ID。プレースホルダーのままだと Tauri はビルドを拒否します。app.windowsのウィンドウサイズ。たとえば"width": 960, "height": 540のように、ゲームのアスペクト比に合わせます。
3. 実行とビルド
npx tauri devゲームがホットリロード付きのデスクトップウィンドウで動きます。debuff の開発パネルもいつもどおり使えます。
npx tauri build本番用のゲームをビルドし(npm run build)、ネイティブのシェルをコンパイルして、インストーラーを src-tauri/target/release/bundle/ に書き出します。Windows なら NSIS の …-setup.exe と .msi です。初回ビルドは Rust の依存関係をコンパイルするので数分かかりますが、2 回目以降はずっと速くなります。
ゲームで気をつけたいこと
- Web ビューの違い: Windows は WebView2(Chromium)を使います。macOS と Linux は WebKit(WKWebView と WebKitGTK)なので、出荷前にそちらでもテストしましょう。WebGL2 は広くサポートされていますが、WebKit ベースの Web ビューではゲームパッドのサポートが限られています。macOS や Linux でコントローラーが必要なら、早めにテストするか、tauri-plugin-gamepad のようなネイティブのゲームパッドプラグインを使ってください。
- Linux のグラフィックス: 一部の Linux 環境(NVIDIA の GPU が多いです)では、WebKitGTK のドライバーの問題でウィンドウが真っ白になります。Tauri が回避策をまとめています。
- スプラッシュ: 本番ビルドは「made with debuff」のカードで始まります。消したいときは
new Game()にsplash: falseを渡してください。Poki などのポータルではこれが必須です。公開を見てください。 - フルスクリーン: ウィンドウに
"fullscreen": trueを設定するか、Tauri のウィンドウ API で実行時に切り替えます。
出荷
- itch.io: インストーラーかアプリのフォルダを zip にして、Windows、macOS、Linux 向けのダウンロードとしてアップロードします。Web ビルド(
dist/)も、同じゲームのブラウザ版としてアップロードできます。 - Steam: 動きますが、コミュニティ製の Rust クレートを使った Steamworks の統合が必要です。公式の Tauri プラグインはありません。
ほかの選択肢
Electron は自前の Chromium を同梱するので、ゲームパッドも含めてどのプラットフォームでも挙動が同じです。その代わり、インストーラーは 100 MB 前後になります。macOS や Linux での WebKit の違いがどうしても障害になるなら、こちらを選びましょう。