
这件事一开始纯属意外。前一阵,Claude 帮我叫出了一款我追寻了好多年的游戏的名字。大约 25 年前,我五岁左右,和妹妹一起玩过它。再次见到它时,那股怀旧感来得比我预想的还要猛。它的玩法极其简单,却依然能牢牢抓住你,于是我突然冒出一个念头:我想把它做回来,做成 3D 的。
目标不是做内容。我想做一个自己玩得开心、还能拿给朋友和家人的东西。所以我把所有工具都接进了一个 agent。 Claude Code 驱动着 Godot MCP、Blender MCP 和 fal.ai 来做图像、3D、音效和音乐,全都在同一个对话里完成。这就是完整的流程:哪里出了岔子,哪里表现得比我预期的还好,以及它在 token 和额度上到底花了多少钱。
CLAUDE.md。如果你打算照着我这套配置来做,那份文件正是你想要的部分。它会带着下一个 agent 走完 Godot MCP、Blender MCP 和 fal.ai 生成管线,还写清了我一路上踩过的那些坑。把仓库拉下来,或者单独下载那份 CLAUDE.md: github.com/witnesstodark/tron-exonix · 下载 CLAUDE.md ↓CLAUDE.md 都在上面链接好了,你可以照着搭出一模一样的配置。1. 一款被 AI 找回来的童年游戏
原作是 Xonix,一款小小的街机游戏:你在一片场地上圈出自己的领地,同时一堆弹跳的球四处乱窜,想在你把线封闭之前撞上它。圈下足够多的场地,就能过关。整个循环就这么简单,而它到今天依然经得起玩。
我不想只是照搬。我先花时间重新玩了一遍:是什么让它好玩,哪里我能改进,哪里该保留。计划是换掉画风、打磨机制,做出一个值得拿给妹妹和朋友看的东西。你不需要一开始就把每个细节都设计好。很多好点子,只有当你真正在玩自己的原型时才会冒出来。

2. 为什么选 Godot(不是 Three.js,也不是 Unreal)
第一个真正的决定是选引擎。对我想做的东西来说,Three.js 感觉太受限了。 Unreal Engine 对这么小的游戏又太重了。然后我想起了 Godot:轻量、秒开、下载体积很小,很适合独立的 2D 和 3D 游戏。你们中很多人也一直催我去试试它,这正好是个借口。
3. 概念,以及那种 Tron 质感
在写任何代码之前,我先在 agent 的工作区里把概念定下来:调研、氛围,还有一批供我反应的风格图。我最后定在了 Tron: Legacy 的美学上:近乎全黑的表面、发光的青色边缘、那种冰冷的霓虹气氛。这种质感我从青少年时期就爱着,它和一个圈地类游戏完美契合。
4. 整套配置,基本上一句提示词搞定
这部分最让我意外。我从头到尾没打开过 Godot 去配置任何东西。我告诉 Claude 去做一个 Godot 游戏、并找出最合适的 MCP,它就自己把 Godot 这一侧全都搞定了。一句提示词。它唯一要求我做的,是重启一下会话,好让 Godot MCP 加载进来。
Blender MCP 同样轻量:在 Blender 里装一个插件、激活一次就好。Godot 和 Blender 都是免费的,所以唯一付费的部分就是 fal.ai 的生成。为了让这套流程可复用,我把学到的一切都打包进一份 CLAUDE.md,里面写清了关于 Godot MCP、Blender MCP 和 fal.ai MCP 的知识。把它丢进 Claude Code(或 Codex),它就会带着你走完整个配置。
# The gist of the first prompt (no manual Godot setup):
"Build me a Godot game. Find and install the best Godot MCP,
wire up Blender MCP and the fal.ai MCP, then tell me what to restart."
# Blender side: install the MCP add-on once, enable it, done.
# Everything after that happens through the agent.5. 黄金法则:从小处做起,在循环里迭代
十年的游戏开发经验教会了我一件事,而它在配上 agent 之后更加重要:先做小的,然后改进,再不停改进。别让它一次性把所有东西都做出来。那样只会堆出一大堆 bug,还把 token 烧在修错误的地方。我的第一句提示词,只是要一个简单可玩的原型,外加第一批贴图。

让这件事变得有趣的,是这样一个循环:它做出一块内容,把游戏跑给我看,我来玩,我按一个快捷键把语音反馈直接录进 Claude,它据此调整。趁它在忙的时候,我去回一封邮件。一块接一块,先是平台逻辑,然后是球的逻辑,再然后是奖励,我在往下走之前先验证每一块,这样就不会攒出一堆日后要我费劲收拾的烂摊子。

6. 用 PATINA 做贴图,在 Blender 里确认
表面贴图我在 fal.ai 上用了 PATINA,这是一个能做无缝平铺贴图、并返回整套贴图(albedo、法线、高度等等)的模型。Claude 对 Blender MCP 很在行:它生成这些贴图、把它们接到材质上,让我在任何东西进游戏之前先确认效果如何。

几乎每个表面的流程都一样:生成贴图,在 Blender 里确认材质,推进 Godot。平面版本看起来对了之后,我就让它把这些表面带进第三维,Tron 的电路纹路便开始在整片场地上发起光来。

7. 资产,以及 AI 需要人来搭把手的地方
我让它生成每一个资产,并全部收进一个 assets.blend 里,方便我审查、调参、按需重新导入。敌人是三种球:soft(对平台无害)、hard(会摧毁领地)和 evil(会追着你跑),外加一个地面地雷。我还让它为每个资产做发光贴图:拿 albedo,过一遍 Nano Banana,产出一张对应的发光贴图。这部分几乎毫无差错。

并不是全程都能撒手不管。当我让它一口气生成五个小道具、并且把它们拆成各自独立的网格时,它失败了。解决办法很简单:我让它只管生成,然后我自己在 Blender 里花大约一分钟把它们拆开,再把命名好的部件交回去。一个球形不太对的 softball 也一样。我在 Blender 里做了一个干净的球,让它改去给这个球贴图。知道什么时候该花 60 秒亲自介入,能省下一场漫长的来回拉扯。
8. 描边小技巧,然后是动画和 VFX
高亮描边正是一点知识胜过一句含糊提示词的地方。我没有说 “加个描边”,而是把那套经典做法给了它:
复制并放大物体
复制这个网格,把副本稍微放大一点,让它刚好套在原物体外面。
翻转法线
把副本的法线翻转过来,这样就只有它的背面会渲染。
加一个自发光材质
给这个翻转过的外壳一个发光材质。你就得到一条严丝合缝跟着形状走的干净描边,而且开销很低。Claude 一句提示词就搞定了。
机制定下来之后,是动画这一遍让它真正像个游戏了。拾取效果、撞击粒子、镜头运动、球划过领地时拖在身后的火焰、地面地雷上的电流效果:每一个都是一句大白话提示词。我后来又加了一个 chainsaw 敌人,它只沿一个轴移动、能切穿一切,为了平衡还移动得更慢。

9. 音效和音乐,几乎不用动手
音效设计最让我意外。它全都跑在 fal.ai 上:音效用 ElevenLabs 的 sound-effects,音乐用 Stable Audio 2.5 的 text-to-audio。我一段音乐都没碰过。不编辑,不挑挑拣拣。我只是给反馈(“这段合适,这段不合适”),让它重新生成。它算不上杰作,但很搭这个氛围。有几个效果花了一两次迭代才对味,仅此而已。
10. 它到底花了多少钱
我把每一笔都记了下来,因为我原以为光资产就得砸下至少 $50。我想错了。Claude 这边,我记下了用量前后的数字,大约是某个模型周额度的 8%,加上 Fable 5 的 12%,Claude 和 ChatGPT 都估算这大约值 $6。对将近七个小时的构建来说,这几乎等于不要钱。

| 项目 | 工具 | 花费 |
|---|---|---|
| 约 7 小时的 agent 构建(token) | Claude Code(Sonnet 5 + Fable 5) | 约 $6 |
| 3D、图像、贴图、音频 | fal.ai(PATINA、Nano Banana、ElevenLabs、Stable Audio) | $24.51 |
| 建追踪前的概念图 | fal.ai | 约 $10 |
| 总计 | 引擎 + Blender 免费 | 不到 $50 |
11. 已上线到网页,去玩玩看
第二天我做了些平衡调整(从 7 关加到了 10 关)并把它放到了网上。我原以为网页导出会很痛苦,毕竟浏览器渲染和原生渲染是两码事,但 Godot 的 export to web 基本上一次就成了。唯一真正的坎是环境贴图 / SSR 支持上的一个缺口,几句提示词就修好了。Claude 甚至配好了到站点的自动部署,还接上了排行榜。

本指南里的演示已经在 TOP 3D AI 上线。圈下一些领地、躲开那些球,试着通关 sector 10 吧。
打开 Exonix你实际得到的东西
这就是整个项目:一个怀旧的点子,用大约一天变成了一个已部署、可玩的 3D 游戏,一个 agent 干重活,我自己的品味把控最要紧的部分。像这样用来做游戏和资产的新工具层出不穷,每次一出现,它们就会直接进入 Arena ,好让你在下手之前先比一比。
Stefan Vaskevich