NEStinymachines

解剖

ゲームを走らせて分解する: ゲームが入ったすべてのルーチン、コードにあるパターン、テーブルとメモリを、カートリッジへ組み立て直せるリスティングとして書き残す。

昔のゲームがどう書かれたかを、最初から学びたかった。一本を分解し、その部分の一つ一つが何をするかを見て、確かめられる形で書き残す。カートリッジの厄介なところは、コードとデータが隣り合って入っていて、どちらがどちらかを言うものが何も無いことだ。だからゲームを走らせる。プロセッサが命令として取り出したものがコードで、ルーチンが走っている間にしたことが、そのルーチンが何のためにあるかを語る。

四つの段階、順番に

  1. 逆コンパイル: カートリッジはリスティングになる。人が読めるアセンブリで、学んだことのすべてがコメントの中の印として入っている。検査は単純で厳しい: そのファイルは、一バイトも違わずカートリッジへ組み立て直せる。
  2. クロール: プログラムが私たち自身のコンソールでゲームを遊ぶ。到達したすべての場面からボタンを試し、まだ誰も走らせていないコードを走らせたものを残す。
  3. 同定: 規則が、それぞれのルーチンが走っている間にしたことを読み、見分けられるものに名前を付ける: コントローラを読むもの、ゲームの状態を選ぶもの、スプライトを描くもの。
  4. ラベル: 名前はリスティングに戻り、人がそこで読み、直し、自分の名前を足せる。机のリスティングのウィンドウは、記録したどの走行についても一つ書く。

見る場所

  • ゲーム: 私たちの棚のカートリッジすべてに同じ処置をした結果: プログラムのどれだけが走ったか、入ったルーチン、そこに見つかったパターン。
  • パターン: ゲームが繰り返しやること。それぞれを、コードが走っている間にしたことについての規則で名付け、いくつのゲームで見つかったかを添える。
  • やり方: リスティング、クロール、規則、モデル: それぞれの段階が何をし、何が見えず、何が私たち自身の機械に留まるか。

現在地

最初の調査は、私たち自身の棚のカートリッジ 19 本を、電源投入から何の準備もなしに、それぞれ 400 歩ずつクロールした。入ったルーチンは 2,933 個、そこに付いたパターンの名前は 557 個。この程度のクロールが届くのは大きなゲームのごく一部で、棚全体ではプログラムのバイトの 7 パーセントなので、ここにある数はどれも下限だ。記録した日は 2026-10-01。

ここのどのページにも、誰かのゲームのバイトは一つも無い

リスティングは、カートリッジを持っている機械に留まる。公開するのは形だけ: アドレス、数、そしてパターンの名前。どの規則も見分けなかったルーチンは、推測を与えられるのではなく、名前なしで並ぶ。

パターンは道具箱の目次だ

ゲームをまたいで繰り返されるものは、新しいゲームを書く人が手元に欲しいものだ。これらのパターンから作る道具箱と、それを使ってブラウザの中でゲームを書くスタジオは、この下地の後に来るもので、まだ作られていない。