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.

開く

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

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

見る

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

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

見る

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

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