Cursor + Claude Opus 5 - 以撒的结合肉鸽游戏项目实战
本项目是一个复刻《以撒的结合》核心玩法的俯视角肉鸽地牢网页游戏,包含 12 层地牢、13 个 Boss、11 种敌人、55 件道具,7900 多行原生 JavaScript,零依赖、零构建,所有美术素材全部由代码绘制,不含任何外部图片资源。全程用 Cursor + Claude Opus 5 开发,我只跟 AI 对话了两轮,一行代码都没写。
项目代码免费开源:https://github.com/liyupi/binding-of-isaac-webgame
在线试玩(手机也能玩):https://yisa.codefather.cn

项目介绍
这是我在小孩儿时期最喜欢玩的游戏,做梦我都想不到,现在我竟然一个人从 0 做出了这个游戏,而且我只投入了 10 分钟。

小时候我做梦都想自己做一个游戏,但那时候完全不可能,没技术、没时间。
倒不是因为不会写代码,而是做游戏这件事的门槛藏在别的地方:你得会画素材、懂关卡设计、能调数值平衡、还要反复试玩找手感。对于一个只会写业务代码的程序员来说,光是「画一个能看的角色」这一步就足以让人放弃。
《以撒的结合》的魅力在于随机生成的地牢、越打越强的道具构筑、每层结尾的 Boss 战,一局一局停不下来。
之前我在测评 Kimi K3 的时候,试着让 AI 复刻过这个游戏。当时的成品虽然界面简陋,但基本玩法是跑通的,可以发射子弹打怪,我当时都已经觉得很满足了:

后来 Claude Opus 5 发布,我在 Cursor 里用完全相同的提示词又跑了一遍,双剑合璧,结果直接把我干懵了。

这篇文章我不打算只给你看成品,更想带你看清一件事:AI 现在写代码已经不是瓶颈了,真正吃时间的是怎么确认它写对了。 这个项目里最有价值的经验,全在验证环节。
我也会把完整的提示词分享给你,你完全可以照着复刻一遍。
项目功能演示
先看看最终做出来的东西,你就知道 AI 现在能干到什么程度了。
1)随机地牢和战斗
每一层地牢都是随机生成的,包含战斗房、宝物房、商店和 Boss 房。角色发射眼泪攻击敌人,清空一个房间才能开门去下一个。

2)11 种敌人,行为模式各不相同
不是简单地换个颜色换个血量,每种敌人的移动和攻击方式都不一样。比如 Horf 吐口怪完全不动、只吐扇形弹幕;Attack Fly 苍蝇高速不规则突进、撞墙反弹;Knight 骑士正面免伤 92%,必须绕到背后打;Globin 泥人第一次被打死只会瘫成一滩,2.4 秒后还会重组复活;Vis 血肠会锁定方向蓄力 0.85 秒,然后发射一道贯穿全场的血腥激光。
3)55 件可叠加的道具
道具分成改变攻击方式、改变生存方式、改变属性数值、改变角色外观四类,而且能互相叠加。比如拿到 Brimstone 之后,普通的眼泪射击会变成蓄力发射的血腥激光;拿到 Ipecac 之后眼泪落地会爆炸,但也会炸到自己;Holy Mantle 能让你每个房间免疫第一次伤害,还带一个可见的护盾泡。
角色的属性面板常驻在左下角,高于基准值显示蓝色、低于基准显示红色,下面一排是已拾取的道具图标。

4)12 层地牢,每层美术风格完全不同
从第 1 层 BASEMENT 的棕石地砖,一路下坠到第 7 层 WOMB 的血肉地面(没有地砖网格,改成层叠的血肉瓣加爬行的血管和毛孔)、第 10 层 SHEOL 的焦黑地面加余烬光斑、第 11 层 CATHEDRAL 的白色大理石和彩窗拱门。
关键是这些素材全都是用代码画出来的,没有用任何一张图片。
5)13 个 Boss,每个都有独立状态机
每个 Boss 都有自己的攻击套路和阶段变化。比如 MONSTRO 会蓄力压扁然后跳跃冲撞,高跳时还会有红圈预警落点,掉到 50% 血进入狂暴;SCOLEX 钢甲蠕虫只有闪光的尾节能被打,大部分时间钻地无敌;SATAN 分三个阶段,最后会离地踩击并召唤爆炸蝇。

6)商店、死亡结算和移动端适配
第 2 层开始会出现商店,三个货架、价格随深度上涨,金币终于有了用处;死亡界面会结算击杀数、拾取道具、存活时间、到达层数、探索房间和击败 Boss 数。手机打开会自动出虚拟摇杆,竖屏能玩、横屏画面更大。

顺便对比一下原版游戏的角色形象,你会发现还原度确实挺高的:

上面只放了几张图,12 层地牢、13 个 Boss、11 种敌人的完整外观都在开源仓库的 截图画廊 里,或者你直接打开 在线试玩地址 自己感受一下更直观。
完整提示词
你肯定很好奇:一轮对话就搞定了?那提示词写的肯定很牛呗吧?
来给你们看下完整的提示词,虽然又臭又长,但基本全是 AI 生成的。原始需求就那么两段,然后我让 AI 逐步迭代优化,扩展成了现在这样。

我用的是 Cursor 的 /goal 命令来执行,完整内容如下,你可以直接拿去复用:
开发一个完全复刻「以撒的结合」核心玩法的肉鸽地牢网页游戏。俯视角,玩家操控角色在随机生成的房间中探索,用射击消灭敌人,清完一个房间后门打开进入下一个房间,每层有若干个房间和一个 Boss 房。
请先用 Firecrawl 联网搜索以撒的结合的游戏机制、美术风格、角色设计等资料,尽可能还原原作的视觉风格和游戏体验。游戏中的角色、敌人、道具、房间等图形素材用代码绘制,风格要贴近原作的暗黑卡通风。开发时用 Context7 查询所用游戏框架或库的最新文档。
核心系统包括:随机地牢生成(每层 5-8 个房间,房间之间有门连接)、射击战斗(玩家发射眼泪/子弹攻击敌人,敌人有不同的移动和攻击模式)、道具系统(击杀敌人或开宝箱随机掉落道具,道具能改变攻击方式、属性数值或角色外观)、属性系统(生命值、攻击力、射速、移动速度、射程)、至少 3 种普通敌人和 1 个 Boss。
操控方式:WASD 移动,方向键发射子弹(对应四个方向),桌面端键盘操控,移动端有虚拟摇杆和射击按钮。包含开始界面、死亡界面(显示本次探索统计:击杀数、拾取道具数、存活时间)、通关界面。
用 Loop Engineering 方式推进:先做一个房间 + 角色移动射击 + 一种敌人,确认战斗手感;然后加多房间连接和地牢生成;再加道具掉落和属性系统;最后做 Boss 和完整的游戏流程。每完成一步自己试玩验证,截图查看游戏画面渲染效果,根据截图判断角色、敌人、房间的视觉表现是否贴近原作风格,确保战斗手感好、敌人行为正常、道具效果生效、房间切换流畅,发现问题就自主修复。细品这段提示词,你会发现几个亮点:
- 需求写得足够明确具体,把核心系统、操控方式、界面流程都交代清楚了
- 让 AI 利用联网技能搜索原作的游戏机制和美术风格作为参考,而不是靠它自己瞎想
- 用了 Loop Engineering 循环工程的思路,让 AI 每完成一步就自己测试验证,发现问题自己修复,不断循环推进直到交付成品
第三点是这个项目能成的关键。如果你只说「做个以撒的结合」,AI 大概率给你一个能跑但不能玩的 Demo。而明确要求它自己试玩、自己截图检查、自己修问题之后,整个开发过程就变成了一个能自我推进的循环(完整方法可以阅读本教程经验技巧板块中的《Loop Engineering 保姆级教程》)。
AI 的执行过程
你肯定还会好奇:AI 会不会是联网搜到了原版游戏的源码,然后直接抄下来改巴改巴就完事儿了?
来,我带大家看下 AI 的执行过程。
AI 搜索的是原作游戏的机制和美术风格,然后自己从零写了 5000 多行代码,所有图形素材都是用代码画出来的。

接下来 AI 会自己打开浏览器运行游戏、通过截图检查效果,甚至写了一个机器人去试玩自己的游戏。然后发现难度太大、根本玩不了,于是自己定位和修复问题,调整了几个小时才终于交付。

这就是 Opus 5 恐怖的工程能力。虽然慢了点儿,但这个过程完全不需要我人工花时间,睡了一觉,游戏就做好了。

第一轮对话交付的是一个 3 层地牢的版本。之后我又开了个新对话,让 AI 帮我进一步扩展游戏,同样要求它自主测试验证,并且直接给我交付成品。

一觉醒来,AI 完成了任务,把游戏扩容到了 12 层地牢、13 个 Boss、55 件道具。激动的心,颤抖的手,咱们来玩玩看。

虽然比不上原版,但 AI 独立做到这个完成度,确实超出我的想象了,我自己试玩了半个小时都停不下来。

技术选型
这个项目的技术选型很有意思,因为它几乎每一条都是被需求逼出来的,而不是拍脑袋选的。
| 选择 | 理由 |
|---|---|
| 原生 Canvas 2D,手写游戏循环 | 需求要求素材用代码绘制,程序化绘图是核心工作量所在,游戏框架帮不上忙反而增加体积 |
| 原生 JavaScript,无构建 | 交付物要求浏览器直接打开就能玩,用普通 <script> 标签而非 ES module,双击 index.html 就行 |
| 固定 900×540 逻辑分辨率 + CSS 缩放适配 | 和原作的房间比例一致,所有坐标可以写死,不用处理分辨率无关逻辑 |
| mulberry32 播种随机数 | 同一个 seed 能复现整层地牢,测试和 Bug 复现全靠它 |
| WebAudio 程序化合成音效 | 同样为了避免外部资源,射击、受击、死亡、拾取、Boss 咆哮全部实时合成 |
| Python Playwright + 页面内调试接口 | 用真键盘和真触控驱动,配合可断言的游戏状态做自动化测试 |
代码结构也很清晰,按职责拆成了几个文件:
js/util.js 常量、数学、播种随机、粒子系统、屏幕震动、程序化音效
js/art.js 全部程序化绘图(2513 行,是最大的一个文件)
js/dungeon.js 楼层平面生成 + 12 层章节表 + 13 种房间布局
js/items.js 55 件道具及各自的程序化图标和效果
js/entities.js 玩家、眼泪模板、11 种敌人 AI、13 个 Boss 状态机
js/game.js 状态机、房间生命周期、碰撞、掉落、HUD、小地图、商店
js/main.js 输入、缩放适配、界面流程、调试接口
test/ 自动化测试游戏本体 7921 行,其中程序化绘图独占 2513 行。这个比例很说明问题:当素材全部要用代码画的时候,绘图就是主要工作量。 测试代码另有 1604 行。
AI 自主迭代了 4 轮
前面说 AI「自己调整了几个小时」,这段时间它到底在干什么?
我翻了 AI 留下的开发过程报告,它一共自主迭代了 4 轮,每一轮都有很值得学的东西。
轮 1:先打通全链路,然后被截图打回
AI 没有按功能一个个做,而是一次性搭出完整骨架,然后立刻写测试脚本从头到尾驱动一遍。
结果第一次运行就 52 条断言全部通过,没有 console 报错,帧率 106fps。移动、射击、敌人掉血、清房开门、房间切换、道具生效、Boss 状态机、死亡和通关界面全部一次跑通。
但截图复查之后,它发现了一堆美术问题:Boss 太小、和普通敌人差不多大还跟地板撞色;开着的门是一块纯黑矩形,像画面破了个洞;石头是扁平的五边形;地板棋盘感太强,一眼就是程序画的;角色朝上时后脑是一颗没有细节的白蛋。
这一轮最大的启示是:断言全绿不等于好看。 逻辑正确和视觉正确是两回事,前者可以让 AI 自己断言,后者只能靠出图人工看。
轮 2:修命中反馈,顺手消除隐式耦合
第二轮继续截图复查,又抓到几个手感问题。最典型的是玩家受击时会被一个巨大的粉红色圆糊住整个身体,因为用了叠加混合模式画了个实心椭圆。改法是把「盖一个色块」换成「贴合轮廓的红色描边 + 外发光 + 极低透明度叠加」。
还有一个技术细节很值得学。AI 把五种敌人的尺寸整体上调之后,发现脸和身体脱节了,因为五官的偏移量是按旧半径硬编码的。它的解决办法是引入一个统一的缩放函数:在固定参考半径下作画,再整体缩放。 这样以后调整碰撞半径就不会再破坏比例了。
这种问题很典型,AI 写代码时经常留下这类隐式耦合,一旦你改了某个数值就会崩。让它抽象出一层,比每次出问题再手动修更划算。
轮 3:让机器人替你试玩,本轮价值最大
截图只能证明「好看」,证不了「能玩」。
所以这一轮 AI 写了一个页面内的机器人,只通过和人类完全相同的输入接口来操作游戏,然后跑多局无作弊试玩。
结果第一次机器人试玩,6 局全部在第 2 个房间内 20 到 34 秒暴死,平均只有 2.7 击杀。
断言全绿的游戏,实际根本不能玩。
最关键的原因是击退是假的。代码里被击中时给了一个速度冲量,但移动逻辑每帧都在把速度拉回目标值,两帧内就把冲量抹平了。结果无敌帧一结束,怪还贴着你,立刻挨第二下,形成死亡螺旋。修法是加 0.2 秒硬直,硬直期间输入不接管速度。另外还给敌人加了 0.55 秒的具现化保护期,避免开门瞬间白送伤害,并配了浮现动画让玩家看得懂;还加了命中停顿(命中瞬间冻结几帧),这个改动很便宜,但「打到了」的手感几乎全靠它。
第二次机器人试玩,不再暴死了,但 6 局全部卡在同一个房间不动。打日志逐帧 dump 状态之后,抓到两个真 Bug:清房奖励会掉进坑里永远拿不到(奖励固定生成在房间正中,而坑洞布局的坑正好占着那格);坑洞阵的斜向缝隙只剩 9.5 像素,玩家挤进去之后两个碰撞法向互相抵消就动不了了。
还有第三个问题特别有代表性:机器人自己也有 Bug,它的四向射击必须先在某一轴对齐才打得中,但它一直斜着开枪。如果不去查,你会以为是游戏难度问题,然后把敌人越调越弱,结果越调越偏。你的测试工具本身也可能是错的。
第三次机器人试玩,0 死锁,但仍然 0 个 Boss 击杀。给伤害来源打上标签之后,结论非常干净:每局都清掉了 4 到 5 个普通房,全程只掉 3 到 4 点血,然后死在 Boss 手里,90% 的伤害来自 Boss 的接触伤害。
也就是说普通房难度已经调好了,问题 100% 在 Boss 战。于是做了一系列公平性修正,其中最重要的一条是:Boss 身体只在真正扑击的时候才造成伤害,站在待机的 Boss 旁边不再持续掉血。这也更接近原作,威胁应该来自有前摇的攻击,而不是贴着他站。
这一轮还暴露了一个测试方法上的坑。我本机同时跑了 7 个 Agent,页面拿不到 60fps,最差的情况下 905 秒挂钟时间只推进了 8.3 游戏秒,8 局跑了 90 分钟,大多数局是被超时截断而不是真的打输了。修法是把测试预算从按挂钟时间计改成按游戏内时间计,另外单独写了一个脚本直接把机器人塞进 Boss 房实战,80 秒就能判定 Boss 战是否可胜。
轮 4:移动端真机视口复查
最后一轮用手机视口截图,发现画布被压缩且裁切,只显示房间的一小块。
原因是承载画布的容器是 flex 子项,固定 900px 宽在 414px 视口里先被 flex 压扁,再叠加缩放,溢出部分被裁掉了。桌面端因为视口比 900 宽,从来没触发过,所以前面所有测试都没抓到这个问题。
修完之后 AI 补了 2 条回归断言:画布尺寸必须等于等比缩放值、必须完整落在视口内。
每修一个 Bug 就补一条断言,这是让 AI 长期维护一个项目的关键习惯。
怎么验证 AI 写对了
整套验证手段最后固化成了 6 层,我觉得这是这个项目最值得抄走的部分:
- 结构冒烟测试:11 条,确认文件结构和入口没问题
- 功能断言测试:70 条,用真键盘和真触控驱动页面,覆盖移动、射击、清房、道具叠加、Boss 战、死亡通关、移动端触控、地牢生成健壮性、性能等分组
- Boss 战可胜性测试:13 个 Boss 逐个实战,最终 10 个被击杀,13 个全部被打到 78% 血量以下
- 机器人全流程试玩:真实推进多层地牢,检查有没有死锁和报错
- 难度标定:实测每层的 DPS 曲线,用来拟合血量成长曲线
- 美术复查:每层每个 Boss 各出一张图,人工看
这里面第 5 条最值得说。玩家的输出是复利式增长的,每件道具都在上一件的结果上加或乘,实测机器人从第 1 层到第 12 层 DPS 增长了大约 20 倍。所以血量也必须复利增长,否则后期 Boss 几秒就被融掉。第一版用线性缩放的时候,第 12 层的 Boss 只撑了 5.9 秒。
最终的成长指数是拿实测 DPS 曲线拟合出来的,不是拍脑袋定的。这种事以前需要专门的数值策划来做,现在让 AI 跑几轮测试就能算出来。
一句话部署上线
游戏做好了,我想让大家都能玩上,怎么办?
我只要再跟 AI 说一句话,让它用 EdgeOne Makers 的网站部署技能直接上线。

很快 AI 就搞定了,还可以绑定一个自己的域名。

好了,现在大家都可以玩了。

想了解更多部署方式,可以阅读本板块中的《项目部署上线教程》。
一句话开源
还没完。我想让更多人帮我一起扩展游戏,怎么办?
同样只要跟 AI 说一句话,让它帮我生成带有截图的项目介绍文档,并使用 GitHub MCP 插件直接把代码完全开源。

好了,现在大家都可以拿去二次开发了。

从开发到测试到部署到开源,整个流程我一次都没有离开对话框。
项目收获
这个项目适合已经能用 AI 做出简单网页、想进一步挑战复杂项目的同学。跟着做完,你能收获:
- 学会用 Loop Engineering 的思路让 AI 自主迭代,而不是每一步都手动指挥
- 理解为什么「断言全绿」不等于「做对了」,以及逻辑验证和视觉验证要用不同的手段
- 掌握用自动化测试机器人验证交互效果的方法,这套思路可以迁移到任何需要真实操作验证的项目
- 明白让 AI 抽象出一层来消除隐式耦合,比每次出问题再修更划算
- 体会到 AI 现在已经能承担资料考证的工作,比如复刻原作的地牢生成算法
- 跑通从开发到部署上线再到开源的完整闭环
关于资料考证补充一下,这个项目的地牢生成算法是复刻原作真实算法的,AI 通过联网搜索找到了别人对原版源码的逆向分析,然后 1:1 实现。其中有一条规则很妙:候选格如果已经有超过 1 个已填充的邻居就拒绝生成,这条规则正是原作地牢「只有走廊、没有环路」的来源。
这种活儿以前得你自己去翻 Wiki 和论坛,现在交给 AI 联网搜索就行了。
花了多少钱
最后揭晓开发这个游戏消耗的金额,大概 400 多块钱,你觉得贵不贵?
如果搁以前我去请一个程序员来做,最少也得好几万吧,而且估计得做一个多月。
不过 Opus 5 的价格确实挺贵的,不是所有任务都需要用这种级别的模型,大家还是要根据具体任务选择合适的模型。

简单说就是:追求 90 分效果的任务交给 Opus 5,只需要 80 分的任务交给 GPT 或者 Kimi K3、GLM-5 这类模型,只要及格就好的任务用性价比极高的 DeepSeek。更详细的选择方法可以阅读本教程编程工具板块中的《AI 模型选择指南》。
写在最后
玩着自己做的游戏,我真是感慨万千。

小时候最想做的事,现在终于做到了。说实话,不是我变强了,是 AI 太强了。
不过我想强调的是,这个项目并不是「一句话让 AI 做个游戏」那么简单。真正让它从玩具变成产品的,是那 4 轮迭代里的每一次验证:截图复查抓美术问题、机器人试玩抓可玩性问题、DPS 标定抓数值问题、真机视口抓适配问题。
AI 负责写,你负责设计怎么验证。 这可能就是现阶段 Vibe Coding 最核心的分工了。
而且负责任地说,如果我再多花点时间,完全可以利用 AI 把它打磨成一个商业级产品,甚至让你看不出来是 AI 做的。所以都这个时候了,别再觉得 AI 搞不定复杂的项目了。

大家肯定也有一直想做但做不了的东西,不管是一个产品、一个游戏、还是帮自己提升效率的工具,现在真的可以大胆尝试了。
不用一开始就追求完美,先跑通最小的链路,然后设计好验证方式,让 AI 一轮一轮迭代下去。
想了解这次开发所用的模型能力,可以阅读本教程模型动态板块中的《Claude Opus 5 编程能力实测 - 7 个项目案例》,这个游戏就是那 7 个测试项目之一。