[控场AI]
· 5 分钟阅读· 2,636 字

Claude Opus 5.5用代码重绘《宝可梦红》:无一张图片,纯像素编程复刻整部游戏

Claude Opus 5.5用代码重绘《宝可梦红》:无一张图片,纯像素编程复刻整部游戏

开发者用一条提示词让 Claude Opus 5.5 三天写出 2.5 万行 JS,在浏览器里完整重建《宝可梦红》。

一位开发者仅凭一条自然语言提示词,借助 Claude Opus 5.5 在约三天内生成了约 25,000 行 JavaScript,在浏览器中完整重建了《宝可梦红》。项目名为 Pokémon Claude Red,最反直觉之处在于全程不使用任何图片或音频文件——151 只宝可梦由几何形状代码逐像素绘制,背景音乐也由 JavaScript 实时合成。内容体量上涵盖 224 张地图、8 个道馆、四天王及经典 Bug(如 MissingNo.),地图数据来源于 pret/pokered 反汇编项目,每句对白则被重新改写。质量保证上采用了自动化机器人遍历测试,源码已在 GitHub 开放。这一项目更像是对大模型代码能力的极限压力测试,同时揭示了"AI 写码、人类测试"这一新型开发分工范式的可能性。

一位开发者用一条提示词让 Claude Opus 5.5 从零重建了整部《宝可梦红》(Pokémon Red),而且没有使用任何图片文件——151 只宝可梦、224 张地图、全部对话与旋律,全部靠代码在浏览器里逐像素绘制出来。项目名为 Pokémon Claude Red,可以在桌面或手机浏览器直接游玩。

Pokémon Claude Red 项目展示

一条提示词,三天,2.5 万行 JavaScript

整个项目起点只是开发者输入 Claude Code 的一句话:"using only pixels directly remake a beautiful pokemon red remake … absolute pixel art perfection. keep the story exactly as pokemon red"(仅用像素直接重制一个精美的宝可梦红复刻版……追求极致的像素艺术,故事完全保留原版)。

据作者描述,在大约三天时间里,Claude Opus 5.5 写出了约 25,000 行 JavaScript。人类的工作则退居辅助——通关整个游戏、记录哪里出了 bug,然后把问题反馈给模型继续修正。这种"AI 写码、人类测试"的分工,某种程度上预示了未来软件开发协作的一种可能形态。

没有图片文件:每个像素都是代码

这个项目最反直觉的地方在于:它不加载任何图片资源。游戏画面被绘制进一个 320×180 的屏幕,逐像素生成。

每一只宝可梦都不是贴图,而是由一组几何形状定义——椭圆、多边形、色斑(ellipses, polygons, spots),运行时再进行着色和描边。换句话说,皮卡丘不是一张 PNG,而是一段能画出皮卡丘的代码。这种做法把"美术资源"彻底转化为"程序逻辑",对模型的空间理解与视觉抽象能力提出了相当高的要求。

背景音乐同样如此:原版旋律被重新编写成 JavaScript 直接生成,而非播放音频文件。

这种技术路线在图形编程中被称为程序化生成(Procedural Generation)。与传统游戏依赖预先制作的位图(bitmap)或精灵图(sprite sheet)不同,程序化图形将视觉内容编码为算法描述——每个形状、颜色和位置关系都是运行时计算的结果。这种方式的好处是文件体积极小(整个游戏只是纯文本代码),可以任意缩放而不失真,但对生成模型的要求极高:它必须在脑海中"想象"出一只皮卡丘的轮廓,并将其分解为若干几何基元(primitive)加以精确描述,而无法参考任何现成图像。背景音乐采用的 Web Audio API 同理:音符、节奏、音色全部通过 JavaScript 实时合成,本质上是用代码重写了一份乐谱解释器。

完整度:8 个道馆、四天王,连 Bug 都复刻了

从内容体量看,这并非一个演示 demo,而是号称完整可通关的作品:

  • 全部 224 张地图
  • 8 个道馆、火箭队剧情线
  • 四天王(Elite Four)与冠军战
  • 151 只宝可梦

地图与数据来源于知名的 pret/pokered 反汇编项目,而每一句对白都被重新改写。更有意思的是,作者连原版的经典 Bug 都按原理重建了——包括著名的 MissingNo. 和"抓 Mew"技巧,这些都是根据原始代码的运行机制还原的,而非简单模仿现象。

pret/pokered 是一个由社区逆向工程完成的《宝可梦红/蓝》完整反汇编(disassembly)项目,将原版 Game Boy ROM 还原为可读的 Z80 汇编代码,并附有大量注释。这使得社区开发者能够精确理解每一张地图的坐标布局、NPC 的触发条件和战斗公式的实现细节,而无需依赖猜测或视觉观察。MissingNo. 之所以能被"按原理"复刻,正是因为其出现机制——玩家名字字节与地图遭遇表的特定偏移量交互——在反汇编代码中有据可查。这也说明本项目并非纯粹的"AI 凭印象复原",而是以结构化的历史源码为地基,由模型负责将数据转译为现代 JavaScript 实现。

用机器人测试,用手机横竖屏切换手感

为了验证如此大规模的生成代码是否稳定,作者采用了自动化机器人测试:让 bot 与每张地图上的每个 NPC 对话,并进行数千场随机战斗。这种规模的回归测试对纯人工来说几乎不可能覆盖。

移动端体验也做了适配:手机竖持时是 Game Boy 的按键布局,横过来则切换成 GBA 布局。作者还建议玩家去体验几个原版名场面——看老人的抓宝可梦演示、飞到红莲岛、沿东海岸冲浪。

值得一提的是,宣传预告片和讲解视频据称也是由 Opus 5.5 "一次生成"(oneshotted)完成的。

作者采用的自动化回归测试思路,在大型游戏质量保证(QA)流程中被称为**模糊测试(fuzz testing)与遍历测试(traversal testing)**的结合——让脚本控制的 bot 系统性地触发所有可触达的游戏状态,以暴露边界条件下的崩溃和数据异常。对于 AI 生成的代码库,这种方法尤其必要:模型在生成长代码时可能在不同函数间引入隐式依赖或变量命名冲突,这类错误难以通过人工阅读代码发现,却会在实际运行时以随机方式触发。数千场随机战斗测试实际上是在对战斗伤害计算、状态异常叠加、AI 行为决策等核心逻辑进行蒙特卡洛覆盖,这比手动列举测试用例更能发现概率性 bug。

这意味着什么

抛开情怀不谈,Pokémon Claude Red 更像是一次对大模型代码能力上限的压力测试。它同时考验了几件难事:长上下文下的一致性(2.5 万行代码不崩)、纯程序化生成图形的视觉抽象能力、以及对复杂游戏系统(战斗、地图、剧情分支)的整体建模。

这类项目的一个共同特征是:人类的角色从"编写者"转向"评审与测试者"。当模型能持续产出并根据反馈迭代如此规模的项目时,开发流程本身可能被重新定义。

需要提醒的是,这是一个免费的粉丝项目,与任天堂没有任何官方关联。源码已在 GitHub 开放(github.com/levy-street/pokemon-claude-red),感兴趣的开发者可以自行研究其像素绘制与生成逻辑。

#Claude Opus 5.5#宝可梦红复刻#AI编程#像素艺术生成#JavaScript游戏#Claude Code#AI代码生成
分享:

相关推荐