快速说明:英语不是我的母语,所以我用AI润色了文字。以下的想法、例子和经历都是我的。

昨天我发了一篇关于AI游戏开发的帖子,遇到了很多反对意见,尤其是围绕一个问题:

如果AI在写代码,那我到底在做什么?

问得好。

我的第一款游戏iaBrick是用传统方式开发的。我从零开始学Swift,亲手一行一行地写代码。花了将近一年时间。

我很庆幸自己这么做了。

但那一年的很多时候,我都在和那些我并不真正关心的事情较劲:网络错误、文件处理、UI状态、后端通信、登录逻辑、随机崩溃、框架的古怪问题等等。

后来我开始用AI来做更多实现工作,构建iaReveal。

然后我有了一个有点不安的发现:

对于很多标准的基础设施代码,AI就是比我写得好。

那我为什么还要坚持自己写一个更差的版本呢?

我有时把AI看作编程中的又一个抽象层。

人们从机器码过渡到汇编,然后是C、C++、框架、引擎、可视化工具等等。没有人会说使用Unity就意味着你“没有做游戏”,因为你不是从头编写渲染器的。

AI感觉就是下一步。显然,它不是真正意义上的编程语言,但越来越常见的是,我描述系统必须做什么,而不是手动编写它如何做的每一个步骤。

但我也认为,这就是“一个提示=一个游戏”这个想法容易产生误导的地方。

如果你想基于已有的游戏结构做一个东西——比如平台跳跃、射击、三消、生存、经典解谜等等——那么是的,我完全能想象AI越来越接近“一个提示即可开发”。

这些机制已经存在。

到处都是例子。

AI主要需要复现一个已知的结构,然后改变美术、故事、主题、角色或呈现方式。

但如果机制本身是新的,那这一套很快就失效了。

你不能直接说:

“给我做一个全新的、以前没人做过的解谜游戏。”

AI到底该构建什么?

没有现成的机制可以复制。

没有已建立的状态模型。

没有已知的可解性规则。

没有经过验证的生成器。

没有标准的优化策略。

仍然需要有人把这些东西搞清楚。

而这正是我大部分实际工作转移到的方向。

我现在花在输入语法上的时间少多了,但花在思考以下问题上的时间多得多:

· 这个机制到底是什么?
· 什么让一个操作变得有趣而不是随意?
· 哪些状态绝对不能出现?
· 程序生成的关卡是否总是可解的?
· “技术上可解”实际上可玩吗?
· 一个关卡可能可解,但策略上对普通玩家来说是死局吗?
· 如何在不断裂规则的情况下生成新状态?
· 初始化时我能承受多少搜索量?
· 如何让生成够快,让玩家不会以为应用卡住了?
· 当两个机制在我没预料到的边缘情况下相互作用时会发生什么?

一旦我能清晰回答这些问题,AI往往就能很好地把这些答案变成代码。

但AI无法省去我回答这些问题的过程。

这就是我在意的区别。

“制作一款已知游戏的另一个版本”可能越来越接近一个提示的问题。

“发明一个新的游戏机制,并让它足够健壮用于商业游戏”则是一个完全不同的问题。

老实说,第二个问题才是我享受的部分。

有些人热爱写代码本身。有些人热爱调试。这完全合理。

我的乐趣不一样。

我喜欢把一个只存在于我脑海里的游戏机制,找出为什么第一版不行,修复逻辑,最终看到别人玩它。

我也有比耐心多得多(如果要手动花6-12个月编码每个游戏)的益智游戏想法。

AI让我能够尝试更多想法。

而且是的,我也希望这些游戏最终能赚钱。

我不觉得这有什么不好意思的。

如果玩家不喜欢这个游戏,AI不会神奇地让他们掏钱。

你可以用快十倍的效率做十款烂游戏,结果还是十款烂游戏。

所以我不再认为“谁敲的代码”是最有趣的问题。

对我来说,更有趣的问题是:

谁想出了这个游戏到底应该是什么,以及如何让这个想法实现?

那才是我仍然想拥有的部分。

附注:如果你想知道为什么我还没有正式发布iaBrick的iOS版本,反而先正式发布了iaReveal的iOS版本,这很大部分就是原因。后来AI帮我修复了iaBrick大部分崩溃问题,现在我几乎看不到崩溃了——但调试那段代码库真的让我有点心理阴影。我仍然担心,自己以前那堆意大利面条式的代码里,某处还潜伏着一个致命bug,随时会毁掉玩家的体验。所以我还在纠结:是保留原来那段代码库,还是干脆让AI帮我从头干净地重写整个游戏。讽刺的是,我让AI帮忙构建并放在itch.io上的iaBrick HTML演示版本,到目前为止一直运行没有任何致命bug——实际上,我连小bug都没碰到过。