ゲームをwebへ移植する

ゲームをwebへ移植する

ブラウザのビルドには、ファイルシステムがなく、厳しいメモリの上限があり、プレイヤーが見ているダウンロードがある。その三つが移植のすべてを決める。

ゲームのwebへの移植とは、権利のあるゲームの、WebAssemblyとブラウザのグラフィックスのAPIを通して動くブラウザ版を作ることだ。Summer Engineに固有の規則が一つある。webではC#に対応していないので、ブラウザのビルドはGDScriptかC++を使う。他のすべての対象はC#に対応している。

webは、プレイヤーがダウンロードの進みを眺める唯一のプラットフォームだ。一メガバイトごとに離脱の機会がある。メモリの上限はデスクトップより低く、とくにモバイルのブラウザで低い。ファイルシステムがないので、セーブはプレイヤーが消せるブラウザのストレージに住む。音声はプレイヤーがページを操作するまで開始できない。

その代わりに、即座に遊べること、どこにでも貼れるリンク、ストアの承認が不要なことを得る。webのビルドは現存する最良のデモの形式であり、デスクトップのリリースの代わりではなく並べてブラウザ版を出す強い理由になる。

大きさと読み込み時間が結果を決める

始める前にダウンロードの予算を決め、それに合わせて設計する。テクスチャを圧縮し、全解像度で見えないものは縮め、音声は妥当なビットレートのOGGへ変換し、使っていないコンテンツは書き出しから外す。遊べる最初のシーンを素早く読み込み、残りは順次か遅れて読み込む。回転する印ではなく本当の進みを見せる。開始まで三十秒かかるwebのビルドは、押した人のほとんどを失う。

コードで回避するブラウザの制約

音声のコンテキストは利用者の操作があるまで停止したままなので、クリックで開始する画面を足す。ストレージはブラウザのローカルにあり消されうるので、セーブは最善の努力として扱い、進行が重要なら書き出しかクラウドの選択肢を出す。タブは背面に回されて動作が抑えられるので、表示状態の変化で一時停止する。ネイティブよりフレームレートが揺れるので時間差を使う。全画面とポインターの固定は、どちらも利用者の操作が要る。モバイルのブラウザはメモリがより厳しく、キーボードもない。

ページの上での入力

キーボードとマウス、ブラウザのゲームパッドのAPIを通したゲームパッド、そしてモバイル向けのタッチに対応する。プレイヤーが矢印キーを使ったりキャンバスでスワイプしたときに、ページが巻き上がらないようにする。プレイヤーがゲームの外をクリックしてフォーカスを失う場合を扱う。固定の一つの解像度を前提にせず、キャンバスを様々なウィンドウの大きさに応じて伸縮させ、小さなノートパソコンのウィンドウと大きなデスクトップの表示の両方で試す。

どこに置くか

itch.ioはHTML5のビルドを置け、埋め込みも扱ってくれる。Newgroundsやwebゲームのポータルは今もブラウザのタイトルを受け入れ、流入か売上の分配で支払うことがある。静的なホスティングなら自前配信もできるが、スレッドを使う場合は生成元をまたぐ分離のために特定のHTTPのヘッダーが要る。ブラウザのデモはSteamのページの助けにもなる。多くの開発者が、同じプロジェクトを無料のwebのデモと有料のデスクトップ版として出している。

よくある質問

ブラウザのビルドでC#を使えるか

使えない。webではC#に対応していない。ブラウザのビルドはGDScriptかC++を使う。C#はデスクトップ、モバイル、その他のネイティブの対象で使える。

webのビルドの読み込みが遅いのはなぜか

ほぼ常にダウンロードの大きさと非圧縮のアセットが原因だ。まずテクスチャと音声を縮め、使っていないコンテンツを外し、その上で読み込みを分けて残りが届く前に遊べるシーンを出す。

webのビルドは電話で動くか

設計の作業をすれば動く。モバイルのブラウザはメモリが少なく、キーボードがなく、入力はタッチだけなので、デスクトップの配置をそのまま出すのではなく、低いアセットの予算とタッチ操作を計画する。

ブラウザのゲームでプレイヤーは進行を保存できるか

ブラウザのストレージを通して保存できるが、プレイヤーやブラウザに消されうる。長いゲームなら、書き出しのコード、ファイルのダウンロード、アカウントに紐づくセーブを足す。

同じプロジェクトをSteamにも出せるか

出せる。一つのプロジェクトがデスクトップ、モバイル、web、コンソールへ書き出す。よくある形は、無料のブラウザのデモと有料のデスクトップ版だ。

さらに見る

Summer Engine で創るその他の方法

AI ゲームメーカー

説明するだけで完全な 2D・3D ゲームを作れるハブ。

開く

Port a 3DS game to web

Rebuild a 3DS game you own in Summer Engine, then export an HTML5 build that runs in a browser on desktop and phones.

開く

How to port a 3DS game

The full process, in order: rights, asset inventory, rebuild, screen and input redesign, testing, export, and store submission.

開く

Port a game to Steam

Steam takes a desktop executable, a depot, and a store page. This is the checklist for getting any game from another platform onto it.

開く

Port a game to iOS

Any iOS release needs a Mac, an Apple Developer account, a signed build, and a design that works with thumbs. This is the full path.

開く

Port a game to Android

Android has the lowest barrier to testing and the widest device spread. Signing keys and the target API level are what actually block releases.

開く

Port a game to Nintendo Switch

There is no self serve Switch export. Nintendo approves developers, provides the SDK and dev kits under NDA, and certifies every build.

開く

Port a game to console

Every console platform gates access. Approval, an NDA covered SDK, dev kits, and certification come before any build reaches a store.

開く

Port a game to Steam Deck

Steam Deck runs your existing Steam build. The port is a compatibility pass: controller first input, readable text, and a power budget.

開く

プラットフォーマーのテンプレート

既成のプロジェクトから始めて、変更を説明するだけ。

見る

すべてのゲームテンプレートを見る

既成のプロジェクトから始めて、変更を説明するだけ。

見る

今すぐゲーム制作を始めよう

Summer Engine をダウンロードして、作りたいものを説明するだけで形になっていきます。無料で始められ、コーディングは不要です。