
Flashゲームを移植する
Flashゲームを、今も存在するWebへ移植する
アドビは2020年12月31日にFlash Playerのサポートを終了した。Flashゲームの移植とは、権利のある作品を現代のブラウザで動くように作り直すことだ。
Flashゲームの移植とは、もうFlashを動かさないブラウザ向けに権利のあるゲームを作り直すことだ。アドビは2020年12月31日にFlash Playerのサポートを終了し、2021年1月にコンテンツの実行を遮断した。プラグインに依存していたSWFはすべてその日に動かなくなった。
ゲームの権利が要る。自分で作ったFlashゲーム、またはリメイクのライセンスを持つ作品を移植する。他人のSWFを逆コンパイルし、アセットを抜き出し、再公開することはここでは扱わない。
正しく作り直せば、Flashゲームは現代の行き先によく合う。マウス入力、ベクターアート、短いセッションのために作られていたからだ。Summer Engineは自分のものになるプロジェクトとして作り直し、Web、デスクトップ、モバイルへロイヤリティなしで書き出す。
古いFlashプロジェクトから生き残るもの
FLAファイルがまだ残っているなら、最も価値があるのはベクターアートだ。ベクターの図形はどんな解像度でも書き出し直せるので、550x400のステージ向けに作られたゲームでも4Kで鮮明に作り直せる。タイムラインのアニメーションは、アニメーショントラックかスプライトシートとして作り直すことになる。Flashのタイムラインを読むエンジンはないからだ。ActionScriptは参照資料だ。ロジックは移るが、構文は移らない。
ActionScriptから現代の言語へ
ActionScript 3もGDScriptも動的に扱いやすいクラスベースのスクリプト言語なので、翻訳は多くの場合機械的だ。イベントリスナーはシグナルになる。enterFrameのハンドラはprocessのコールバックになる。MovieClipはスプライトとアニメーションプレイヤーを持つノードになる。ActionScript 2のコードはもっと緩いので、翻訳よりも構造の作り直しが要ることが多い。デスクトップならC#で作り直すこともできるが、C#はWeb書き出しでは使えない。
フレーム基準のタイミングはデルタタイムにする
Flashはステージのフレームレート、多くは24または30フレーム毎秒で動き、ゲームロジックの多くは秒ではなくフレームを数えていた。60、120、144Hzで動く現代のディスプレイでは、フレームを数えるとゲーム速度が壊れる。作り直しの過程で、フレームのカウンタをすべて時間基準の値に変換する。これはFlash移植で最もよくあるバグの元であり、後から直すより作り直しながら直すほうがはるかに安い。
マウス前提の設計を、今度はタッチで
Flashゲームはホバー状態、クリックとドラッグ、正確な指示ができるマウスカーソル向けに作られていた。タッチスクリーンにホバーはなく、指先はカーソルよりずっと大きい。ホバーで出るツールチップにはタップの代替が要り、小さなボタンには広い当たり判定が要り、ドラッグは掴んでいる対象を指が覆うことを考慮する必要がある。キーボード操作のFlashゲームには、汎用のオーバーレイではなくそのゲーム向けに設計した画面上の操作レイアウトが要る。
作り直したゲームの行き先
Web書き出しはゲームを開かれたWebへ戻し、自分のサイトやポータルに埋め込める。同じプロジェクトからSteamやitch.io向けのデスクトップビルド、iOSとAndroid向けのモバイルビルドも得られる。Flash時代のゲームの多くはセッションが短いのでスマートフォンによく合う。言語の制限に注意する。C++とGDScriptはどこでも動き、C#はWeb以外のどこでも動く。
よくある質問
Flashゲームはなぜもう動かないのか
アドビは2020年12月31日にFlash Playerのサポートを終了し、2021年1月12日にFlashコンテンツの実行を遮断した。ブラウザはプラグインを完全に削除した。プラグインに依存してSWFとして配布されたゲームは、普通のプレイヤーの環境では動かない。
SWFファイルを現代のゲームに変換できるか
保守できる編集可能なプロジェクトにはできない。逆コンパイラは一部のアセットとバイトコードを取り出せるが、結果は別のエンジンで動くプロジェクトにはならない。Flashの移植は作り直しで、できれば元のFLAファイルとActionScriptのソースから行う。
FLAファイルを失っていてもFlashゲームを移植できるか
権利があるならできる。残っているもので作り直す。書き出したアート、スクリーンショット、プレイの録画、設計メモだ。ベクターの元素材があると作り直しははるかに安くなるが、必須ではない。
ActionScriptのコードは移るか
ロジックは移るが、構文は移らない。ActionScript 3はGDScriptにかなり直接対応する。リスナーはシグナルに、enterFrameはprocessのコールバックに、MovieClipはアニメーションプレイヤーを持つノードになる。ActionScript 2はたいてい構造の作り直しが要る。
Flash移植で最もよくあるバグは何か
フレーム基準のタイミングだ。Flashは24や30といった固定のステージフレームレートで動き、ゲームロジックはよくフレームを数えていた。60や144Hzのディスプレイではそのロジックが違う速度で走る。作り直しの過程でフレームのカウンタをすべてデルタタイムに変換する。
作り直したゲームは再びブラウザで動くか
動く。Webはデスクトップ、モバイル、コンソールと並ぶ対応済みの書き出し先だ。C++とGDScriptはすべての行き先で動き、C#はWeb以外のどこでも使えることに注意する。
さらに見る
Summer Engine で創るその他の方法
AI ゲームメーカー
説明するだけで完全な 2D・3D ゲームを作れるハブ。
開くMake a game from a picture and the idea it holds
Bring a picture and Summer Engine builds a game inspired by its look and concept: scenes, gameplay, and matching art in one project you own.
開くPort a 3DS game by rebuilding it, not converting it
Porting a 3DS game means rebuilding a game you own as a new project that runs on platforms that still sell games. There is no file converter for this.
開くPort a Nintendo DS game to platforms that still sell games
A Nintendo DS port is a rebuild of a game you own. The stylus design is the asset worth keeping, because touch is native on every phone.
開くPort a Wii game and decide what happens to motion control
Porting a Wii game means rebuilding a title you own for hardware without a Wii Remote. The pointer and the motion gestures need a new input design.
開くPort a Wii U game off the smallest console audience
Porting a Wii U game means rebuilding a title you own for platforms with a single screen. The GamePad layer is the part that has to be redesigned.
開くPort a PSP game and give it a second analog stick
Porting a PSP game means rebuilding a title you own. The camera design is the biggest change, because the PSP had one analog nub and no right stick.
開くPort a PS Vita game before the platform disappears entirely
Porting a PS Vita game means rebuilding a title you own. The rear touch pad is the one input with no modern equivalent.
開くPort a GameCube game from 480p to a modern project
Porting a GameCube game means rebuilding a title you own. The analog triggers and fixed camera design are the parts that need deliberate decisions.
開くプラットフォーマーのテンプレート
既成のプロジェクトから始めて、変更を説明するだけ。
見るすべてのゲームテンプレートを見る
既成のプロジェクトから始めて、変更を説明するだけ。
見る