GameMakerゲームをSteamへ移植する

GameMakerゲームをSteamへ移植する

GameMakerのルームとオブジェクトは、シーンとノードにきれいに対応する。GMLは書き直しが要り、スプライトはそのまま持ってこられる。

GameMakerゲームのSteamへの移植とは、権利のあるゲームを新しいエンジンで作り直し、そのビルドをSteamworks経由で公開することだ。.yypのプロジェクトやGMLのコードのためのインポーターは存在しない。

考え方の対応は、たいていのエンジン移行より素直だ。GameMakerのルームはシーンになる。オブジェクトはスクリプトを付けたノードになる。CreateとStepのイベントはreadyとprocessの関数になる。アラームはタイマーになる。Drawのイベントは、レンダラーがスプライトと図形を描く形になる。この対応が見えれば、移植はおおむね機械的な作業と調整だ。

Summer EngineはC++とGDScriptを使い、webを除くすべてでC#も使える。一つのプロジェクトからデスクトップ、モバイル、web、コンソールへ書き出す。プロジェクトも稼いだ一ドルも自分のものだ。

GameMakerの概念がどう対応するか

ルームはシーンになる。オブジェクトはノードになり、オブジェクトの継承はシーンの継承か共有の基底スクリプトになる。インスタンス変数はスクリプトの変数になる。アラームはタイマーのノードになる。衝突のイベントは物理か領域のコールバックになる。スプライトとimage_indexのアニメーションはスプライトのフレームかアニメーションプレイヤーになる。グローバル変数はオートロードのシングルトンになる。ds_mapとds_listは辞書と配列になる。シーケンスとパスは、アニメーションとパス追従のノードで作り直す。

GMLを書き直す

GMLはエンジン固有の組み込み関数を持つ簡潔な言語なので、自動では変換されない。精神が近く読みやすいGDScriptで書き直すか、性能が要となる仕組みはC++で書き直す。定数はすべて保つ。速度、重力、摩擦、ダメージの数値、出現の頻度、フレーム数だ。GameMakerのゲームはフレーム単位の手触りで生き死にが決まることが多いので、近似ではなく元のルームの速度とステップのタイミングを一致させる。

くっきり保つドット絵

スプライトとタイルセットは自分のもので、PNGのファイルとして移る。テクスチャのフィルタをnearestに設定し、整数倍の拡大か固定のビューポート解像度を使ってドットが正方形のままになるようにし、カメラの位置は整数のピクセルに合わせてちらつきを防ぐ。元が320x180のような小さいネイティブ解像度なら、それを描画解像度として保ってから拡大する。任意のウィンドウの大きさでアートを描画しない。

Steamでのリリースの作業

Steamworksのアカウントを登録し、一タイトルあたり100米ドルの一回限りのアプリ料を払い、税と銀行の情報を埋める。デポを作り、SteamPipeでビルドを上げ、OSごとに起動オプションを設定する。コントローラがそのまま動くようSteam Input、セーブ向けにSteam Auto Cloud、パートナーサイトで定義した実績を足す。解像度、全画面、割り当て変更できる操作の選択肢も足す。Steamのプレイヤーは小さな2Dのゲームにもそれを期待する。

よくある質問

GMLは自動で変換できるか

できない。GMLはGameMaker固有の組み込み関数とランタイムの挙動を使う。スクリプトは元のコードを正確な仕様として使い、GDScriptかC++で書き直す。

スプライトとルームは移るか

スプライト、タイルセット、音声、フォントは権利のあるファイルとして移る。ルームの配置はシーンとして作り直すが、ルームをタイルマップか座標の一覧として書き出せば速く進む。

なぜGameMakerから移るのか

よくある理由は、3Dの必要、届く範囲、書き出し対象ごとのライセンス費用、性能の余裕、そしてC++水準の制御が欲しいことだ。Summer Engineは一つのプロジェクトからデスクトップ、モバイル、web、コンソールへロイヤリティなしで書き出す。

ゲームの手触りは同じになるか

数値が一致すれば同じになる。移動速度、重力、摩擦、ジャンプの高さ、タイミングの値をGMLから直接写し、原版の録画と一フレームずつ突き合わせて確かめる。

Steamの費用はいくらか

一タイトルあたり100米ドルの一回限りのアプリ申請料で、売上1000米ドルの後に回収でき、加えてValveの売上分配がある。

さらに見る

Summer Engine で創るその他の方法

AI ゲームメーカー

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

開く

Port a 3DS game to Steam

Rebuild a 3DS game you own in Summer Engine, then export a Windows, macOS, or Linux build and publish it on Steam.

開く

Port a 3DS game to Steam Deck

Rebuild a 3DS game you own in Summer Engine, then ship a Steam build that plays well on a 1280x800 handheld with gamepad only input.

開く

Port a Nintendo DS game to Steam

Rebuild a DS game you own in Summer Engine, then export a desktop build for Steam. Mouse covers the stylus, monitors cover both screens.

開く

Port a Wii game to Steam

Rebuild a Wii game you own in Summer Engine, then export a desktop build for Steam. Pointer becomes mouse. Motion becomes a design decision.

開く

Port a PSP game to Steam

Rebuild a PSP game you own in Summer Engine and export a desktop build for Steam. One screen already fits. One analog nub does not.

開く

Port a PS Vita game to Steam

Rebuild a Vita game you own in Summer Engine and export a desktop build for Steam. Dual sticks transfer. Front and rear touch do not.

開く

Port a GameCube game to Steam

Rebuild a GameCube game you own in Summer Engine and export a desktop build for Steam. Analog triggers, 4:3 framing, and memory card saves.

開く

Port a Switch game to Steam

Rebuild a Switch game you own in Summer Engine and export a desktop build. The gameplay is ready. The platform layer is the job.

開く

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

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

見る

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

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

見る

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

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