Codex做游戏?这个路子我是这么走的

0 评论 68 浏览 0 收藏 16 分钟

从4399到Steam,游戏梦一直萦绕心头却因技术门槛搁浅——直到AI编程工具的出现彻底改变了局面。本文真实记录了一位产品经理如何借助Codex与Godot引擎的完美组合,突破代码恐惧,从零打造出探案解谜游戏原型的心路历程,揭秘AI如何成为永不疲倦的编程搭档,以及那些它永远无法替代的创作核心。

大概是三个月前的晚上,我又一次在 Steam 库里翻来翻去,心里那个念头再也压不住了:我也想做款游戏。

从小时候的4399到长大的steam,游戏贯穿我的青春始终,作为一个持续创作者,想做属于自己思想和基调的一款游戏这个想法时常在我的脑中弹出,每次都被同一个东西挡回去——我不会写代码。准确说,是没法像程序员那样,坐下来从头搭一个可运行的东西。产品经理那点懂技术的底子,在 Godot 编辑器面前跟没有一样。

去年我在使用cursor的时候就感觉这东西太猛了——我说人话,它就吐代码,而且真能跑。它是真的能听懂“我想让这个按钮在点击之后变灰然后弹出一个确认框”这种描述,而且它吐出来的代码,你不用去改语法,直接就能用。我脑子里突然闪了一下:如果我不把它当编程工具,而当成一个听得懂需求的全栈程序员,那游戏是不是也能这么干?

然后我就干了。我决定做探案解密类型的独游,作为新手初作,游戏类型上可以尽可能保守一些,引擎我选了 Godot,理由很现实:免费开源,不用交保护费,而且它的节点系统和场景结构非常直觉,跟产品经理拆功能模块的思维方式特别对路。后来发现,Codex 配 Godot 这个组合,比我想象的还要顺滑。

我的第一个可玩版本

我开局没有去学 Godot,甚至没看教程。就直接打开 codex,新建了一个项目,然后对着对话框打字:

“帮我搭一个旅馆二楼走廊场景,2.5D 视差,分背景中景前景三层,玩家用 WASD 控制角色移动。”

十秒钟,脚本出来了。复制进去,运行,屏幕上真的出现了一条有纵深的走廊,壁灯和门在中景,栏杆在前景,一个胶囊体小人能走来走去。说实话效果挺烂的,但还是有一瞬间的爽感。

这里我必须要说一句 Godot 的好话。它的 2.5D 视差实现起来天然就比某些引擎简单——几个节点分层,摄像头不动只移动层,思路清清楚楚。Codex 显然也懂这一点,它生成出来的代码直接就是 Godot 的那套做法:用 ParallaxBackground 套 ParallaxLayer,干净利落。如果换个引擎,光视差这块我可能就要折腾一天,但在 Godot 里,AI 十秒钟搞定。

当然,问题马上来了。这个小人走到走廊尽头会穿墙。我给它加了碰撞体,没用;改了刚体设置,还是穿。最后我把报错信息连同整个移动脚本直接扔回给 AI,问了一句:“为什么碰撞检测失效?”

它告诉我:你在用 transform.position 直接位移,这种方式会绕过物理引擎,要用 Rigidbody.MovePosition。还顺带解释了物理更新应该放在 FixedUpdate 里。我一边改一边想,这不就是 Code Review 吗?Codex 最让我服气的地方就在这里——它不只帮你写代码,它还能帮你查问题。你不需要知道该查哪行,只要把症状和报错一起丢过去,它就能给你定位,顺带把原理讲清楚。一个永远在线的、不嫌我烦的高级程序员。

第一个“游戏”就这么搭起来了。没有美术,走廊是灰蒙蒙的方块拼的,可互动的门就是两个长方形叠在一起。但它是可玩的。我让朋友试了一下,她控制小人在走廊上走了两圈,打开一扇门进了一个空房间,转头跟我说:“感觉还行,当然,除了丑”

就这一句话,我觉得这事儿能继续。

我把 GDD 当需求文档写,AI 还真吃这套

产品经理的职业病在这儿彻底犯了。

稍微搭了点东西之后,我没有急着让 AI 继续生成功能,而是停下来,花了一个下午在 Notion 上写了一份游戏设计文档。就是平时写 PRD 那个路子:核心循环是什么,一共有几幕,每幕有哪些场景,场景里有哪些可交互的物体,每个物体有哪些状态变化——写清楚了,AI 才知道怎么给你写 Tween 动画。

写完以后,我就把这份文档当成需求池来用。每次跟 AI 提需求,都从文档里摘一段上下文喂给它。Codex 在这里体现出一个特别产品经理友好的优势:它的上下文窗口足够大,记忆力好。你把一大段背景设定贴进去,它真的会记住,后面生成代码的时候会自动对齐你说的那些约束,不会前面刚说了“这个抽屉需要钥匙”,后面又给你生成一个一拉就开的脚本。

AI 生成出来的代码质量,跟需求描述的清晰度完全成正比。这一点跟我们带团队一毛一样——你自己没想清楚的东西,执行的人(哪怕是 AI)做出来一定是一坨。

而且我发现一个特别顺手的技巧:用用户故事的格式描述交互逻辑。比如:“作为一名玩家,我希望当我点击抽屉时,如果身上有钥匙则播放开锁动画并打开,否则提示‘抽屉上了锁’。” AI 对这套表达方式的理解好得离谱,生成的代码状态判断、UI 弹窗、动画协程全都给你整整齐齐码好。

最爽的瞬间:让 AI 帮我干那些打死也学不会的活

我虽然是美术生出身,早年也是做的设计,但是对于游戏资产懂得真的很少。

以前这是硬门槛。你有再好的想法,角色长什么样?场景什么氛围?这些搞不定,游戏永远停在方块阶段。

但现在不一样了。我游戏的美术风格是表现主义厚涂加哥特木偶美学,角色的形象都是特殊材质。直接让 AI 出图肯定翻车,第一次给的 prompt 出来光滑得像个手游。后来我想了个招:先让 AI 出个大概造型,然后我自己在 Photoshop 里把皮肤那块用材质贴图改了,调了半天反光,再把这张图作为“种子图”喂回去,让 AI 记住这个感觉去生成其他姿态。

虽然最后的小人还有点僵硬,但整体效果已完全过得去,我盯着屏幕看了好久。那种感觉怎么形容呢,就像一个从来不会画画的人,突然看到自己脑子里的人活了。

作为一个什么都会一点、什么都不精的人,这种跨领域翻译能力简直救命。

真实的低谷

上面说的都很爽,但不代表整个过程是爽文。

大概在第四周左右,我开始搭证物系统和侦探日志。逻辑本身不复杂——收集证物,存入面板,日志里按角色分页显示线索,审讯时出示证物触发不同对话。AI 帮我把框架搭得挺干净,用 Godot 的自定义 Resource 存证物数据,信号系统做事件通知。

这里我真心想夸一句 Godot 的信号机制。它不像某些引擎里事件系统是后加的,用起来总有一种“穿靴子”的感觉。Godot 的信号是节点自带的,你在编辑器里就能看到每个节点能发什么信号,Codex 也很懂这个,生成的代码直接用 `signal` 关键字定义自定义信号,然后 `emit`,连接方用 `connect`,语法简洁得令人发指。后来重构的时候,这套信号系统救了我的命。

但当我开始配数据的时候,问题来了。哪条证物关联哪个角色、在哪个推理阶段、解锁哪条对话、骰子判定难度是多少——这些全是一张巨大的 JSON 表。我让 AI 帮我写了读取和判定的脚本,但表里的内容只能我自己填。填到一半我发现,早期 AI 帮我生成的那些脚本,因为当时赶进度没约束架构,变量命名乱七八糟,一个光照状态能被三个脚本分别修改。配上这张大表以后,整个系统耦合得跟意大利面一样。

那一刻我真的想删项目。这就是典型的产品初期为了追上线时间疯狂堆功能,最后攒出一堆技术债。只不过这次,债主是我自己,欠债方式是我纵容 AI 随便写。

后来我狠心停工一天,不写任何新功能,把所有脚本拿出来重新梳理,然后对 AI 下了一个新指令:“把现在的代码重构,引入事件总线模式,所有跨物体的状态变化必须通过信号通知,不再允许直接引用。” 它给我重构了一版,虽然过程中改崩了两次(那天晚上我的心情跟坐过山车一样),但最终稳下来了。而且因为 Godot 的节点本身就是树形结构,信号在节点间传递的路径非常清晰,AI 重构出来的事件总线代码量比我预想的少得多。这是引擎的架构本身在帮我们兜底。

这个教训我到现在都记得:**AI 能让你跑得飞快,但它不会替你考虑三个月后的事。** 你得从一开始就给它架构约束,就像你带团队时得定好规范一样。否则后面的坑,一个都不会少。那张 JSON 表我现在还在填,但至少填表的时候不用再担心改一个值崩三个地方了。

它不会懂得什么叫手感

还有一个 AI 解决不了的东西,叫“感觉”。

我让 AI 帮我做鼠标悬停物品时的高亮光圈。它很快给了我一版 Shader,但光圈边缘有一圈白边,在 Forward+ 渲染器下预乘 Alpha 有问题。它改了三次才修好。修好以后光圈的呼吸节奏我又调了很久——太快显得廉价,太慢显得迟钝。最后定下来的节奏是 0.6 秒渐入,0.2 秒微亮保持,0.4 秒渐出。AI 写对了代码,但这个节奏是我一遍一遍试出来的。

还有那个丝线提拉的数值。AI 最初给的脚本是让丝线在说话时做持续 sin 抖动,看起来像角色在蹦迪。我跟它说不要抖动,要一种“被轻轻提起来”的感觉。它不理解什么叫“轻轻提起来”。最后我只好把它翻译成它能懂的语言:Tween,向上位移 3 像素,0.3 秒,EaseInOut。它终于写对了。但定义“3 像素才有提线木偶感”的,是我的眼睛。

Codex 能把你对细节的想象翻译成精确的技术参数——前提是你自己先找到那个参数。Godot 能让你在编辑器里实时看到改参数的效果——前提是你知道该改哪个数。这两个工具一个负责翻译,一个负责呈现,但它们都替代不了你的审美判断。

80 分以下,AI 能推着你走。80 分往上,得你自己来。那些你觉得“对”的数值、节奏、材质反光度、运动的力度——这些都在你玩了二十年游戏之后身体里攒下来的“体感”里。

这也是目前大部分小白尝试vibe coding的感受,被AI带入一个全新领域,发现自己需要学习的还有很多

所以

这两个月我花了大概两百个小时,做出了一个能跑的原型。能活动的场景地图,有角色能在场景中互动,有一张我亲手在填的 JSON 配置表。朋友试玩之后说“审讯那段有点意思”,我正在一条一条改。

如果没有 AI,这个东西在第一周就会死掉——死于我完全不会写 Shader,死于我画不出任何像样的角色,死于我只能在下班后的两小时里缓慢绝望。如果没有 Godot,我可能光折腾引擎和框架选型就要花掉一半热情。

AI 帮我把做游戏这个念头,从一种遥远的、属于别人的可能性,变成了我晚上打开电脑就能往前推一点的日常。而 Godot 让我的这些笨拙的想法有一个干净、免费、不会被突然收回的容身之处。它俩加在一起,给我的感觉就是:门槛还在,但已经是一道你能迈过去的坎。

但codex不是主角,你才是。定义这个世界是什么样子、里面住着谁、他们的眼睛是什么材质、玩家触碰他们时听见什么声音的,是你。这件事从来没有被替代过,以后大概也不会。

如果你心里也藏着一个想法——不一定是游戏,可能是某个 app,某个工具,某个很早就想做的产品——但一直因为我不会而搁着。我真心建议你现在就去试试。

本文由 @安全沼 原创发布于人人都是产品经理。未经许可,禁止转载。

题图来自 Unsplash,基于CC0协议

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 目前还没评论,等你发挥!