AIが『Prince of Persia』を移植、ピクセル一致まで到達した進化

Analyzing Frontier Model Progress with My Favourite Game: Prince of Persia

Jordan Mechnerが公開したApple II版『Prince of Persia』の6502アセンブリを、AIモデルにC#へ移植させる実験。Claude Opus 4.6はアーキテクチャを誤り、Codexは表面的な修正に留まった。Opus 5はDOSBoxを操作するツールを与えられ、フレーム駆動エンジンへの再構築と実データ抽出に成功。Opus 5.5はSDLPoPの再構築コードを移植し、レベル1のピクセル差を8,429から2まで削減した。

最大の飛躍は、モデルが賢くなったことだけによるものではなかった。オリジナルを見て、それに対して自己検証する手段を与えたことによる。
  1. criemen

    ドイツの雑誌(c't)が2008年にAsteroidsのプログラミングコンテストを開催した。ゲームのエミュレータ出力にアクセスし、キーボード入力を与えてゲームを操作するクライアントを作るというものだ。

    コンテストで優勝した最高得点の作品は、スコアが約137kだった。

    先週、私はGPT-6 Astra、Sol、Lunaにこのタスクを実装させ、山登り法で改善させてみた。知能の差がどれほど大きいか見たかったからだ。Lunaは何か実装したが、約20k点を超えることはなく、分散も大きかった。

    Solは人間の実装と同程度の領域に達した。

    最も早く終了したAstraは、ゲームがほぼ確実にクラッシュするようになるまでに、ハイスコアが約1.7Mmに達した。その過程で、ゲームに関する情報を抽出するためにROMの一部を逆アセンブルした。

    詳細を記録・測定するために大した作業はしていないが、非常に印象的だった。

  2. Kuyawa

    SwiftはmacOSゲームを作るのに最適な言語なので、それを使ってオリジナルのPrince of Persiaをビルドしてみようと思う。古典的な2Dシネマティックプラットフォーマーであるこのゲームには、Appleのネイティブフレームワークが、巨大なクロスプラットフォームエンジンのオーバーヘッドなしに、まさに必要なものを提供してくれる。そして私はシンプルさが大好きだ。

    というわけで、私の週末はこれに費やされる。この投稿にフラグを立てて、まともな生活を送れよ。

  3. tehlike

    壊れたバージョンを修正するのではなく、各モデルはゼロから始めるべきだったのでは。

  4. rhipitr

    話が逸れるけど、最新のPrince of Persiaゲームは本当に楽しい。

  5. smokel

    プロンプトがひどすぎる。LLMが実際に何か役立つものを作ったのは驚きだ。

    > 最初のプロンプトはシンプルだった:「このオリジナルコードにはPrince of Persiaの6502アセンブリコードがある。セーブレベルファイルを使って、C#コンソールでやってみて。」

    コンソールで何をどうしろと?

この日のほかの記事

2026-09-26