
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.
開くプラットフォーマーのテンプレート
既成のプロジェクトから始めて、変更を説明するだけ。
見るすべてのゲームテンプレートを見る
既成のプロジェクトから始めて、変更を説明するだけ。
見る