事情是这样的。
PyRogue — Python 学徒的肉鸽冒险
前两天我在电脑上打开了一个文件名叫 PyRogue 的 HTML 文件。双击之后,屏幕上出现了一个暗金色的标题画面,一条蛇在上下浮动,底下写着 "PyRogue — Python 学徒的肉鸽冒险"。
我点了一下"普通模式",画面切换到战斗场景。一只蝙蝠emoji飘在屏幕中央,下面写着"语法蝙蝠,初级语法守护者"。底部出现了五张卡牌,每张上面都有一个Python知识点,变量与输出、for循环、列表推导式,难度从一星到三星不等。
我选了一张"字典合并",弹出一个问题,以下代码的输出结果是什么?四个选项,我选了 C,对了。蝙蝠身上炸开一片绿色粒子特效,造成85点伤害。
就这么一张牌一张牌地打,答对就造成伤害,答错就被怪物攻击扣血。打完三层怪,进入神奇商店强化卡牌,继续打下一层。
直到打到最终boss 异常巨龙 !!!每一关的怪物都是跟编程有关的,太赞了。
说实话。
零代码Vibe Coding,手搓一个肉鸽卡牌游戏
这个游戏,是我用 Mulerun 和 Trae,零代码经验,纯手搓Vibe Coding做出来的。
最近杀戮尖塔、浣熊推币机实在太火了,我想我能不能也开发一款肉鸽游戏呢。刚好最近在学习 Python ,就拿 学习+卡牌+肉鸽 为主题来手搓。
没想到 Mulerun 是真的接住了。
对,没错。一个连 HTML 标签都写不利索的人,做了一个完整的 Python 学习 + 肉鸽闯关 + 卡牌战斗游戏。100道编程题,10层地牢,12种遗物,12项成就,3个可解锁角色,还有内置的代码运行器和错题回顾系统。
而且整个游戏,就是一个 HTML 文件,1556行代码,文件打开就能玩。
我跟你说说这个过程是怎么回事。
一开始我就是想做一个Python学习工具。不是那种枯燥的刷题网站,而是让人有动力一直玩下去的东西。我想到了肉鸽游戏,想到了卡牌战斗,想到了把编程题变成攻击手段这个点子。
但我不会写代码啊。
于是我把这个想法丢给了 Mulerun 。我说,我要做一个肉鸽+卡牌类型游戏,玩家通过抽卡出牌回答 Python 题目来攻击怪物,答对造成伤害,答错被怪物攻击。要有卡牌系统,要有难度分级,要有商店买遗物,要有成就系统。
Mulerun 说,好的,我来帮你。
然后我就开始了一段极其魔幻的经历。
第一次生成的版本,只有一个粗糙的界面,几张卡牌,点一下出题目,选答案,对了就扣怪物血。简单到不能再简单。但核心循环是通的,选题→答题→战斗,这个闭环跑起来了。
我说,太简陋了,我要有角色系统。于是加了"学徒""调试者""重构者"三个角色,每个角色有不同的被动技能。
调试者第一次答错不会扣血,重构者每张牌基础伤害+8。攻城狮是隐藏角色,需要解锁前两个才能用。
我又说,要有肉鸽的感觉,每次冒险应该不一样。于是加入了遗物系统。12种遗物,精准瞄具让简单题伤害翻倍,连击火焰让连续答对有额外加成,凤凰之羽可以在死亡时复活一次,混沌骰子让伤害随机乘以1到3倍,赌狗专用。
遗物可以在商店用积分购买,商店在第3、6、9层出现。积分来自造成伤害的奖励。这就形成了一个资源循环,答得好→伤害高→积分多→买遗物→更强→答得更难更好的题。
然后我又说,题目不能每次都一样,要随机。于是 Mulerun 写了一个抽题系统,100道题分成简单20道、中等40道、困难40道。
每层地牢抽取5张牌,2难2中1易,选项顺序每次都会打乱。普通模式10层,每层一个怪物,从语法蝙蝠到异常巨龙BOSS。无尽模式可以一直打下去,怪物血量每过10层增加30%。
我说,要有反馈感,答对答错都要有爽到或痛到的体验。于是 Mulerun 给每种难度设计了不同的命中特效。
简单题命中,怪物轻微闪烁,绿色光晕。中等题命中,怪物旋转震动,蓝色粒子四溅。困难题命中,怪物剧烈扭曲变形,金色和红色粒子爆炸,屏幕还会震动。
答错了,红色伤害数字从玩家头顶飘起,屏幕闪烁血红。
音效也是纯代码生成的。没有音频文件,全部用 Web Audio API 实时合成。选牌时一个上升的 sine 波,命中时不同难度的锯齿波和弦,受伤时低沉的 sawtooth 下滑,护盾触发时清脆的 triangle 波。
背景音乐是四个和弦循环的琶音器,C-Am-Bb-G,用正弦波和三角波叠加,加上一个55Hz的低音drone,营造出地牢探险的氛围感。
我说,不能只让选答案,要能写代码跑代码。于是 Mulerun 加了一个代码运行器。在答题界面可以切换到"代码运行器"标签,自己写 Python 代码,点击运行,看输出结果,然后提交比对。
这个运行器不是真的 Python 解释器,而是一个用 JavaScript 写的简化模拟器,能处理变量赋值、print输出、基本数学运算、字符串操作、列表操作。虽然简单,但足够用来验证大部分题目的答案了。
用代码运行器答对题目,还会解锁一个"代码猎人"成就。
感觉纯闯关不够,还要设计收藏体系。于是我说,要有收集感和成就感。
于是做了怪物图鉴、遗物藏册、成就系统,全部用 localStorage 本地存储。打过的怪物会解锁图鉴,买过的遗物会加入藏册,达成的成就会永久记录。
12项成就,从"初出茅庐"到"屠龙勇士",还有"购物狂""不死鸟""赌徒"这种趣味成就。
错题也会被记录下来,游戏结束后可以进入"错题回顾",一道一道看当时错在哪里,正确答案是什么,为什么。
整个开发过程,我没有写一行代码
全是 Mulerun 生成再用 Trae 做微调的。我做的事情只有三件,提需求、测试、反馈。
"这个颜色太亮了,换成暗金色。""怪物被击中时要有粒子效果。""商店界面要能看到当前积分。""无尽模式的难度曲线要再陡一点。"
AI 编程真的太牛了。
他就像一个有耐心的程序员搭档,你说什么他改什么,不会嫌你烦,也不会说"这个需求不合理"。
当然,有时候他也会理解错,生成出来的东西跟你想的不一样。那就再描述一遍,或者换个说法。反正不需要你自己去查文档、写代码、调CSS。
整个过程大概就花了一晚上。从一个Python学习闯关的想法到一个真正能玩的肉鸽游戏。
这就是 vibe coding。
这个词是最近几个月火起来的,意思是你不需要懂编程,只需要有想法,用自然语言跟 AI 描述,AI 帮你把代码写出来。
你不需要关心语法、不需要关心框架、不需要关心怎么部署。你只需要关心"我要做什么",而不是"我怎么做"。
说实话,我一开始是有点怀疑的。
作为一个产品经理,我见过太多"低代码""无代码"平台了。最后都是,简单的东西确实能做,稍微复杂一点就卡死,要么性能不行,要么扩展不了,要么维护成本比直接写代码还高。
但现在的 AI 编程是真的不一样啊,他是真的为没有代码基础的人设计的。
低代码平台是给非技术人员用的,但说到底还是在搭积木,积木的形状和数量是固定的,你想搭一个平台没提供过的形状,就抓瞎了。
Vibe coding 不一样。AI 不是给你积木,AI 是给你一个有无限可能的工匠。你说"我要一个会发光的按钮",他给你写。你说"我要一个会根据鼠标位置改变颜色的背景",他也给你写。你说"我要一个完整的游戏",他还是给你写。
唯一的限制是你的想象力,和你描述需求的能力。
而且最神奇的是,这个 HTML 文件打开就能玩。不需要安装 Python,不需要配置环境,不需要 pip install 任何东西。浏览器就是运行环境。所以任何人,只要有浏览器,就能玩这个游戏。发给别人,双击打开,立刻开始。
这背后其实有一个很有意思的趋势。
以前,如果你想做一个游戏,哪怕是一个简单的网页游戏,你也得懂 HTML、CSS、JavaScript,可能还要懂 Canvas、WebGL、游戏引擎。现在呢,你只需要懂"我想做一个什么样的游戏",剩下的交给 AI。
这降低的不仅仅是技术门槛,更是心理门槛。
很多人有想法,但觉得自己不会编程,就算了。现在不用算了。你有想法,说出来,AI 帮你实现。实现得不好,再改。改到满意为止。
当然,vibe coding 不是万能的。
AI 生成的代码,有时候会有 bug。比如我遇到过一个情况,代码运行器处理 f-string 的时候,如果变量名跟某些关键字冲突,就会解析错误。还有,粒子特效在低端设备上可能会卡顿。这些问题,如果你完全不懂代码,可能很难定位和修复。
但换个角度想,以前你连这个 bug 都遇不到,因为你根本做不出这个东西来。现在至少你能做出一个80分的东西,然后花20%的精力去修那20%的 bug。而不是以前,花100%的精力去学编程,最后可能连20分的东西都做不出来。
而且 AI 还在快速进化。现在的 Mulerun、Trae、Cursor、Codex 这些工具,已经能处理相当复杂的项目了。再过一年,可能 bug 会更少,理解能力会更强,甚至能主动帮你优化性能。
回到 PyRogue 这个游戏。
我做这个游戏的初衷,其实不只是为了做一个游戏。我是想验证一件事。
一个完全不懂代码的人,能不能用 AI 做出一个像模像样的产品。
答案是,能。
而且不只是"能做出一个demo",是能做出一个有完整游戏体验、有策略深度、有收集要素、有成就系统的完整产品。
100道 Python 题目,从变量输出到装饰器参数,覆盖了 Python 基础到进阶的大部分知识点。每道题都有详细的解释,答错了能看到为什么错,正确答案是什么。错题还会被记录下来,方便复习。
游戏机制上,卡牌选择有策略性。五张牌,简单题伤害低但稳妥,困难题伤害高但风险大。遗物组合也有build思路,是走连击流还是暴击流还是稳健流。角色技能影响打法,调试者容错率高,重构者伤害稳定。
这些内容,如果让我自己写代码,我可能半年都做不出来。用 vibe coding,一个周末。
我跟你说这个,不是想鼓吹"以后程序员都要失业了"。
程序员不会失业。但"只有程序员才能做产品"的时代,可能真的要过去了。
以前,产品经理有一个想法,要写 PRD,要画原型,要开评审会,要排期,要等开发资源。现在呢,产品经理可以直接把想法做出来,自己测试,自己迭代,自己发布。从"想"到"做"的周期,从几个月缩短到几天。
这不是替代程序员,这是把"创意"和"实现"之间的墙拆掉了。
而且 vibe coding 最有价值的地方,不是做出来的东西有多完美,而是他让你敢想了。
以前你有一个想法,第一反应是"我不会做,算了"。现在你的第一反应是"我试试跟 AI 说说看"。这个心态转变,比任何技术突破都重要。
我做 PyRogue 的时候,有很多想法是一边玩一边冒出来的。玩着玩着觉得,要是能自己写代码验证答案就好了,于是加了代码运行器。玩着玩着觉得,要是能记录错题就好了,于是加了错题回顾。玩着玩着觉得,要是能有不同角色不同打法就好了,于是加了角色系统。
Vibe Coding 就是一边玩一边改
这种"边玩边长"的感觉,是 vibe coding 独有的。因为迭代成本太低了,改一个需求只需要说几句话,几分钟就能看到效果。你的创意和反馈之间几乎没有延迟,创意就会像滚雪球一样越滚越大。
最后说点实在的。
如果你也想试试 vibe coding,我的建议是,别想太多,直接开始。
找一个你真正想做的东西,哪怕很小。一个记账工具,一个番茄钟,一个个人主页,一个学习游戏。然后打开 Trae 或者 Cursor,把你的想法用自然语言描述出来。不要追求完美,先让核心功能跑起来。跑起来之后,你自然就知道下一步要加什么了。
描述需求的时候,尽量具体。不要说"我要一个好看的游戏",要说"我要一个暗色背景的游戏,主色调是金色和深紫色,字体用 Cinzel Decorative 这种衬线体"。不要说"我要有音效",要说"选牌时要有短促的上升音,命中时要有爆炸感的和弦,受伤时要有低沉的下滑音"。
越具体,AI 理解得越准,生成的东西越接近你想要的。
而且不要怕试错。AI 生成的东西不满意,就改描述,再试一次。每一次试错,你都在学习怎么更好地跟 AI 沟通。这种沟通能力,可能就是未来最重要的技能之一。
PyRogue 现在还是一个单机的 HTML 文件,但我已经在想下一步了。
加联机排行榜?加更多题目?加关卡编辑器让玩家自己出题?这些想法放在以前,我想都不敢想。现在呢,我觉得都可以试试。
毕竟,连一个完全不懂代码的人都能做出一个完整的游戏,还有什么是不可能的?