グランド セフト オート 3 とバイス シティは両方とも完全にリバース エンジニアリングされました。これは、少数のファンが何年もかけて作り上げた情熱的なプロジェクトです。
これは、両方のゲームのファンが作成したソース コードが GitHub で利用できることを意味します。このコードは誰でも PC 上で両方のゲームをプレイするために使用できます。他の人がこのコードを利用してさらに改良することを期待しています。
Re3 (リバース エンジニアリングされた GTA 3) と reVC (リバース エンジニアリングされた Vice City) は、現在 PC で正式にプレイできるオリジナルのゲームに多数の目を引く改善を提供します。以下のビデオでは、その作業と可能になった変更を紹介しています。
バグが修正され、デバッグ メニューとカメラが利用可能になり、現在のコントローラーとの即時互換性があり、アイランド間のロード画面がなくなり、適切にスケールされた HUD、メニュー、視野によるワイドスクリーンのサポートなどが改善されました。 PS2版からエフェクトも強化されています。 Re3 にはポーズ メニューにリバティー シティの地図も含まれていますが、これは GTA 3 のすべてのオリジナル バージョンに欠けているものです。
これは、これまでのところロックスターとその親会社テイクツーからの報復を避けてきたビデオゲームのリバースエンジニアリングサブカルチャーにとって刺激的な展開だ。
「オープンソースの GTA は、おそらく私たちの多くの GTA 愛好家にとって夢でした」とプロジェクト リーダーの「aap」は に語ります。
「私たちは改造のために何年もの間ゲームにコードを注入してきましたが、もちろんそれはある意味退屈ですし、できることはまだ限られています。」
DMA Design が開発し、Rockstar Games が発売した 2001 年のアクション アドベンチャー ゲームである GTA 3 を再現する試みが、長年にわたって複数回行われてきました。
Open ReWrite または OpenRW と呼ばれるそのような試みの 1 つは、活発な開発が見られましたが、現在は休止状態になっているようです。 Unity や Unreal などのエンジンで Grand Theft Auto 3 を再現するプロジェクトもありました。ただし、aap は、元のコードをリバース エンジニアリングしてソース コードにすることに興味を持っていました。 2016 年のある時点で、aap は GTA 3 コードのリバース エンジニアリングをカジュアルに開始し、プレイヤーがマップ上を飛び回れるようになりました。
次に、aap はコリジョンと物理コードのリバース エンジニアリングに焦点を当て、これを実際のゲームに注入してテストしました。こうしてre3プロジェクトは始まりました。 aap は、2018 年の春までにすべてが置き換えられるまで、元のゲームの機能を置き換えていました。
「このプロジェクトが完成するかどうか全く分かりませんでした」とaap氏は説明した。 「当時はまだ一人で取り組んでいましたが、これがオープンソース GTA への最も有望なルートのように思えました。」
ビデオ ゲームのリバース エンジニアリングに必要なスキル、時間、エネルギーを過小評価してはなりません。これは専門家にとってはもちろん、愛好家にとっても簡単なことではありません。膨大な量のコードを処理する必要があり、特にゲーム内で明らかな間違った動作が発生しない場合、間違いは避けられません。 re3 コードにはオリジナルではないバグがまだ残っているのはほぼ間違いないと aap は認めています。
それでも、それは驚くべき成果です。 aap らがどのようにしてそれを管理したかを、わかりやすく言うと次のとおりです。
「GTA 3 と Vice City はもともと C++ で書かれました」と aap 氏は説明します。 「出荷されるコンパイル済みの実行可能ファイルはマシン コードになっています。したがって、一般的なタスクはマシン コードから C++ に戻ることです。
「マシンコードは、アセンブリ言語と呼ばれる人間が読める形式に(多かれ少なかれ)1:1 でマッピングできますが、それでも読むのは非常に面倒です。
「C++ に戻ることは決して単純な 1:1 マッピングではありませんが、過去 10 年ほどの間に、このプロセスを支援する逆コンパイラーが登場しました。
「したがって、私たちが通常行うことは、逆コンパイラーの出力を処理し、それを読みやすい C++ に戻すことです。これは非常に簡単な場合もあれば、難しい場合もありますが、いずれにしても、コード量が多く、間違いを犯すことは避けられません。」
ありがたいことに、PS2 と Android の GTA 3 のコードにはデバッグ シンボルが含まれています。デバッグ シンボルには、開発プロセス中にゲームをデバッグするために必要なすべての追加情報が含まれていますが、多くの場合、肥大化を避けるためにリリース実行可能ファイルでは削除されます。何らかの理由で、ロックスターはこれらのシンボルを残したままにし、リバースエンジニアリングチームに大きな利益をもたらしました。
「ゲーム用のシンボルがあったのはとても幸運でした」と aap 氏は言います。 「PS2 [GTA] 3 とすべての Android リリースには、グローバル要素 (関数とグローバル変数) の名前が付いています。これは非常に役立ちました。これらがなければ逆転 GTA には程遠いと思います。」
下のビデオでは、AAP が GTA 3 の仮想街路に転がっているゴミのコードを分析している様子が示されています。密度の濃い時計です。
aap は re3 の作業を 1 年間停止しましたが、2019 年の春に再び作業を再開し、2019 年 5 月に作業を GitHub にプッシュしました。当時、約 15,000 行のコードが元に戻されました。
他の人も注目してその取り組みに参加しました。 2019年後半に作業が停滞した後、コロナウイルスのパンデミックによりハッカーたちが時間に余裕があると判断したため、このプロジェクトは2020年初頭に再び取り上げられた。 2020 年 4 月、re3 チームは最初のスタンドアロン実行可能ファイルを作成しました。コアチームはわずか6名でした。
そもそもなぜGTA 3を選んだのでしょうか? 「これは当時の最初のゲームで、最小のゲームであり(したがって、元に戻すコードが少なく)、チームの全員に概ね好評でした」と aap 氏は説明します。 GTA 3 の次のステップとしては、当然のことながらバイスシティがありました。結局のところ、GTA 3 に似ており、とても気に入っています。 reVC は 2020 年 5 月初旬に開始され、チームは 2020 年 12 月に完了したと発表しました。
将来に目を向けると、aap 氏は、ゲームの物理現象が高フレームレートで修正されることを望んでおり、それが解決されたら、仮想現実 MOD が「クールになるだろう」と述べています。別のプロジェクトでは、GTA にレイ トレーシングをもたらす Renderhook が re3 に移植される可能性があります。 「見てみましょう…」とaapは言います。
すでに、Wii U、Nintendo Switch、PlayStation Vita バージョンなど、re3 からいくつかの興味深い開発中の移植が見られています。 YouTuber Modern Vintage Gamer による以下のビデオでは、re3 の WIP Nintendo Switch 移植版が紹介されています。
「Wii Uへの移植は確かに驚きでした」とaap氏は言う。 「遅かれ早かれ Android への移植が必要になると思いますが、チームの誰も Android の経験がないので、おそらく再びサードパーティ製になるでしょう。
「PS2は、GTAのオリジナルプラットフォームなので、私が絶対に欲しいものですが、私以外にこれをやっている人はいません(少なくとも私はPS2開発キットを持っています)。PS3も、私が見てみたい、またはやりたいと思っているものです」私自身もそうだが、時間がない(少なくとも私は開発キットを持っている)。」
GTA リバース エンジニアリング コミュニティは忙しい時期を迎えています。 re3 と reVC に取り組んだ PS Vita ハッカーの一部は、2004 年の『グランド セフト オート サン アンドレアス』の Android 版をソニーの携帯端末で実行できるようにすることに成功しました (GitHub にあります)。これはリバース エンジニアリングされたソース コードではありませんが、aap 氏によると、インスピレーションは Vita で GTA 3 と Vice City をプレイできることから直接得られたものです。私たちが話している間に、他の Android ゲームも Vita に移植されています。
なぜTake-TwoとRockstarが少なくともaapと彼のプロジェクトについて一言も話さなかったのか不思議に思うのは自然なことだ。 re3 が動作するには PC ゲーム アセットが必要なため、GTA 3 のコピーを所有する必要があります。そして aap は GitHub で、コードは教育、ドキュメント、および改造の目的にのみ使用されるべきであると強調しています。 「私たちは著作権侵害や商用利用を奨励していません」とaapは言う。
しかし、Take-Two と Rockstar は、ファンによるリメイクやコードをいじる他者に対して強硬な態度をとることで知られています。チームは介入について心配していましたか?
「はい、私たちはそのことを非常に心配していて、できるだけ長い間目立たないようにしていたのです」とaapは言う。
「Switch への移植が行われたとき、私たちは多くの注目を集めましたが、Take-Two からは何もありませんでした。私たちはそれを彼らが気にしていない(または本当に盲目である)ことの表れであると受け取りました。」
aapらは、スーパーマリオ64のリバースエンジニアリングプロジェクトがまだGitHub上にあるという事実を、「任天堂はこれらの問題においてTake-Twoと同じくらい積極的であるため」良い兆候だと考えている。ここまではまあまあです。しかし、どれくらいの期間でしょうか?
aap はそれが分かるのを待っていません。次は reLCS です。これは、2005 年の PlayStation Portable ゲーム「リバティー シティ ストーリーズ」のリバース エンジニアリング プロジェクトです。この作業は 2021 年 1 月に始まり、完成すれば、このゲームが適切に PC に移植されるのは初めてになります。
その後?グランド・セフト・オート:バイスシティ・ストーリーズ、aapは「おそらく今、逆転するGTAの聖杯」と表現している。 VCS は LCS に機能を追加しましたが、Android への移植は見当たりませんでした。このため、コードにはそれを表すシンボルがありません。 2006 年の PSP ゲームのリバース エンジニアリングは大きな課題です。
「その時が来たら、それに対して何ができるか考えてみます」とaap氏は言う。