自我检讨书
这是一篇笔者(石炭碳我)关于新开的文字游戏坑的检讨。虽然有个很沉重的标题,但其实除了笔者本人外,没有任何人被这个项目伤害到,可以放心阅读。
笔者最近对手上玩的东西都兴致缺缺,为了找回写代码的乐趣,也为了放松一下,我想,要不开个纯文本小游戏的坑玩吧!为什么选这样的题材呢?因为纯文本不用画图,而且 LLM 很擅长设计这种游戏的架构,随便向神灯精灵许个愿,就会有一个最小可玩版本了。多么解放大脑、多么有度假感啊!
——然而,我的贪心把这美好的体验毁掉了。
决定开始时,笔者对着空白一片的 Markdown 编辑器,开始思考自己想要什么。笔者特别喜欢玩 Elona 和 Elin,但是又对一些细节感到遗憾(详见这篇贴文),受此启发,想做这样的一款游戏:
一个纯文本、不依赖 LLM 而是通过机制、数据、随机数就可以制造出节目效果的纯前端 TS 技术栈 RPG 游戏。心里的参考类似于 Elona/Elin、矮人要塞、边缘世界。玩家操控一个主角,但可以招募 NPC。玩法上战斗为主、生活为辅,核心是生存经营。需要有沉浸感,营造一种单人 MMORPG 的感觉。有一个完整的架空西幻世界观,并根据游戏玩法微调。架构上打算选 ECS 而不是 OOP。
接下来,为了快速获得反馈,给大脑制造多巴胺,我理应先搞个 MVP(最小可行产品)出来。而为了做出 MVP,我至少得有个基础的架构设计。虽然我并没有真正玩过矮人要塞,但我听说过它每个角色挂着的数值受周边环境影响时制造出的种种神奇效果,我也想要一个这样的机制。
跟 AI 商量了一下,AI 提供给了笔者一套事件传播机制。例如:
美貌高的 NPC 进入城市
↓
CrimeSystem 本周期统计高价值目标增加
↓
KidnappingOpportunity +8
↓
当地犯罪团伙选择行动时权重发生变化
↓
某团伙决定绑架
↓
产生 KidnapAttempt
↓
世界状态发生变化
不过,光是纸上谈兵可不行,必须落实到架构设计上。是时候拿出妙妙小 ECS 了!
不同于传统的面向对象编程(OOP),ECS 是一种对内存更友好、耦合度更低的设计范式。它包含三个核心要素:Entity (实体)、Component (组件)、System (系统)。其中,Entity 没有任何实际数据,只是一个唯一的 ID;Component 是纯数据结构,定义了实体包含哪些属性(可以把 Component 理解为 tag);而 System 则是 ECS 里唯一的动词,它是处理逻辑的函数,负责抓取挂载了对应 Component 的 Entity 并做出响应。
比如:
Entity 1372
Human
Sex { value: "female" }
Appearance { attractiveness: 87 }
Age { value: 22 }
Position { region: 15 }
Reputation { fame: 34 }
Wealth { value: 1200 }
我的游戏里可以有时间系统、旅行系统、经济系统等,各自掌管不同的业务逻辑。
总的来说,ECS 是一种面向数据的设计理念。它非常适合游戏开发,提供了极高的解耦度与扩展性,同时连续的内存布局也对 CPU 缓存更友好。System 不需要关注完整的 Entity 长什么样,只需要对目标 Component 对症下药。
当然,说了这么多,游戏最底层的随机性还是来自于经典 DND 的掷骰子(AKA 随机数)。那些乱七八糟的数值也不过是提供响应加成。DND,真是万物起源啊……
如果你的记性比较好,读到这里可能已经发现了两个端倪:
- 不是说好要放空大脑吗,怎么搞得这么认真?
- 这篇文章不是检讨书来着吗??
其实这两个问题殊途同归——笔者对这个游戏有些过于认真了!本来想的是做做白日梦想个好玩的点子,然后不负责任地用一句话 prompt 让 AI Agent 给我写出来。可是呢,莫名其妙就思考了超级多细节,甚至还认真规划了系统未来如何扩展。
结果就是……本项目到目前为止连一个字母的代码都还没写,更别说 MVP 了!
我跟 Agent 讨论 MVP 应该是什么样的。Agent 给了我一版「一个人被困在森林里」的方案。我觉得不好,没有展现出跨系统的联动。Agent 接着问了我十几个问题,试图搞清楚我的真实愿景,并提供了新的 MVP 方案。但我依然觉得手动打标签的地方太多,看不到后续扩展的希望。
眼看指望不上均值回归的 Agent 了,我决定自己想。可此时已是三更半夜,我的脑力消耗殆尽,却仍然执着于在一个困难且工作目录一片空白的任务上发呆。这能想出来就有鬼了!明明想不出来又不愿意放弃,大脑甚至烧出了一种飘渺感,完全是自我折磨。
……
一觉睡醒,笔者意识到昨晚的举动给自身造成了严重困扰:不仅搞得自己心力交瘁,客观上也几乎没有任何产出。为此,笔者必须进行自我反省,并撰写这份检讨书。
要说自己的错误,最大的莫过于贪心,具体可以解释为两个方面。
一是完美主义。
总想在开工前就搭建一个完美的框架,想在 MVP 阶段就为未来的一切铺好路。但游戏开发绝不可能一帆风顺,如果不接受边推进度边重构,实际上很可能一行代码都动不了。
二是抛却了初心。
问题或许出在我既想要A又想要B,但又不止于此。对一个项目有野心、想堆料并不是坏事,很多堆料游戏都非常耐玩;关键是我被自己的这一出那一出给绕晕了,迷失了初心。我的工作记忆比较狭窄,这导致我很容易偏离最初的轨道——我本意只是想做一个放松自己的游戏,注意力却全被复杂的事件传播系统勾走,忘了这个项目的定位。
如果更深层地反思原因,其实和LLM脱不了干系,不如说笔者在自己身上看到了现在的典型现象。
在 AI Agent 时代,一切的节奏都太快了。用户只要给出一句话,Agent 就能生成一个完整可运行的程序(好不好用另说)。而各家平台的 token 套餐基本都有 5 小时限额或周限额,如果限额没用完,就像吃自助餐吃太少一样觉得亏了。人为了回本,就会强迫自己在限额窗口内想方设法给Agent布置一大堆任务,心态不可避免地变得浮躁。
为了避免token 用不完的焦虑,笔者认为必须从人本位重新思考。作为 Agent 们的总指挥,程序员桑自己的头脑和精力才是最宝贵的资源。如果头脑得不到修养,给 Agent 传达昏庸指令,浪费的不仅是 token,还有程序员桑自身的时间。美国加利福尼亚州的最低时薪是$16.90,假设程序员桑放弃了编程去打工,$20的套餐打两个小时就赚回来了……
文章的最后一个章节,笔者决定拷打自己…帮自己理清一下思路!
你的目的是什么?
放松一下自己,做个高多巴胺回报的项目。
你想要的结果是什么?
我想要一个好玩的游戏,它有很多可玩的系统,比如战斗、种田、经商。最终,达到很有沉浸感、单人MMORPG的目的。
你的目的和结果有冲突吗?
长期开发下并不冲突。但是,如果纯粹以娱乐为目的,很难长期坚持下去。因此这个目标是理想化的,几乎不可能实现。
在顺应目的的前提下,合理的过程应该是怎样的?
快速版本迭代。第一个版本可以是一个人能够到处走,进行简单的互动。第二个版本加捏人之类的。先完善基础,再添加新东西。不会需要长期开发某个功能,不会要等很久才能得到反馈。
在过程中,恰当的思考方式是什么?
「Agent 酱,我想要这个功能,帮我加。等我哪天有兴致了再考虑重构。」
这不是彻底堕落了吗啊喂!
不过既然是放松项目,不用大脑过度负荷才是对的。难道对所有调查问卷都要像填高考志愿一样认真吗?!
评论 (0)
▾点击看板娘登录后即可评论。
加载中...