解剖
ゲームを走らせて分解する: ゲームが入ったすべてのルーチン、コードにあるパターン、テーブルとメモリを、カートリッジへ組み立て直せるリスティングとして書き残す。
昔のゲームがどう書かれたかを、最初から学びたかった。一本を分解し、その部分の一つ一つが何をするかを見て、確かめられる形で書き残す。カートリッジの厄介なところは、コードとデータが隣り合って入っていて、どちらがどちらかを言うものが何も無いことだ。だからゲームを走らせる。プロセッサが命令として取り出したものがコードで、ルーチンが走っている間にしたことが、そのルーチンが何のためにあるかを語る。
四つの段階、順番に
- 逆コンパイル: カートリッジはリスティングになる。人が読めるアセンブリで、学んだことのすべてがコメントの中の印として入っている。検査は単純で厳しい: そのファイルは、一バイトも違わずカートリッジへ組み立て直せる。
- クロール: プログラムが私たち自身のコンソールでゲームを遊ぶ。到達したすべての場面からボタンを試し、まだ誰も走らせていないコードを走らせたものを残す。
- 同定: 規則が、それぞれのルーチンが走っている間にしたことを読み、見分けられるものに名前を付ける: コントローラを読むもの、ゲームの状態を選ぶもの、スプライトを描くもの。
- ラベル: 名前はリスティングに戻り、人がそこで読み、直し、自分の名前を足せる。机のリスティングのウィンドウは、記録したどの走行についても一つ書く。
見る場所
- ゲーム: 私たちの棚のカートリッジすべてに同じ処置をした結果: プログラムのどれだけが走ったか、入ったルーチン、そこに見つかったパターン。
- パターン: ゲームが繰り返しやること。それぞれを、コードが走っている間にしたことについての規則で名付け、いくつのゲームで見つかったかを添える。
- やり方: リスティング、クロール、規則、モデル: それぞれの段階が何をし、何が見えず、何が私たち自身の機械に留まるか。
現在地
最初の調査は、私たち自身の棚のカートリッジ 19 本を、電源投入から何の準備もなしに、それぞれ 400 歩ずつクロールした。入ったルーチンは 2,933 個、そこに付いたパターンの名前は 557 個。この程度のクロールが届くのは大きなゲームのごく一部で、棚全体ではプログラムのバイトの 7 パーセントなので、ここにある数はどれも下限だ。記録した日は 2026-10-01。
ここのどのページにも、誰かのゲームのバイトは一つも無い
リスティングは、カートリッジを持っている機械に留まる。公開するのは形だけ: アドレス、数、そしてパターンの名前。どの規則も見分けなかったルーチンは、推測を与えられるのではなく、名前なしで並ぶ。
パターンは道具箱の目次だ
ゲームをまたいで繰り返されるものは、新しいゲームを書く人が手元に欲しいものだ。これらのパターンから作る道具箱と、それを使ってブラウザの中でゲームを書くスタジオは、この下地の後に来るもので、まだ作られていない。