这或许有点反励志,但不管怎样,它奏效了。
在经历了四十年的未完成项目之后,克里斯·雷诺兹在选择要建造什么之前定下了一条规则:“这个,我一定要交付。”
这是 Fix Stories这是我们的第一人称系列节目,开发者们将分享制作游戏背后的真实经验。
在这个故事中, Chris Reynolds独立开发者 Ominomicon解释了为什么完成这款游戏意味着放弃他最喜欢的开发部分。
想看更多类似的开发者故事吗?
从这里获取更多第一人称开发者故事、访谈、评测、独立游戏报道和游戏专题文章。 Fix Gaming Channel.
订阅博客
随时关注最新访谈、预览和独立游戏新闻。
我从事软件开发四十年了。这些年来,我积累了一大堆未完成的项目。它们没有一个是因为危机而夭折,而是被遗弃、被忽视、被遗忘。
随着我即将从繁重的企业工作中退休,我查看了那个目录,并意识到这个问题值得在下一个项目也陷入其中之前解决。所以我制定了一条规则,而且是在选择要开发什么之前就制定的:“这个,我一定要发布。”
两件事会毁了我的项目
我身上有两个毛病,它们联手扼杀项目。当然,这里只涉及其中两个。
首先,我参与这个项目的目的从来都不是为了开发它,而是为了学习新东西。一门新的语言,一个新的数据库,一个新的游戏引擎。而学习的过程也结束了,远在项目结束之前就结束了。
第二点是,我热爱写代码。毫不夸张地说,我在交第一个女朋友之前就学会了编程。而且,即使学习的热情消退了,我也不会停止——我会钻研细节:这个函数可以快十倍,这行代码真的有必要存在吗,这个界面(除了我之外没人会看到)的形状是否合适。这感觉就像是在进步。我可以一直这样下去,却什么也发布不出来。
这两种情况看起来都不像是在放弃。四十年的经验也解决不了问题。如果说有什么作用的话,那就是让情况更糟。现在,我几乎一眼就能看穿大多数事情的本质——一切都只是表面功夫——而且懂得越多,学到的东西就越少。
所以我把它送人了。
这条规定的第一个后果立刻显现出来,我不喜欢这样。
如果我消失的地方是代码,那么我就不可能是编写代码的人。
所以我把它送人了。 Claude 全部都是我写的。
编程是我的挚爱。把它交给别人,意味着我只能眼睁睁地看着自己最擅长的事情被别人接手,而我知道,这就是关键所在。
这并非那种随随便便写一段代码然后把所有反馈都发出去的“感觉编码”。这也不是代码审查。我根本没看代码,而且这是故意的。看代码就像让一个正在戒酒的人喝一杯酒一样。
我采取的策略是,把对细节的执着转移到不会阻碍项目进展的地方。我沉迷于游戏,主导技术决策,但并不参与具体实现。我反复与…… Claude 我们俩就这样无休止地绕着某个谁也看不清的东西打转。
目标是 App Store
目标是 App Store不是“制作游戏”,而是把游戏上架到商店,标明价格、发布商品信息并留下客服地址。
我知道这样做有双重意义,所以我选择了它。这是我的目标,也是我唯一从未做过的部分——我知道。 App Review 可能很残酷,而且对此一无所知。很多未知因素,它们都位于终点线的另一端,而这正是我需要它们的地方。这一次,性格缺陷指向了运输,而不是逃避运输。
注意,所有这些都缺少一个东西:一个想法。
我没有目标。我只有一个要求——交付一款让我自己都不觉得丢脸的作品,因为规则是“交付”,而不是“交付任何东西”——而且我没有钱购买素材。所以我一开始提出的问题不是“我应该做什么?”,而是:什么样的游戏可以完全用代码生成的艺术形式来构建?
游戏采用下落方块机制,并融合了roguelite跑酷元素,只有一个机制足以支撑整个游戏,因为预算有限,无法开发第二个机制。游戏中没有图片文件。 Ominomicon每个像素都会被计算出来,音频的生成也是出于同样的原因。
这个愿景并不宏大。我有很多宏大的愿景,但没有一个实现过。
这条规则到处都在出现。
没有广告。没有应用内购买。没有遥测数据。余额数据无法远程配置。这些都是我坚持的原则,而且每一项我都无需编写代码。我想说,这些都是出于信念。大多数情况下,这些信念恰好成本低廉。
遥测数据是有代价的。无论最终的平衡状态如何,我永远无法得知它是否正确。所以,在它离开之前,状态必须完全正确。
二十张遗物卡,每次游戏提供五张:总共有 15,504 种可能的组合。对于计算机来说,这个数字并不算大,但对于人工测试来说却不切实际。我们构建了一个无头版本的游戏,将棋盘用位图表示,规则用纯函数表示,并运行了所有可能的组合。
它发现了两个问题。一种卡牌组合过于强大,生命值系统也存在缺陷。这两个问题结合起来意味着,只要操作足够精准,玩家就可以无限期地避免死亡——这对于一款永久死亡游戏来说是致命的,因为游戏进程本应在结束前结束。这两个问题在游戏正式发售前都得到了修复。如果没有位板自动化功能,这两个问题都不可能被发现。
第117关,1,167行。游戏在演示模式下自动运行,无需人工干预。
没有哪个测试玩家会发现这个问题。它需要一套特定的五张卡牌,而且玩家还得有足够的技巧才能利用它们。我的测试玩家是我儿子,他当时还有其他事要做。我们也没有质量保证团队,所以游戏早期我就设计成可以自动运行的。在我忙其他事情的时候,游戏可以无人值守地运行好几个小时,我无意中发现了几个bug。大部分测试套件都是由此发展而来的。
这些都不是游戏制作中最有趣的部分,如果放在以前的项目里,我早就离开了。我之所以还待在这里,唯一的原因是我已经没有代码可以藏身了。
然后什么也没发生。
游戏于2026年7月29日上线。
重力反转。这堆东西悬挂在天花板上,碎片向上掉落。
然后就什么事也没发生。第一周,店铺页面大概只有十几次浏览量。只有一笔交易,而且还是我自己促成的。
这并不意外。我知道在没有观众的情况下进行同人创作就意味着默默进行。但知道这一点和亲眼看到是两回事。规则是“创作”,但并没有说会有人观看。
这条规则奏效了。
这条规则奏效了。它完成了它被编写出来的唯一任务。现在,一个成品已经上架,拥有版本号、支持地址和商标申请,但它并不与其他产品一起列在目录中。
但它并没有引起任何人的关注。事实证明,这是两个完全不同的问题,而我当时只针对第一个问题制定了规则。
这种规范是有期限的。对于 1.0.1 版本,我仔细阅读了每一行新增或修改的代码,因为针对用户已有的系统进行更新,与完全不发布任何更新,风险截然不同。
这并非是要你把代码交给模型来写。这只是针对我个人缺陷的解决方案,如果你的问题不同,同样的办法对你毫无帮助。我完成了一项工作,而我完成它的方式,却是放弃了我最喜欢的部分。这种感觉比我想象的还要奇特。
你无法改变自己。你需要找到那个你的缺陷指向终点的项目,然后避开它。
这或许令人沮丧,但却是事实。
Ominomicon
发布日期: 2026年7月29日
类型:下落方块类roguelite益智游戏
开发商/发行商: Chris Reynolds
平台: iOS - App Store
蓝天: @ominomicon.com
相关阅读
即时压力 Fix Stories音乐、咖啡和单人手机游戏开发
Golel:一款基于滴答作响机制的第一人称角色扮演游戏,凝聚了开发者的坚持和惨痛的教训
故事由 Chris Reynolds独立开发者 Ominomicon.
编辑和出版 Ronny Fiksdahl创始人兼编辑 Fix Gaming Channel.
请将采访稿、更正、技巧或开发者故事发送至 联系@fixgamingchannel.com.
支持独立游戏报道 Ko-fi.
