TL;DR: 我们制作了一款游戏,参加了一个无AI的聚会。它很慢,我们很开心。然后我们用AI来打磨它,它变得很快。特朗普怀孕了。
五月,我和两个朋友参加了一个大约48小时的游戏聚会,地点在波兰的Łódź:Komiks Game Jam。主题是Per Aspera Ad Astra。我们迅速想出了一个关于覆盖政府秘密的游戏的想法。有趣的是,我们不知道美国政府刚刚发布了另一批“UFO文件”的信息。我们的核心设计目标是创建一个简单、可重复的机制,字面上是在游戏的世界中。我们决定用红色覆盖政府文件中的非法词语来玩。也就是说,你必须尝试不同的东西。我的朋友们喜欢The X-Files和基于简单上下文机制的游戏,例如Papers, Please,所以我想这个想法已经在我的脑子里躺了很久了。
原始聚会版本
聚会的规则禁止使用AI,所以原始版本是用老式的方式制作的。在聚会期间,我们成功地实现了基本的游戏循环:阅读文件并覆盖禁止的词语。我们使用了Godot,因为我们的笔记本电脑不太擅长运行Unreal。 我也喜欢在Godot中工作,因为它让我回到了制作Flash游戏的好时光。我们对结果很满意,但缺乏了计时器和分数系统的合适实现。红色覆盖机制本身也有些笨拙。手动实现所有东西都很慢,即使任务本身很简单。
让我们提高一下
聚会结束后,我们想提高游戏。然而,由于我们都工作全职,我们不想让项目拖延几个月,成为特性膨胀的牺牲品,最终被遗忘。所以我们决定看看使用AI多快。结果很惊人——考虑到游戏聚会的混乱代码和文件夹结构的混乱。几个会话后,你会意识到你的想法和对项目架构的理解才是真正的瓶颈。我们也要诚实地说:hooking up声音效果并不是编码体验中最光彩的部分。让AI处理一些grunt工作是解放的。
更重要的是,它帮助我们达到游戏开发的一个神圣目标:
失败更快。
案例1:抹去抹布
在聚会期间,我实现了一个简单的点击和拖动线机制来覆盖词语。它工作得相对不错,但玩家必须非常精确,且从右到左的绘制不正确——也就是说,不工作。聚会结束后,我创建了一个空的Godot项目,并要求克劳德重新实现机制,以便在内部更精确,同时对玩家更宽容。结果,我添加了一个额外的模式:
>也添加自由绘制作为一个替代模式。
它快速实现了两个系统,并且工作得非常好。几次迭代后,计分系统也按照我最初想象的方式工作。所有这一切发生在一个单独的下午会话中。结果比原始机制更好,它仍然可用在build(M)中。将新实现移动到主项目中,只需一个命令。
案例2:咖啡杯
杰克凯,我的图形师,添加了一个咖啡杯,带有一个简单的旋转液体效果。看起来不错,但作为测试,我要求Cursor的Composer找到并hook up一个Balatro-inspired背景着色器,创造一些旋转的运动。几秒钟内,它下载了一个着色器并连接了所有内容。结果看起来很糟糕。 丢弃的成本为零。所以我描述了我实际想要的:运动类型、参数和液体行为。下一次尝试,它产生了几乎与我想象的一样好的结果。它是一个微小的、不重要的细节,但它几乎没有花费来测试,并为场景添加了一些味道。
案例3:枯燥的声音
添加声音通常是“最后要做”的事情之一,这意味着我在聚会期间没有足够的时间来完成。聚会结束后,我直接要求Cursor的Composer创建一个包含每个可能需要声音效果的动作的索引。索引包括资产路径、触发器和所需声音的描述。然后我要求它创建一个Python脚本,读取索引并使用 ElevenLabs API生成声音。Cursor有点冲动,几乎每个动作都添加了单独的“in”、“hold”和“out”声音阶段。然后我移除了大多数这些阶段并运行了脚本。约80%的生成声音都是可用的。有些需要重新生成几次。飞蛾嗡嗡的声音尝试了几次,最终产生了金属叮当的声音。对于一个完整的产品,我仍然更喜欢与声音设计师合作。然而,这个过程对于原型设计非常有用,它快速揭示了游戏缺乏音频反馈的区域以及额外的声音会变得多余的区域。例如,播放每个被覆盖的单词的音频效果太多了。
案例4:嗯嗯嗯
亚当生成了几十个背景音乐,最后我们决定使用当前的音乐。事后看,我仍然更喜欢与人类作曲家合作。那样可能会让我们更好地抓住方向,而不是仅仅选择最好的生成结果。然而,在实验中,我想出了一个想法:玩家可以在游戏中偶尔不擅长地哼唱。生成哼唱、导入它并设置随机播放的时间仅仅是几秒钟。结果我很满意。知道我可能只需要几分钟来手动实现,但那些是几分钟我可以花在打磨其他东西上。并且我可能不会这样做。
案例5:教程
我们知道游戏需要教程。但我要诚实地说:一旦游戏几乎完成,创建教程感觉像是一个微不足道且深深令人失望的任务。将初始实现委托给AI意味着我可以专注于测试它、批评它(是的,我是这样说的)和在没有成为玩家工作的重复工作中迭代它。教程往往感觉像是一种行政工作。它们是必要的,但很少有人会兴奋地在项目结束时实现它们。现在我们不必做所有这些令人生厌的工作。
小小改进——免费的好价格
还有许多其他的小调整,每个都需要几次提示而不是整个下午。尽管使用AI工具已有一段时间,我仍然惊讶于它们如何理解相对抽象的、场景特定的指令,例如:
>右边的文件夹中有一个文件夹。让纸张从其中的封面滑出。
或:
>点击香烟后,将其移动到烟灰缸中并让它开始燃烧。
当结果不正确时,大约90%的时间是因为我的解释太懒或不清楚。工具理解场景结构惊人地好。它们也理解游戏的故事驱动的游戏特征而不是纯粹的技术描述。我们很高兴我们采用了这种方法,因为我们实际上完成了一个更完整的游戏版本。我们以前的游戏聚会项目没有完成。我们仍在争论是否将其扩展到一个完整的叙事游戏。重要的区别是我们现在问道:“这会很有趣吗?”而不是:“是的,这值得花费所有的工作来测试它是否会有趣吗?”**
对于小型后聚会项目和原型,我可以推荐以下工作流:
- Godot
- Claude Code for specs
- Cursor的Composer对于小任务/修复,最近版本的速度惊人
由于今天是世界UFO日,所以似乎是时候停止打磨,发布增强版并让公众检查我们的完全合法的政府文件。
原始无AI聚会版本和新打磨版都可在以下位置找到:
https://happycorruption.itch.io/secret-markers
>真相就在那里,但它很可能已经被抹去。
评论 (0)