Ken Chen 的个人主页 - Microsoft Internet Explorer
善者同心
共筑美好网络
文章
KEN CHEN来自工作台 · 个人项目

· 阅读约 9 分钟 · 文章

我是怎样用 AI 做出自己的游戏的:人间回响

我从来没做过游戏。这一次,我只是先开口聊了起来。

人间回响标题画面:一家人走在乡间小路上,路旁从春天走到秋冬

我从没在游戏行业工作过。

我不会画画,不会作曲,几周之前也从没做出过任何能称得上“游戏”的东西。但在 2026 年 10 月,我把一款游戏放上了网:人间回响。这是一款卡牌人生模拟游戏,你会过完一生,再接着过下一生,跨越一个家族和一百年。

它的几乎每一部分,都是用 AI 做出来的。

这篇不是教程,而是一份真实记录:包括没做成的部分、用光的额度,以及如果重来我会怎么改。

01|让我想动手的两件事

第一件是生图。

那段时间我一直在玩 ChatGPT 的 Sunburst 生图模型,效果真的让我吃了一惊。它不只是“对 AI 来说算好看”。光线、构图、房间里的小细节都很到位,好到让我开始把它当成一个美术部门,而不是一个玩具。

第二件是身边的人。

我的信息流里全是用 Claude 做游戏的人:小型网页游戏、解谜游戏、Roguelike……做的人大多并不是职业游戏开发者。做完 KenDo、注册了 ZyMel 之后,我已经亲眼见过一个人借助 AI 能把真正的软件做到什么程度。

两件事放在一起,一个念头就再也压不下去了:既然 AI 能写代码,AI 也能画画,那我是不是也能做个游戏?

02|先聊天,再写代码

我没有先打开编辑器,而是先开了一个和 Claude 的对话。

这个想法说起来简单,真要讲清楚却很难:做一个人生的模拟,让玩家体验那些自己这辈子不会经历的人生。出生在另一个国家、另一个年代、另一个家庭;长大、工作、恋爱、变老,最后给下一代留下点什么。

于是我一段一段地描述。一年应该是什么感觉?玩家要做哪些选择?死了之后会怎样?孩子要不要继承些什么?每回答一个问题,就会冒出下一个问题,Claude 也会不断反问我。

聊了几轮之后,模糊的想法变成了两份文档:

  • 一份完整的 PRD:核心循环、系统、事件、成长、结局。
  • 一份美术需求:游戏需要的每一张插画,包括主题、氛围和风格。

然后,我把这两份文档一起扔给了 Claude Code。

回头看,这是整个项目里最有价值的一步。文档越清楚,后面开发就越不容易跑偏。

03|一个意外的发现:effort 并不是越高越好

Claude Code 可以设置 effort 等级,也就是 Claude 在一个请求上投入多少功夫。我的第一反应很直接:开到最高。谁会想让它少想一点呢?

但在 brainstorming 这件事上,这个直觉是错的。

effort 高的时候,Claude 容易自己往前冲:用自己的假设去填空,我还没把问题问完,它就交回一份看起来很完整的大答案。换成 low effort 之后,对话反而明显变好了。它问得更多,假设得更少,来回也更短、更快。在想清楚“我到底要什么”这个阶段,这正是我需要的。

Anthropic 那篇关于 在 Claude Code 里选择模型和 effort 等级 的文章里,把 effort 描述为 Claude 整体上投入多少工作量,并提到 effort 较低时,它更愿意向你要更多上下文,而不是花 token 自己去琢磨。在 brainstorming 阶段,这不是缺点,恰恰是你想要的。

我现在的习惯是:探索想法用 low,有了清楚的需求再调高去开发。

04|原型跑通了,画面却不行

拿着 PRD 和美术需求,我用 Opus 5.5 生成了第一个原型。速度快得出乎意料:手牌、按年推进的回合、人生事件、离世画面,还有你走之后继续延续的家族。

玩法有了,画面却不行。

第一批插画柔和、温暖,但很“通用绘本风”。不管角色出生在哪里,人物看起来都隐约像欧洲人;每个场景都蒙着同一层金色雾气;没有一张图让人感觉是某个具体的地方、某个具体的年代。对一款讲“体验不同人生”的游戏来说,这是个大问题。

05|两个 Codex CLI,轮流用 Sunburst 生图

于是我换了流程。

我不再让开发 agent 直接出图,而是在 Claude 里调用两个 Codex CLI 轮流生图,并在提示词里明确指定用 Sunburst 模型。Claude 负责管理清单、根据美术需求写提示词、检查生成结果,再把下一批任务派给空闲的那个 Codex。

慢慢地,这变成了一条可以自己运转的小生产线:

  • 每条提示词都钉死模型。 每条提示词里都写明:内置图像工具就是 GPT-Image-2.5 Sunburst,直接调用,不要改用脚本或 API。少了这一句,agent 可能会悄悄换一种“别的办法”出图,风格就跑偏了。
  • 一份清单,两个工人。 两个 Codex 从同一份清单里领下一张图,不会重复劳动。平均下来,一张图要两分多钟。
  • 额度一定会用完。 两个账号都经常碰到“out of credits”或 429 限额。脚本会读出额度重置时间,等到点再自己继续;失败的图会自动重试。

所以我可以睡前开跑,第二天醒来就多了几百张新图。

效果立竿见影。左边是原型,右边是 Sunburst 版本。

家庭聚餐:原型的柔和绘本风插画,对比 Sunburst 生成的写实中国家庭聚餐

家庭聚餐。新版本终于像是真实的一家人坐在真实的公寓里。

婚礼:通用绘本风的新人,对比 Sunburst 生成的东亚庭院婚礼

婚礼的前后对比。有了地区版本,同一个事件会随着你的出生地而不同。

童年街道:粉彩色调的通用小村,对比 Sunburst 生成的中国胡同街景,远处是现代高楼

童年的街道。右边这张属于一个具体的国家和一个具体的年代。

新生儿:油画感的原型图,对比 Sunburst 生成的柔和写实的熟睡婴儿

每一段人生的第一张卡。

画面质量突飞猛进。我想做的范围也跟着膨胀了,而下一个问题就出在这里。

06|300 多个国家是幻想,MVP 必须收窄

我最初的计划很有野心:让玩家可以出生在世界上每一个国家和地区,最初的清单上有 300 多个。

然后我算了一笔账。

每个国家都要有几个历史年代、每个人生阶段的背景图:婴儿、童年、少年、青年、成年、老年。再加上分地区版本的行动卡和人生事件,图片数量很快就到了几千张,第一版完整清单一共 5,068 张。实际用下来,Codex 的额度一天大概只能生成 150 张左右。按这个速度,整个世界要做好几个月,玩家才能玩上。

所以我把范围收回到 MVP:只做几个重要国家,但要做扎实。中国、印度、巴基斯坦和尼日利亚各有一整套背景图(5 个年代 × 6 个人生阶段),再加上东亚、南亚和非洲三个地区版本的卡牌和事件插图。整份图片清单从 5,068 张缩到了 1,636 张,而光是第一个能玩的版本,就需要 600 多张。

这是每个产品迟早都会教你的一课:在少数地方做深,好过在所有地方薄薄铺一层。 更多国家以后可以一批一批地加。

07|剧情:尽量还原真实历史

我不希望这些人生只是随机的幻想。如果你出生在某个国家、某个年代,你的人生走向应该反映那个时代、那个地方的人真实可能遇到的情况。

于是我让 Opus 去调研并抓取真实的公开数据:联合国《世界人口展望 2024》、世界银行世界发展指标(WDI)和《世界幸福报告》。这些数据决定了预期寿命、儿童死亡率、生育率、收入、上大学的机会、医疗自付比例、治安和幸福感,进而影响你能活多久、一路上会遇到什么。选择“随缘降生”时,游戏甚至会按各国真实的年出生人数来抽签决定你出生在哪里。

在这之上,还有改变你身边世界的历史事件:1969 年登月、2008 年金融海啸、2020 年大流行,以及给更晚出生的人生准备的几种想象中的未来。

目标不是做成一本教科书,而是让出生在一个地方的人生,和出生在另一个地方的人生明显不同,因为现实就是如此。

08|让 AI 替我过几千段人生

当 AI 写出几百个事件时,最难发现的 bug 不是崩溃,而是自相矛盾:每个事件单独看都没问题,放进某一段具体的人生里就不对了。

于是我让 Claude 写了两类自动化测试。

场景审计。 一个脚本模拟了 2,400 段人生,把每个事件的正文、选项和结果,和当时角色的真实处境一一对照。它找出了很多人工测试根本碰不到几次的问题:

  • 玩家会向已经去世的恋人求婚,光是一个求婚事件就出现了 381 次。
  • 孩子可能在去世的同一年生下宝宝;孙辈可能在自己的出生事件之前就去世了。
  • 妈妈已经不在了,却出现“你妈妈哭了”;没有孙辈,却写着“孙辈的吵闹声”。
  • 新认识的人,经常和已故的父母或兄弟姐妹同名同姓。

完整的浏览器试玩。 另一个脚本在浏览器里把真实游戏从头玩到尾:不同国家、不同年代、不同游戏速度、手机屏幕尺寸,最多连续三代。它找出了只有跨越很多段人生才会暴露的平衡问题:超过一半的尼日利亚和巴基斯坦人生移民去了中国或印度;68% 的巴基斯坦人生经历了战争,调整之后降到了约 37%。

我的体会是:AI 大规模地生产内容,就需要大规模的自动检查。 靠人工读几个事件,这些问题一个都发现不了。

09|最后一块拼图:音乐

到这一步,代码、画面、剧情都有了,游戏却还是一片安静。

ChatGPT 和 Claude 都没有做音乐的功能。于是我试了 Google 的 Lyria,效果出乎意料地好。描述几句氛围和人生阶段,生成的曲子就很贴切:婴儿时期温柔一点,少年时期明亮一点,老年时期安静一点,再加一首标题画面的主题曲。

音乐的作用比我想象的大得多。同一张卡、同一个事件,配上旋律之后,感觉完全不一样。现在游戏里有 22 首 Lyria 曲子,每首都裁掉了静音、统一了响度,并做成无缝循环,人生阶段之间的切换不会突兀。

10|先做中文,再加英文,然后交给第一批玩家

游戏一开始只做了中文。描述需求时我脑子里想的就是中文,这样第一版也更聚焦。等核心玩法稳定下来,我才加上了英文版。第一次打开时,游戏会跟随浏览器的语言;想换的话,在主菜单打开**「设置」,选择「跟随系统」「中文」或「English」**即可,选择会保存在浏览器里。

接下来是真正的考验:我把游戏发给几个朋友,什么都不解释,让他们直接玩。

反馈比我预想的还要好。他们对游戏的完成度和画面都非常满意。对第一版来说,这是最好的回应,也是继续做下去的理由。

写在最后|一个人,一整个创作团队

夕阳下的海面上升起一盏盏天灯:人间回响的人生终章画面

回头看,我的角色与其说是“程序员”,不如说是制作人:

  • Claude 是策划和主程,把对话变成 PRD,再把 PRD 变成游戏。
  • Codex + Sunburst 是美术部门。
  • Opus 是研究员,找来让每段人生保持真实的数据。
  • 自动化试玩是测试团队。
  • Google 的 Lyria 是作曲。

我的工作是决定这个游戏应该是什么样子,发现哪里不对,然后说“不”:对 300 多个国家说不,对好看但千篇一律的画面说不,对不服务于核心想法的功能说不。

它还没有做完。还有更多国家要加,更多故事要写,还有一长串想打磨的地方。但几周前,它还只是聊天窗口里的一个念头;现在,它已经是一款任何人都能玩的游戏。

所以,最后想邀请你:去玩一玩吧。 出生在一个你从没去过的地方,活在一个你只在书里读到过的年代;做一些和现实里不一样的选择,看看它们会把你带向哪里,以及你离开之后,孩子会继承些什么。

▶ 开始玩人间回响:免费,打开浏览器就能玩,支持中文和英文(随时可以在主菜单的「设置」里切换)。你也可以在本站的桌面上,或者开始菜单的“程序”里找到它。

如果你过完了一两段人生,很想听听哪一段让你印象最深。


写于 2026 年 10 月。文中的对比图均为游戏里的真实素材:左边是原型版本,右边是 Sunburst 版本。图片数量和每日生成上限是我当时的个人经验和额度情况。

参考:Choosing a Claude model and effort level in Claude Code · 联合国《世界人口展望 2024》 · 世界银行世界发展指标 · 《世界幸福报告》 · Google Lyria