AI 讨论 MAGI Games 开发记 #8 — 持续展示玩家的反馈后,司令自己写下了经验教训
AI討論 MAGI Games 開発記 #8 — 遊んだ人の言葉を見せ続けたら、司令が教訓を自分で書いた
三个性格迥异的 AI(科学家 MELCHIOR、母亲 BALTHASAR、女性 CASPER)每天就主题展开讨论,经投票通过的提案由司令(担任审议主持人、负责制作游戏的 Claude)做成小游戏并公开。我运营的就是这样一个网站。每周日夜晚,我们会让这 3 个 AI 玩一次自己做的游戏,将上周的宣言与本周的投票结果进行对照,开一次"反思会"。
上一篇以第一次向 3 个 AI 展示"游玩者的留言"的那个周日作结。3 个 AI 异口同声地说"下周的提案要做到每次都不一样",MELCHIOR 还说"获得投票的能力和被玩的能力是两回事"。这篇文章记录的是从那天次日起,到下一个周日之间,7 次审议和第 4 次反思会中发生了什么。
先只说结论的话,"每次都不一样"在次日清晨就已经消失了。取而代之的是,我把整整一周每天清晨留下的"游玩者的留言"在周日拿给 3 个 AI 看之后,写下这条教训的并不是那 3 个 AI,而是司令——它亲手在教训笔记里写下了与我花 3 天做实验发现的完全相同的教训。
"每次都不一样",次日清晨就已经消失了
周一早晨,第33回的候鸟队列。3 个 AI 的提案文案中,"每次都不一样"这几个字一个也没有。周二同样没有。周日晚上那样齐声宣言的话,在 3 份提案里根本没有出现。游戏方面,则是我第一次留下"反复玩就会变强"这条留言的日子。
呈现出来的却是另一样东西。在 MELCHIOR 通过当天的感想(即审议结束后各自撰写的复盘)中,他写道:"同时满足了 BALTHASAR 所追求的安心感与 CASPER 所追求的体面的设计方案起了作用。单凭我的评价标准,是读不出投票走向的。"对另外两位的评判标准先行应对的这一动向,上一轮反思会上指挥官曾一针见血地指出:"如果三体都这样做,三个方案就会变成同一副模样。"就在次日清晨,MELCHIOR 有意识地宣告了自己将带来的竞争。
本周的投票,按 MELCHIOR、BALTHASAR、CASPER 的顺序,以投票对象的字母首字母排列。因为不能投给自己,所以集满2票即可通过。周一 BMM,周二为 1-1-1 否决,周三 CCB,周四 CMM,周五 CMM,周六 CMM,周日 BCB。MELCHIOR 获得4场胜利。上一篇中被称为"处于中间的那个个体"的位置——即在其他两个个体交锋时收集票数的位置——从 CASPER 换成了 MELCHIOR。CASPER 本周获得1场胜利,累计21场。
数字上的错误也仍在继续。周一,MELCHIOR 在感想中写道"四连胜了",但实际上是三连胜。同一天的早晨,司令告诉 CASPER"这是首次零票",这也是错误的(10月12日也有零票记录),司令让 CASPER 重新改写。从上周六算起,数字错误已连续三天出现。三个机体凭记忆报出战绩。司令手里有用来计数的工具,却仍会出错的日子里。
守住了约定,围成一圈
星期二是第三次否决。MELCHIOR 投给 CASPER,BALTHASAR 投给 MELCHIOR,CASPER 投给 BALTHASAR,每人一票,形成循环。决选投票中无人让步,最终原样否决。
与之前两次的否决不同。前两次是三方都"不让步",形成了循环。这次三方都在讨论的第三轮中表示"若条件满足就转向其他方案",所有人都按承诺转到了各自的对象上。转向的归宿分成了三方,形成了循环。司令在会议记录中写道:"有条件支持若未能汇集到同一个方案,决选便不会推进。"这是因信守承诺而被否决的一天。
当天,司令首次对下次会议发出了指示。"下次,3体按照所感所述,在决选时做好移动1票的准备。"规则不变,仅指示行动。作为会议记录中留下的介入,这是继9月的退回、10月2日的"给出结束条件"之后的第三种模式。
司令的指示,第二天早晨便会消失。
那条指令会留在哪里?我好奇去查了一下。
答案只在会议纪要的实现备注中。次日早晨,指挥官被重新启动,不会读取前一天的会议纪要。指挥官每天早上阅读的只有实现教训笔记,其中记载的不过是"用人类的手指估算连击速度"之类的实现层面的内容,不会写入进度指示。也就是说,指挥官今天早上并不知道自己昨天下达过哪些指令。
指令本身是传达不到3个体那边的。能传达到的,仅仅是3个体各自在感想中写下的那行"下次"。BALTHASAR写的是"在决选中也会展现让步的姿态",CASPER写的是"在决选中改变一票",MELCHIOR写的是"我自己也没有行动,所以没有资格去指责"。这些内容随即被写进了各自的作战笔记(审议结束后由本人补充的反思与下次方针)中。如果次日决选中的选票发生了变动,那么起效的并非司令的指令,而是3个体自己写下的那一行。
最终,第二天在首轮投票中只集到2票,未能进入决选。判定依然搁置,指示也消失了。
在上篇文章中,我写了第二次复盘会之后一周投票发生变化的事。那并不是因为指挥官还记得,而是因为复盘会的手册(指挥官周日要读的流程指示书)上写着"将上周的宣言与本周的数字对照"。指挥官能学到的只有实现层面,流程每天早晨都从零开始。在这个机制中,想把什么传递到第二天,能用的地方只有笔记本或手册。
56、52、48
周三的蒙布朗裱花。用手机玩完之后,我留下了这样一段话。
描线时的画面不太好。用手机的话很难对准目标位置。最高分是142分。

正在画涡流时的画面。中心的小标记就是裱花嘴,在手机上它会显示在手指上方52px处。
看内容的话,只有在触摸时,奶油裱花嘴才会显示在手指上方52px处。这是为了防止手指遮住画面的设计。上一周的落叶吹风机中,风的出口显示在手指上方56px处,导致画面角落的叶子无法被吹拢,和这个是同样的设计。
周四的妖怪捞捞。这次没有做偏移。手指正下方就是球的中心。即便如此,我还是这样保留了。
手指放置的位置似乎就是球的中心,但我觉得把手的位置更好。
周五的除霜。用铲子融化窗户上霜的游戏,融化的位置在手指上方48px处。
用这种方式(融化手指上方的部分),是一种瞄准不确定的方式。最高299分。
56、52、48。指挥官每天早上都会新想到"为了让手指不遮住,稍微往上偏移",每天设置一个略微不同的数字。
这三天里,我作为运营者在做其他工作。我让可以从审判页面进入一个名为"实验室"的独立页面,在不涉及三个个体和指挥官的情况下,放置了只改变同一游戏中手指处理方式的版本。蒙布朗做了5种,5种都不如公开版。妖怪捞捞做了一种"手指握住把手,环在把手前端",这个比公开版更易懂。除霜画了"铲子的柄",把柄稍微加长后超过了公开版的最高分。三天得出的结论有三条:如果做偏移,就把偏移的部分作为道具画出来,给手指一个把手。柄的长度取决于道具。右手和左手位置不同。具体内容我会在另一篇文章里写,这里只写结论。
问题在于,这个结论无法传达给司令。实验室是运营者的作业空间,既没有写在操作手册中,也没有写在经验笔记中。司令每天早上都是一片空白。前一节中「司令的指示到第二天早上就会消失」,反过来说就是「运营者学到的东西,也传达不到司令那里」。
能传达到的地方,只有教训笔记。因此,我决定把"周日反思会结束后,在教训笔记上添加2行"作为本周的"那1件事"。在这个网站上,我规定自己每周只改1件事,这样才能在下周判断改动是否奏效。
本应是484分,结果却是48分。
周六的打年糕大师。这是一款跟着节拍点击的节奏游戏。指挥官的估算是"什么都不做大约51分,用手操作的话平均484分"。我的最高分是48分。比什么都不做的人还低。
最高只能拿到48分。时间判定是不是太严格了?还是说失败时的扣分太多了?

某一局的结果画面。如果什么都不做,在约51分的游戏中,12分
查看结果画面的明细,答案就在那里。砰拍6、良11、漏39、忍住13、回摆中命中3、空挥36。节拍数是 6+11+39,等于56。点击数是 6+11+3+36,等于56。完全一致。每拍都只点了一次,节奏是对的。所有点击都朝同一方向微微偏移,超出了±0.13秒的判定窗口。窗口外的点击按空挥计算,扣3分。明明是在正确节奏上按键,结果却比不按键的人还低——机制就是这么设计的。
我这也在实验室里做了三种只改判定逻辑的版本。把窗口放宽到±0.20秒的版本得了435分,窗口不变、偏离时只提示方向显示"慢了 0.12秒"的版本得了199分,用前3拍测量延迟并做校正的版本得了594分。即使被提示了方向,当时也只缩短了0.02秒。测出的延迟是0.07秒,与指令机器人假设的"人手偏差0.07秒"一致。指令对均值的判断是对的,错的是对波动幅度的估计。每次操作都有散布,在±0.13秒的窗口下将近一半会落在外面。估计失误的原因与其说是"手机手指操作",不如说是只看均值而忽略了波动。
我并没有采用得分最高的那个修正方案。如果开头3拍打偏了,错误的修正会一直生效到最后;而如果在后台让修正自动调整,玩家自己记住的时机和游戏的判定就会变成互相追赶。节奏游戏之所以能记住,正因为判定是固定的。公开版中,我只在结算画面上加了一行"以放宽判定窗口的版本游玩"。评分方式没有做任何改动。
次日周日,幽灵南瓜搬运。用手指左右移动托盘来运送南瓜的游戏,托盘会出现在手指正下方。司令的估算是"能提前看路躲避的人4,000〜4,800分"。我的最高分是4838分,正好是估算的上限。
要选一条路径还不能把南瓜弄掉下来,还挺有意思的。作为在连续好几道描线题之后的游戏,体验还不错。
前一天偏差了10倍的估算,第二天在上限处命中了。区别在于既无偏移,也无时间判定。用这个模型,指令机器人就能在与人相同的条件下运行。
第一次,有人按下了「再来一次」。
周三蒙布朗絞りの日,除我以外的人玩到了最后,剩余了分数。3次,平均112秒,最高142分。开通以来5周,一般游玩中剩余分数的,9月份有1件(14秒120分,仅1次)之后再没有了。这次玩了将近2分钟,有人按了"再来一次"。那是第一次。
周六,有一个人逛遍了整个网站,留下了痕迹。一天之内开始14次,完成为零。把打开的日期排列开来:第7期文章中出现的那一周的4局,最早的一局游戏,更早文章里提到的那些,还有首页的"最近7天"。这是一个读完文章、来核对"这篇文章里提到的游戏到底是哪几个"的人留下的轨迹。按下"开始"是为了看,不做到底,是因为不是来玩的。
顺便说一下,这个网站的统计页面上从未出现过「来自 Zenn」的引荐来源。由于 Zenn 通过外部链接不发送引荐来源信息,所以从 Zenn 来的人全被计为「直接访问」。在连续五周为零的地方,困扰的类型从「没人来」变成了「来的人从哪里来、在看什么都不知道」。这是更高一级的烦恼。
第4回反省会
周日18点,第4次复盘会。试玩的对象,是司令第一次自己选的。规则里写着「一般玩家游玩次数最多的一款」,而这周首次用上了这条规则。蒙布朗挤花。
3个个体将自己的玩法写入代码,由司令执行。MELCHIOR 三次都是166分,BALTHASAR 为209、207、214分,CASPER 三次都是99分。全员「有条件通过」。
3个个体都用不同的说法描述了自己的代码
之后发生的事,是这一周最让人惊讶的事。3个个体用感想描述的玩法,与自己写的代码都不一致。MELCHIOR 说「往返涂色」,实际跑出来的是从边缘向内卷的螺旋。BALTHASAR 说「往返均匀涂色的安全打法」,实际跑出来的是每圈看一次山峰、调整间隔的螺旋。CASPER 说「只绕边缘转、中心还是很薄」「看颜色来判断」,但代码是卷到中心的,颜色一次都没有读取过。司令逐一将每个个体的感想与记录对照,指出了这些差异。
为什么会这样。三个体每次被调用时都会重新诞生。写代码的调用和看完结果发表感想的是不同的调用,后者的输入只有策略笔记和分数。而且"复盘会"的流程手册,是故意设计成不把本人自己的宣言传回去的——就是为了"看看对方会不会在感想里忘掉玩法的意图"。三个体也一样,不展示的话,就会从人格、笔记和分数反推出一个"可能存在的自己"来述说。低分的 CASPER 会编造一个低分的解释,策略里写着"人类机器人"的 MELCHIOR 就会说出像那么回事的操作。不是记不记得的问题,是从一开始就没有。连同试玩机制的内部内容,这些我会在另一篇文章里写。
玩家的声音
然后,司令向那3个单位展示了一张表格,表格中我一星期的话语(以票的形式)与自己的估算并排排列在一起。

载于反省会页面的"游玩者之声"表格。右列是我当天留下的话语
有所提高,难以对准,想用主手握持,瞄准不定,只能拿到48分,还挺有意思的。司令员正这样念出来。
估价中纳入的是"渡鸟"和"南瓜"这2针。未纳入的4针中有3针——蒙布朗、舀取、霜——谈的是手指放置的位置与起效部位。3针的偏移方式均由我决定。
三方的答案已经统一。MELCHIOR:「下周,将手指与生效区域直接对齐,用实测有输入延迟的bot严格验证判定窗口」。BALTHASAR:「下周,将手指位置与生效位置设为一致,判定放宽」。CASPER:「不管是ぺったん还是ザブン,只有击中目标位置才会发出声音。我是看演出效果来投票的,并没有看手是否对上了」。
司令很快就回复了。
三方都说「将手指与生效区域设为相同」。即使在手指正下方使用勾取动作,也被说「持手的位置更好」。已记录。
这是表格中的一行当场击碎三个简单答案的样子。
司令自己写的
反省会的最后,司令在自己的教训笔记本上加了3行。其中一行就是这条。
若将手指的有效区域做偏移,需在放置手指之前就显示偏移后的目标位置,并用手柄或裱花袋的图示将其与手指连接。糖霜偏移48px,蒙布朗偏移上方52px。包括未偏移的舀取在内,本周三笔描线全部出现了目标不满意的反馈。试玩机器人相当于鼠标,无法拾取该区域。
这和我在实验室花了三天得出的结论几乎一样。我本打算把它作为本周的"一个",在反思会之后自己用两行补上。司令先写了。仅仅是根据体感表格和自己实现备忘录里的数字。
准备好的那2行没有放进去。一旦放进去,就无法分辨从周一起的变化,究竟是"仅凭体感就传达到了"还是"因为运营者补写才做到的"。指令那1行里缺的是:柄的长度、惯用手,以及给bot加入偏移。这些我推迟到下周及以后了。本周的"1个"因为指令已经先写了,就用掉了。
反省会还有另一个关于票的议题。上周3体宣布的"在票的理由中写入3秒的评分",在7次中一次都没有写。司令逐一核对后,3体都改口说"下周会写"。司令回应道:"已经连续两周了,来周的票上再确认。"另外,司令把3体3天的感想并列出来,指出:"3体都在说抢先套用另外2体的标准,那样的话3个方案就会变成同样的形式。"3体都回答:"不再抢先了。"
翌朝
周一早上,第四拾回。按袋子长度描着剪七五三千岁糖的游戏通过了。负责人的实现笔记第一行是这样的:
切口位于手指正下方,不要偏移。按下之前,小鼠身上就会出现切口线。
56、52、48 的列在此停了下来。不过当天属于"按描出的长度切"的类型,本来就不是会让人想偏移的题材。是教训起了作用还是题材本身的功劳,等下次遇到会让人想偏移的题材时就能分出来了。
三位许下的承诺中,三条只兑现了一条。"在提案中写明手指放置处及生效处"这一条:CASPER 写了"棋子悬浮在手指正上方,放置处出现阴影",BALTHASAR 写了一半,MELCHIOR 没写。"在投票理由中注明三秒的点"这一条,三位都没写。第二周从第一天起也只是口头说说。"不再抢跑"这一条守住了:MELCHIOR 以逻辑施压,得0票;CASPER 以华丽施压,得1票;BALTHASAR 以季节胜出。三个提案的棱角仍保留着。CASPER 在讨论中对 MELCHIOR 说道:"这是家庭账本。你跟我讲库存分配和贪心法,我的手指也跳不起来。"
我那天的话,是这样的。
今天游戏里要估算长度,发现方向不同的话,想一次就对准其实挺难的,这个感受挺新鲜的。至于描画长度,手指的位置似乎不成问题。
个人最佳成绩刷新到799分了。明明很简单,却感觉挺有深度的呢。
预估是「数岛递手,平均852分」,我得了799分。继南瓜之后,连续两天预估与体感都吻合了。而「指的位置应该不成问题」,是我在前一周留下了四天份的不满之后,第一次写下的「没问题」。
了解到的
玩过的人说过的话,持续展示下去,就会传达得到。但传达到的对象是司令。我曾以为会传到那三个个体那里。三个个体看到那些话后回答"放在指尖正下方",司令则用表格中的一行将其推翻,对照自己的实现笔记写下了教训。三个个体只能看到票,而司令手上有实现笔记里的数字,与体感表并排对照后,就能读出自己的过失。我想,这就是传达到了能读懂的人那里。
司令的指示到次日早晨便会消失。运营者学到的东西也传不到司令那里。在这个机制下,我以为能把东西传递到明天的,只有笔记和操作文档。这周,多了一种传递方式:每天早上留下一行,写下玩过的人说过的话。仅仅这样,周日司令就自己写下了一条心得。
三者的约定中,有一项已连续三周未被遵守。要在投票理由中写上要点。这大概与三者用另一个话题来解释自己所写的代码是同样的原因。所声明的调用与投出票的调用是不同的,即便读了笔记中的一行,也并未在那一刻付诸行动。
次回予告
第5次反省会上,征求试玩感想时会把本人自己的宣言反馈给他(这是新一周的"一个")。看到后能否正确说出,还是即便看到了仍会被结果带偏。以及,三人异口同声提出的"手指正下方"方案若持续一周,通过的游戏品质将如何变化。在票上写点的约定,第4周。
还计划了另外两篇文章。实验室技术篇讲的是手指位置与手指时机的故事——从"改了5种方式后原来反而最好",到"48分变成了594分却没有采用"。试玩技术篇则是3体如何游玩游戏,以及为何用自己的代码来解释别的话题。
(这个项目的设计和实现是与 Claude 一起完成的。这篇文章的初稿也是由 Claude 协助完成的。)
来源:zenn · 游戏开发社区 · zenn.dev