Featured image of post Gamejam 体量小游戏:《叫他起来推箱子!》

Gamejam 体量小游戏:《叫他起来推箱子!》

AI 游戏在线可玩。别把我搞破产就行。

这个周末又顺手做了一个小游戏:点此在线可玩

现在很多工作,都已经少不了与 AI 的协作。本游戏就是一个戏仿作品:在推箱子这个不一样的游戏空间内,重现打工人指使 AI 干活时的种种酸甜苦辣。游戏很短,只有八关,谜题超简单,但是玩起来……就很像是在工作。

哎,真没想到,我的游戏竟然是越做越小,越来越简单原型化。像《叫他起来推箱子!》这种粗制滥造使用免费素材名字一看就是随便取的小体量游戏,才该是第一次立项的目标。

《元灵象棋》一样,《叫他起来推箱子!》也是一个纯 AI 代码 Web App 项目。没错,我叫 AI 开发了一个你叫 AI 推箱子的推箱子游戏。

这次不会去搞什么发行、上架、移植手机端了,不单是因为这只是个 Gamejam 式的原型,还因为穷:里面调了 Anthropic API,死贵死贵的。我设了一个月40美元的限额,所以如果你点进了上面的链接发现无法与「他」对话,那么,就请耐心等下个月吧。

和四个月前的 Claude Code / Codex 相比,有编程能力明显变强的体感。我本来只让它们做了中文的版本——这意味着中文字符作为 UI 元素和 Agent 提示词星星点点地遍布在整个代码库里——但后期让它们亡羊补牢本地化成英文,居然能够在15分钟之内实现、全测试通过、我手测一遍也没有遇到任何错误!啧啧称赞。

这个项目比较有意思的是让 AI 对视野系统(战争迷雾)下的推箱子这类 2D 方格棋盘游戏有更精准的把握和操作。除了在地图感知上使用了字符矩阵加上对每个实体周边和可行的操作做列举式描述的小技巧,也在 AI 操作角色移动时做了很多帮助空间能力差的它完成意向性、试探性动作的底层手脚架。

例如,push(box_id,direction) 这个函数工具,能让 AI 直接按 ID 指定实体以及自己的意图(箱子应该往什么方向运动),从而它无需自行判断(1)角色与该箱子之间的空间关系,(2)如何让角色成功走到箱子旁边,(3)角色应该站在箱子的哪一边才能推向自己想要的方向。函数背后自己做了寻路算法、在视野内不存在连通路径时依然会模拟真人行为而尽量往该实体靠近(减少 AI 后续行动次数)、在迷雾下(视野外)路径不确定时如何试探性地前进等等,也就是在忠实模拟真人视线受阻/不使用系统信息作弊的前提下,去执行意图,成为 AI Agent 的优秀小脑。

构思这个游戏时其实有挺多机制上的小想法,例如利用玩家和 AI 的视野不对称这点做谜题文章、引入双 AI 协作/对峙的关卡、叙事上给 AI 的角色设立反转地雷或者更细致的性格之类的,但并不打算真的去做。

个人觉得,依靠 LLM 生成/推动剧情的游戏都有天生缺陷——除非玩家对体验的「唯一性」有着极高的要求,否则在叙事精巧性上的亏损会远远大于收获的无序新奇感。

有篇论文和这个游戏放一起非常应景:Under the Influence: Quantifying Persuasion and Vigilance in Large Language Models。里面用推箱子这个游戏来量化测试了各个品牌的 LLM 们互相说服、互相保持警惕的社交能力。甚至免费素材都用的是同一个呢。

主题 StackJimmy 设计