レトロゲーには謎のバグ技で成立しているシステムがある
レトロゲーには謎のバグ技で成立しているシステムがある / Credit:depositphotos
information-and-communication

解析不能!30年以上前のレトロゲームから謎の「自動生成アルゴリズム」が見つかる (2/2)

2019.09.24 Tuesday

前ページ迷路ゲーム『Entombed』の謎のコード

<

1

2

>

レトロゲームに見られる創意工夫の数々

こうした話は、何も珍しいものではありません。

例えばゲーマーの間では、「ファイナルファンタジーⅢ(FF3)」に登場する小型飛空艇ノーチラスのとてつもない移動速度が、ファミコンの性能ではそもそも実現できない挙動だった、という逸話が有名です。

FF3のノーチラスの挙動はバグを利用した特殊なコードで実現されていると言われる
FF3のノーチラスの挙動はバグを利用した特殊なコードで実現されていると言われる / Credit:© SQUARE ENIX

FF3に登場する飛空艇ノーチラスは、通常歩行速度の8倍という驚異的なスピードで移動することで、当時多くのプレイヤーの度肝を抜きました。

これはスクウェア(現スクウェア・エニックス)の伝説的なプログラマーのナーシャ・ジベリ氏が、ファミコンのバグを利用して実現した挙動と言われていて、他のどんなゲームでも真似することができないどころか、当のスクウェアのスタッフでさえどうやっているのか解析できなかったと言われています。

FF3は2006年にNintendo DSでリメイク作品が作られていますが、そこでもこの驚異的な挙動は再現されていません。

ナーシャ・ジベリ氏はこの他にも色々と謎のプログラミング技術を披露した人物で、同じくスクウェアから87年に発売された「とびだせ大作戦」というゲームでは、当時としては革新的な3Dシューティングを実現しています。

これもファミコンのハード性能では到底実現できない挙動だと言われ、その技術力に驚きの声が寄せられました。

Credit:© SQUARE ENIX/とびだせ大作戦/たぶやんゲームス

発売からたった数十年しか経っていないゲームを研究するというのは、一見奇妙なことのように聞こえるかも知れません。しかし、当時のゲーム開発ブームの中に埋もれてしまった、クリエイターたちの突飛な発想や、創意工夫は、現代の私達が抱える技術的問題をブレイクスルーさせるための重要なヒントになる可能性もあるのです。

プログラムを極限まで短く切り詰め容量を少なくしようとする試みは、あまりプログラムに詳しくない人たちには分かりづらい世界の話ですが、似たような話でわかりやすい例を出すなら、一昔前にネットで話題になった7行テトリスというものを見ると良いかも知れません。

下が7行テトリスのソースコードです。

<body onKeyDown=K=event.keyCode><script>X=[Z=[B=A=12]];h=e=K=t=P=0;function Y()
{C=[d=K-38];c=0;for(i=4;i–*K;K-13?c+=!Z[h+p+d]:c-=!Z[h+(C[i]=p*A-Math.round(p/
A)*145)])p=B[i];!t|c+4?c-4?0:h+=d:B=C;for(f=K=i=0;i<4;f+=Z[A+p])X[p=h+B[i++]]=1
if(e=!e){if(f|B){for(l=228;i–;)Z[h+B[i]]=k=1;for(B=[[-7,-20,6,17,-9,3,6][t=++t
%7]-4,0,1,t-6?-A:-1];l–;h=5)if(l%A)l-=l%A*!Z[l];else for(P+=k++,j=l+=A;–j>A;)
Z[j]=Z[j-A]}h+=A}for(i=S=””;i<240;X[i]=Z[i]|=++i%A<2|i>228)i%A?0:S+=”<br>”,S+=X
[i]?”■”:”_”;document.body.innerHTML=S+P;Z[5]||setTimeout(Y,99-P)}Y()</script>

【動作のサンプルページ】カーソルキー(左右)とSPACEキー(回転)で操作可能です。(Credit:ZAPAnet総合情報局)

これはいかに短いコードでテトリスを再現できるかを、プログラマーたちが競い合って作ったもので、もはやソースを見ても、なんでこれでテトリスが動くのか多少プログラムをかじった程度の人たちには解析不能な代物です。

実際テトリスはもっと長いプログラムが必要です。しかし、こんなコードでも実行するとテトリスが起動してしまいます。

このようにプログラムの内容はやろうと思えば極限まで切り詰めることも可能です。しかし、そのためには正規のプログラミング技術以外の知識や発想が必要になってきます。そしてそんなコードは、実際動いても後から見たら何がどうなっているのかわけがわからない、という状況になるのです。

このように、コンピュータ技術はあまりに早すぎる進化を遂げたため、もはやレトロゲームのコード発掘は一種の考古学として学問の世界でも成立してしまっています。

今はただの古いゲーム好きという人たちの中からも、もしかしたら未来の「ビデオゲーム考古学者」が誕生するのかも知れません。

AIが突然教えていないはずの「数の概念」に目覚める

<

1

2

>

コメントを書く

※コメントは管理者の確認後に表示されます。

人気記事ランキング

  • TODAY
  • WEEK
  • MONTH

Amazonお買い得品ランキング

情報・通信のニュースinformation-and-communication news

もっと見る

役立つ科学情報

注目の科学ニュースpick up !!