完整教程:用 Claude Code 20 分钟构建复古游戏
AI Coding

完整教程:用 Claude Code 20 分钟构建复古游戏

P
Peter Yang
2025年1月21日YouTube
返回首页

金句精选

我女儿现在甚至不会盯着代码看,她只关心游戏什么时候能玩

我作为PM都不用写需求文档了

做这种好玩的东西,别让权限提示打断节奏

一次做太多东西容易出Bug

创作者不再需要理解底层逻辑,只需要知道自己想要什么

100%的代码都是AI写的。连游戏素材的选择,都是AI完成的。如果你还在逐行敲代码,或者觉得做游戏需要「懂编程」,你可能正在用打字机时代的方式工作。一个七岁的孩子,连键盘都打不利索,却能在20分钟内做出一款可以发布的复古射击游戏。

这个孩子的父亲,不是程序员。他叫Boris,是一位产品经理。每个周末,他会和女儿坐在电脑前,用Claude Code这个AI工具造点什么。他们做过一款横版水下射击游戏,玩家控制游泳者对抗鲨鱼。也做过动物医院游戏,给生病的小动物治病,图片素材用Nano Banana生成。Boris说,「我女儿现在甚至不会盯着代码看,她只关心游戏什么时候能玩」。这句话里藏着一个事实:在2026年,创作者不再需要理解底层逻辑,只需要知道自己想要什么。

Boris的女儿面临的「困境」,其实是大多数人的困境。她有想法,想做一款太空射击游戏,但她不会写代码。甚至连打字都很慢。传统路径是:学编程语言,学游戏引擎,学素材制作,然后花几个月时间磨出一个半成品。但这条路对一个七岁孩子来说,等同于不可能。Boris自己也不是工程师,他只是会用终端和AI对话。他的女儿更是连终端是什么都不知道。

但这不是重点。

Boris发现,Claude Code这个工具有一个功能叫「ask user question」。它会主动问你问题,帮你把模糊的想法变成可执行的计划。比如女儿说想做太空游戏,Claude会问:你想要横版滚动还是纵向滚动?你想要什么类型的敌人?你想加入Boss战吗?这些问题不是技术问题,而是创意问题。回答完这些问题后,Claude会自动生成一份完整的开发文档,分成三个可玩的里程碑版本。Boris说,「我作为PM都不用写需求文档了」。


第一步,准备项目文件夹,只需要30秒。 Boris在电脑上建了一个空文件夹,叫Space Shooter Game。他用的软件是Cursor,一个免费的代码编辑器,可以和Claude Code对话。安装Claude Code的方法很简单,去官网复制一行命令,粘贴到终端里执行就行。Boris有个小技巧:他会输入「claude --dangerously-skip-permissions」,这样Claude就不会每次操作都要求他确认权限。他说,「做这种好玩的东西,别让权限提示打断节奏」。

第二步,找游戏素材,Boris用了一个像作弊一样的方法。 他安装了一个叫Whisper Flow的语音输入工具,然后对着电脑说:「我想做一款复古2D太空射击游戏,去哪里找免费的像素艺术素材?」Claude Code自带网络搜索能力,它会自动去Open Game Art、itch.io这些网站找资源。但Boris提前准备了一个素材包,是一位叫Animus的创作者做的付费包(5美元),里面有太空飞船、外星人、Boss怪物的像素图。他直接把这个文件夹拖进了项目目录,然后让Claude扫描一遍,确认有哪些素材可以用。Claude列出了所有可用的飞船、敌人、背景图。Boris的女儿在旁边看着这些像素小人,开始兴奋起来。

第三步,让Claude写计划。这一步占了整个流程40%的篇幅,因为这是最反直觉的部分。 大多数人以为,用AI工具就是直接说「给我做个游戏」,然后等它输出。但Boris不是这么干的。他输入了这样一句话:「写一份包含需求、三个里程碑的开发文档,每个里程碑都必须是可玩的版本,把所有用到的像素素材路径都列出来,如果有不清楚的地方就用ask user question问我」。

Claude开始问问题。第一个问题:用什么技术栈?Boris选了Phaser,一个专门做2D游戏的JavaScript框架。第二个问题:你想要什么滚动方向?Boris说纵向滚动。第三个问题:你想要哪些功能?屏幕上出现了一个多选列表:能量提升系统、Boss战、计分板、多波次敌人。Boris全选了。提交后,Claude花了2分钟生成了一份完整的文档。

这份文档的核心是三个里程碑。里程碑一:基础原型,玩家能移动、能射击,敌人从上往下飞。里程碑二:进阶系统,加入能量道具、更多敌人类型、屏幕震动效果、血条显示。里程碑三:Boss战和最终打磨。每个里程碑后面都列出了要用的素材文件路径,比如「player-ship.png」「enemy-type-1.png」「boss-sprite-sheet.png」。

Boris看完文档后,只删了一句话:「保持60帧流畅运行」。他说,「这种细节Claude会自己处理,不用写进文档」。然后他让Claude开始构建里程碑一。

两分钟后,Claude说完成了。Boris在浏览器里输入localhost地址,一个像素风太空游戏出现在屏幕上。飞船能动,能发射子弹,敌机从上往下飞。背景有点奇怪,但基本功能都有了。Boris的女儿开始操作键盘,射击敌机,笑得很开心。

Boris没停下,直接让Claude继续做里程碑二。又是几分钟后,游戏里多了能量道具(武器升级、护盾、速度提升),敌人类型变多了,屏幕下方出现了血条。但有个Bug:飞船的图片显示不对。Boris没急着修,先让Claude完成里程碑三。

里程碑三本该包含Boss战。但Claude问Boris:用哪个素材做Boss?Boris说,「在素材包里再找找,肯定有适合的」。Claude重新扫描了一遍,找到了一个叫「top-down-boss」的文件夹。然后用了4分钟完成了最终版本。

Boris和女儿开始测试游戏。玩了30秒后,Boris发现问题:太简单了。敌人一个接一个慢悠悠地飞下来,没有压迫感。他对Claude说:「游戏太无聊了,敌人数量要多,节奏要快,Boss要在第一关就出现,还有那些显示错误的素材也修一下」。Claude按照这些模糊的指令,重新调整了游戏。

刷新页面后,屏幕上的敌人密度明显增加了。能量道具也多了。玩了一会儿,屏幕上出现「Warning: Boss Approaching」的提示。但问题来了:Boss没出现。屏幕上只有提示文字,血条显示为0。

Boris截了个屏,粘贴到Claude Code里,说:「Boss根本没出现,血量也是0」。Claude开始调试。它发现问题在于:Boss的血量数据存储在了Phaser引擎的对象属性里,但这个属性会被引擎自动修改,导致数据丢失。解决方法是把血量变量移到场景级别。这个修复过程花了10分钟。Boris说,「如果是和孩子一起做,这时候就让她去看会儿YouTube吧」。

修好后,Boris再次进入Boss战。这次Boss真的出现了,是一个巨大的像素飞船,会发射密集的子弹。Boris操作着玩家飞船左躲右闪,花了快一分钟才把Boss打爆。「我可能把它做得太难了」,他笑着说。

问题出在下一步。

游戏做完了,怎么让别人玩到?Boris去GitHub创建了一个新仓库,名字叫Space Shooter Game。然后把GitHub仓库的链接复制下来,对Claude说:「把代码提交到这个链接」。Claude自动完成了所有Git操作。Boris刷新GitHub页面,所有代码文件和素材都已经上传了。

接着他注册了一个Vercel账号(免费),在「Add New Project」界面粘贴了GitHub仓库的链接。点击Deploy后,Vercel生成了一个公开网址。Boris点开链接,游戏在浏览器里正常运行。他把这个链接发给了朋友,任何人都能玩。


想想你最后一次在办公室里听到「这个功能需要三周开发时间」的时候。那句话背后的假设是:人类要逐行写代码,要处理各种技术细节,要反复调试。但这个假设正在被AI打破。Boris和Claude Code的对话模式,本质上是「目标驱动」而非「过程驱动」。他不需要知道Phaser引擎的API怎么用,不需要理解JavaScript的事件循环机制,甚至不需要知道什么是版本控制。他只需要清楚自己要什么,然后用自然语言描述出来。Claude会自动把目标拆解成技术步骤,并执行。

这里有个关键点:Boris在里程碑规划阶段花的时间,比写代码的时间还多。他没有急着让Claude一次性做完整个游戏,而是分成三个可测试的版本。这种做法类似于敏捷开发里的「增量交付」,但Boris不是程序员,他只是知道「一次做太多东西容易出Bug」。这个常识级的判断,在AI时代变得比技术能力更重要。

局限性也很明显。Boris遇到的Boss血量Bug,花了10分钟才修好。如果是更复杂的游戏逻辑,比如多人联机、物理引擎碰撞,Claude可能需要更多轮对话才能解决。而且,这个工具对素材质量有依赖。如果你的像素图分辨率不统一,或者文件命名混乱,Claude可能会用错素材。Boris提前准备了高质量的素材包,这省去了很多麻烦。另外,Claude Code目前主要支持Web技术栈(HTML、JavaScript),如果你想做Unity或Unreal引擎的3D游戏,这套方法不适用。

Boris没有总结什么「AI时代的核心技能」,他只是把Vercel生成的链接发给了女儿的同学们。那天晚上,有七八个小朋友在线上玩他们做的太空射击游戏。Boris的女儿在旁边盯着屏幕,看到有人通关Boss战时,她跳了起来。Boris转过头问她:「下周末想做什么游戏?」

她说:「恐龙的。」