我在这个行业的出版领域已经工作了超过十年,一个大多数人都熟悉的公司。我不打算透露公司的名字,因为这是一项个人项目,我不希望它被认为是官方的。关于出版:你会精确地知道游戏的成本、商店页面的需求、软启动的阅读、坏的绿灯牌的味道。然而,你几乎不会了解游戏如何真正制作。多年来,我是那个能告诉你项目会失败的人,但自己也不能编写一行代码。我于7月6日开始了一项项目。Godot 4,一个舒适的农场模拟游戏,具有生存的一半。四周后,仓库里显示:

  • 205个提交,跨15个实际工作天(晚上和周末)
  • 390个GDScript文件,约46,000行
  • 118个测试文件,919个测试函数
  • 从一开始就有11种语言
  • 几乎所有的精灵都是通过确定性代码而不是手工绘制或通过扩散模型绘制的

我没有编写大部分代码。克劳德和科德克斯编写了它们,而我只是在监督。 我想写下这到底是什么感觉,因为我在网上看到的内容大多是“AI编写了我的整个游戏”或“AI无用”,而我的一个月并没有匹配上。# 什么有效,效果比我预期的还要好

白纸不再存在。

这是真正的解锁,大家都低估了它。我的障碍从来不是天赋或时间。它是不知道打开哪个文件。这个障碍已经消失了,永久地消除了外面等待的人群的一大类。

我无法设计的架构,但现在可以辩护。

该项目有一个不与节点、场景树或任何渲染代码打交道的确定性模拟层。所有游戏状态都存储在一个可序列化的树中。场景层只能通过固定的名称动词(tick、till、plant、water、harvest、loot、pickup)与模拟层通信。 我没有发明它。 我不会知道该怎么想要它。 但四周后,当我需要添加一个保存迁移和一个无头测试运行时,这种分离是唯一的原因,花费了一个小时而不是一周。

测试,实际上是超级能力。

919个测试函数不是我的纪律的迹象。它表明写测试现在几乎没有成本。测试实际上是阻止该项目崩溃的唯一东西,原因在下一节中。

乏味的宽度。

在11种语言中进行本地化、保存/加载版本控制、截图工具、资产许可证日志。独自一人,我会跳过所有这些,后来才支付。# 什么没有起作用,带着票据

代理报告。它不验证。

我收到了一个模型的平衡审查,声称游戏经济中有特定的漏洞:自信、详细、带有数字的。漏洞实际上不存在。如果我采取行动,我会添加一个修复漏洞的整个机制,但漏洞从来没有存在过。这不是一个虚构的导入路径。 这是基于fiction的设计决策。

“18个测试是破裂的。”

一个不同的代理告诉我这个。两次。两次都是自己的沙盒误读环境。没有一次是破裂的。 我在第一次的那一晚失去了大部分时间。

代理挂起,且静默。

我的最佳数据点:一个代理活了5个小时33分钟,总共0.2秒CPU时间和零文件改变。它从来没有说“我是卡住的”。它看起来忙碌了整个时间。现在我每20到30分钟运行一次脉冲脚本,打印PID、时间、CPU和改变的文件。我的经验法则:超过5分钟存活,CPU时间少于5秒,零文件改变,死了,杀死它。

任务长度决定了一切。

长、多部分的任务会卡住。短、单一目的的任务会回报。一个“绘制这些四个精灵”的分派在两分钟内返回了工作输出。一个“执行第12阶段”的分派在五个小时内返回了nothing。现在我会将工作范围缩小到像向一个无法问你澄清问题的承包商一样。

它无法告诉你游戏是否有趣。

零帮助,不是少量帮助。 一个代理会热情地为你构建一个完美的架构、完全测试、完全乏味的循环,并报告成功。 每个判断是否值得玩游戏的判断仍然由你来做,实际上这是大多数游戏开发的全部。

改变规则的规则

代理输出是一种声明,而不是证据。

直到测试证明它或我看到了它在屏幕上运行,才算完成。 来自外部代理的任何发现都会在我行动之前读取原始文件。如果发现是错误的,它会被记录为被拒绝,并且在可能的情况下会成为回归测试,以防止它再次出现。 这听起来在写下来时很明显。但是在凌晨1点时,一个自信的段落告诉你经济是破裂的时,它非常难以遵循。

第二次,我停止发出命令,开始写一个可测量的完成线:模拟层加场景层加测试合并,完整套件绿色,所有新字符串都存在于11种语言中,一个截图通过眼睛验证。 然后循环会自己运行到这个线条并停止。 发出命令是做工作。 写一个完成定义是管理。

不舒服的部分

我的出版背景使我在范围方面更糟糕,而不是更好。我已经看过一百个项目都超出了范围,我仍然在第二周就超出了范围,因为我在脑海中清晰地看到完成的东西,询问它的成本几乎为零。 便宜的执行不会解决坏的判断。 它只是让你更深入地陷入错误之前才发现。 并且说白了:这并不使我成为开发者。 它使我能够指挥和验证软件。 验证是整个工作,实际上是一个真正的工作。 我在四周内学习了比我在阅读里程碑报告多年的时间还要多的游戏如何真正制作。 我在做这件事,因为我想要玩一个不存在的特定游戏,并且第一次门户开放。 这就是整个商业计划。 如果你们中任何人每天都在运行代理,我想与你们分享一件事情:你的验证循环是什么? 是否接受来自代理的任何内容没有测试或截图的支持? 是否有人找到了比观察CPU时间更好的挂代理检测器? https://preview.redd.it/3lp4v95kcbhh1.png?width=1152&format=png&auto=webp&s=a27e99743f6e8e7f0337bb2dd7f21a131143c23e Oh,最后一个问题你知道我的周日实际上是什么样的。 这是一个街角。 不是建筑物、僵尸、保存系统。 是曲率的地方。 六个小时。 六。 我仍然无法告诉你这是否是工具问题、引擎问题,还是我对这个问题的能力不够。 而且在这个时候,我已经不想知道了。 请告诉我你的蠢问题,让我感觉不那么孤独。