HTML5ゲームをブラウザで遊べるリンクに
> Unity、Godot、Phaser、WebGLのビルドを公開。
> SharedArrayBuffer SharedArrayBufferが必要なビルド向けに分離ヘッダーを設定。
> Brotli 重い素材を/ gzipで配信。
> 公開前に実機と公開リンクでテスト。
ブラウザゲームと WebGL の一般的な出力に対応
Webゲーム公開で起きやすい問題
SharedArrayBuffer が使えない
スレッドを使うブラウザ向けビルドには、安全なコンテキストとcross-origin isolationが必要です。必要なヘッダーがないと、UnityやGodotのWeb出力が実行時に止まることがあります。
初回読み込みが重い
WASM、データファイル、テクスチャ、音声ファイルが大きい場合、圧縮と配信設定が合っていないと最初のプレイまで時間がかかります。
セキュアコンテキストが必要な API が使えない
カメラ、マイク、没入型ブラウザAPIなどはHTTPSを前提にしています。HTTPSで公開されていないと、ゲーム側の機能がブラウザに止められます。
公開前のチェックリスト
エクスポート一式をアップロードする
生成されたHTML、ローダースクリプト、WASM、データファイル、テクスチャ、音声、エンジンの補助ファイルを同じフォルダに保ちます。一つ欠けるだけで画面が真っ白になることがあります。
圧縮済みファイルの扱いを確認する
Unityなどのエンジンは、事前に圧縮された素材を出力する場合があります。配信時のContent-EncodingとContent-Typeが合っているか確認します。
スレッド対応ビルドの条件を見る
SharedArrayBufferを使うビルドでは、ページがHTTPSで公開され、cross-origin isolatedになっている必要があります。外部埋め込みが条件を崩すこともあります。
実際の端末でプレイする
公開リンクを共有する前に、スマートフォン、PCブラウザ、プライベートウィンドウ、遅い回線で読み込みと操作を確認します。
遊べるリンクとして共有
インディーゲームの公開
ゲームジャム、デモ、プロトタイプ、プレイアブルトレーラーを、サーバー開発の作業にせず公開できます。
ブラウザ上のクリエイティブ制作
Three.jsやPixiJSなどを使った3D表現、インタラクティブアート、実験的なWeb体験を公開リンクで見せられます。
ゲーム公開で確認したい要件
ブラウザでの動作は、エンジン側のエクスポート設定、ビルドサイズ、外部スクリプト、プレイヤーの端末にも左右されます。
デバッグメモ
>SharedArrayBuffer はなぜ重要ですか?
一部のWebAssemblyワークロードではスレッド処理に必要です。ブラウザは安全でcross-origin isolatedなページにだけ公開するため、レスポンスヘッダーが重要になります。
>Godot 4のWebエクスポートにも使えますか?
はい。最終的なWebビルドに必要なファイルがそろっていて、エクスポート設定がブラウザ向けに合っていれば、静的出力として公開できます。
>大きなビルドもアップロードできますか?
大きなゲームではアセット分割や圧縮の設計が必要ですが、軽いランディングページより重いブラウザゲームの公開も想定しています。
>オフライン対応のPWAも公開できますか?
必要なmanifestやservice workerのファイルをビルドに含めていれば、静的ファイルとして一緒に公開できます。
プレイ可能なビルドをアップロード
エクスポートフォルダをアップロードし、公開リンクで読み込みと操作を確認してから共有できます。