AI無法復刻經典遊戲《Thrust》(但能助你理解它)
作者嘗試用Claude AI復刻1986年的經典遊戲《Thrust》,但AI生成的版本質量很差。然而,透過用AI分析原始6502彙編程式碼,作者深入理解了遊戲的物理、音效和繪圖機制,最終成功用TypeScript實現了忠於原作的復刻版。
作者James D. Randall最近嘗試用Anthropic的Claude AI復刻1986年的經典遊戲《Thrust》,但結果令人失望。AI生成的版本只是徒有其表,物理和操控都不到位,完全無法重現原作的魅力。
然而,這次失敗引發了作者對原版遊戲程式碼的考古興趣。他找到了Kieran Connell註釋過的6502彙編程式碼,並用Claude來解讀這些程式碼。AI雖然寫不出好遊戲,但作為分析工具卻表現出色:它能詳細解釋原版遊戲的物理模型、關卡資料格式和音效系統。
物理引擎是復刻的關鍵。原版《Thrust》使用Q7.8定點算術和32步旋轉查詢表。更精妙的是它的時序:物理更新不是每幀都執行,而是每16個tick中只有6個活躍槽位應用重力和推力,旋轉則每4個tick跳過1次。這些細節共同造就了遊戲獨特的“重量感”。當作者精確復現這些時序後,遊戲手感與BBC Micro上的原版幾乎無異。
音效方面,作者沒有采樣,而是選擇模擬SN76489音效晶片和BBC MOS介面。透過分析MOS反彙編程式碼和晶片規格,他用AudioWorklet實現了完整的硬體模擬,包括包絡處理器和線性反饋移位暫存器噪聲通道,最終音效與原版完全一致。
圖形和關卡資料則從反彙編程式碼中直接提取。作者甚至寫工具將原版的32幀旋轉飛船精靈從BBC幀緩衝區還原為PNG,替代了最初的向量繪製方案,確保了視覺上的準確性。
整個專案展示了AI在逆向工程和程式碼分析中的實用價值——它無法替代人類的創意和調優,但能極大加速理解古老程式碼的過程。作者已將復刻版《Thrust》開源,幷包含完整的規格文件和提取工具。