ColdCall: Sales Champion是一部黑色喜剧游戏,玩家需要拨打陌生人的电话出售财富产品,每次电话都是与客户对话的搏斗。这个想法来自一部关于在广州做电话销售的中国短篇小说,搏斗的灵感来自Undertale。几乎所有的代码都是用编码代理(Claude Code)编写的,艺术来源于Gemini图像。然而,这并不是一锤子买卖的编码方式。以下是背后的真相:

  1. 我们的引擎。 游戏下方有一个2D引擎,基于FNA,用于所有我们的游戏:交互音乐、直接从Aseprite文件中加载资源、任务、存档、对话、本地化、粒子、碰撞、ImGui调试层等。每个部分都在开发游戏的过程中不断被重写,仍然存在一些不 glamorous 的工作,如性能优化。
  2. Markdown文档才是真正的代码。代理每次会话都会读取一个规则文件(像素规则、命名、验证、分支等)。有26个设计文档,另外还有一个共享仓库,包含标准(像素艺术、像素字体、录音)和18个工作流程(如Steam发布、本地化和音乐制作)。我仍然负责拨打电话:每个决定都有一个日期记录在文档中,以防代理悄悄地修改它。
  3. 代理无法看到我的屏幕,所以它会检查自己。 游戏有两种头部模式:将任何屏幕渲染为png,或者让机器人在隐藏设备上玩一个游戏月份。许多检查都可以自己失败,比如一个肖像覆盖了UI线或一个按钮无法被游戏手柄触摸。另外三个技能水平的机器人也可以并行地玩一个游戏月份,以便平衡。
  4. 规则是代码,不是注释。搏斗模式是json,每个模式都有一个“人类限制”检查:致命子弹需要至少0.6秒的警告,不得超过约4个有害发射器同时存在,间隔宽度必须大于玩家的心脏大小加6px。代理无法在没有警告的情况下制作不公平的东西。
  5. AI艺术,重建。Gemini提供一个源图像,一种工具会重建它到一个真正的像素网格中,所有内容都被锁定在固定的调色板上(人物和UI的16种颜色,背景的11种颜色)。我会审查每个文件并标记它为最终,如果它在后来发生变化,它就会回滚到“需要审查”的状态。应用图标是我手绘的lol
  6. 翻译的分层。25种语言,翻译由AI完成,使用词典和每个角色在每种语言中的说话方式表格。对于主8种语言,所有3,155行都被分为4个层次:AI可以接受的 / AI可以接受但需要人工审查的 / 人类可以做得更好的 / 中文笑话需要重写。只有最后两个层次会被交给人类翻译者,例如对于巴西葡萄牙语,126行需要翻译,我们正在开始一个付费测试,只有这些行。