
Point
■レトロゲームには容量不足や技術的制約を解決するため、現代の我々から見ても解析できない謎の技術が使われていることがある
■今回、ATARI2600から82年に発売されたゲーム『Entombed』に、全くロジックが不明の迷路自動生成プログラムのコードが発見された
■迷路の壁を完全ランダムに配置すればクリア不能になってしまうが、このプログラムがなぜ通行可能なパターンで迷路を生成しているかは、まったくの謎だという
ほんの数十年前、コンピュータ関連の技術が飛躍的に向上しました。
特にデータ容量の向上はめざましく、現代の若い人たちにとって容量の単位は「ギガ」が標準になっています。
しかし初代のスーパーマリオの全ゲーム容量は40KB、初代ドラゴンクエストの全容量は64KBでした。
ちなみにこの記事のトップに貼られている画像の容量は97KBなので、スーパーマリオの2.4倍、ドラゴンクエストの1.5倍も容量をオーバーしています。
レトロゲームの開発は、そんな小さなデータ容量に、いかにゲームを収めるかが重要な課題となっていました。そのため、普通なら思い付きそうもない創意工夫がふんだんに盛り込まれているのです。
ハード性能による技術的制約も大きく、ゲームプログラマーたちは、現代の技術者にも解析できないような摩訶不思議なコードを創作することによって、当時のハード性能では到底無理と思われる挙動を、ゲームの中で実現していたりするのです。
そのために、最近はレトロゲーム専門の研究者「レトロゲーム考古学者」なるものも登場しています。これは、もはやロストテクノロジーと化したプログラムコードを発掘し、現代技術の問題解決に利用できないか探る研究分野です。
今回の研究者らも、古いゲーム機体ATARI2600のゲームソフト500本近くを調査している中から、謎のコードを発見したといいます。
この研究はカナダのガルガリー大学、イギリスのヨーク大学の研究者により発表され、論文はコーネル大学arXivで公開されています。
https://arxiv.org/abs/1811.02035v1
迷路ゲーム『Entombed』の謎のコード

今回研究者たちが謎のコードを発見したのは、ATARI2600で1982年に発売されたゲーム『Entombed』です。
これは上から下へと画面が移動していく縦スクロールアクションゲームで、プレイヤーは画面に押しつぶされないようにルートを選んで迷路を攻略していきます。
後戻りはできないため、行き止まりにぶつかってしまうとゲームオーバーです(アイテムにより決められた回数だけ壁は破壊できます)。

このゲームの迷路はひどく単純なものに見えますが、当時のゲームカートリッジのメモリでは、予めデザインした迷路セットを保存し、後から読み出して表示するということができませんでした。
そのためこのゲームは、迷路を設定された「手続き」に従ってランダム生成しています。
問題は、このゲームの迷路がどうやって無用な壁の生成や、侵入できないようなエリアの生成を避けているのかという部分です。
このゲームでは、進行に合わせて迷路を連続生成しています。プログラムは現在描画されている迷路を解析し、次に現れるスペースそれぞれに壁を描画するかしないか判断します。
問題は、この壁の配置を決定する基礎理論が、どうやって作られているのか理解できないことです。
壁の配置決定に使われているパラメータテーブルの値が、どうやって導き出されたものなのか全くわからないのです。研究者たちは、テーブルに含まれる値のパターンを見つけようと試みましたが、無駄に終わりました。
しかし、このテーブルの値が僅かに異なったりすると、もう迷路は通行可能な形で描画されません。
研究者たちは後に、このゲームの開発者の1人と接触することに成功しましたが、その開発者も迷路生成のアルゴリズムは当時から理解できなかったと話します。
彼の話によると、担当したプログラマーは「酔って頭をぶつけた拍子に、このアルゴリズムを思いついた」と語ったそうですが、研究者らは問題のプログラマーと接触することはできなかったとのこと。