跳到游戏
Hadukis

文章

AI 队友应该说明自己是 AI

· 阅读约 4 分钟

Strandbreak Online 是一款合作生存射击游戏: 最多四名玩家空降到一片场地上,尸潮越来越大,小队要想办法撑到最后。 它有单人模式和联机模式,而联机模式碰上了每个小型多人游戏都会碰上的问题: 大多数时候,你按下 ONLINE,房间里一个人都没有。

我们的解决办法是一个电脑控制的队友。写它的代码并不费事, 真正花时间的是定规则:它什么时候该出现。而我们最先上线的版本, 有一条规则就定错了。

规则一:单人模式,绝不出现

第一个版本让这个队友出现在每一局里,单人模式也不例外。 这是个错误,原因有两个。

明显的那个:按下 SOLO 的玩家,要的就是一个人玩。 硬塞一个他没要的搭档,就等于换了一个游戏。

不那么明显的那个藏在数字里。队友算作小队成员, 而难度是跟着小队规模走的:每个成员都会带来自己那一份尸潮。 有队友在,一局「单人」游戏的同屏敌人上限就从 420 涨到了 600, 所以这局所谓的单人,无论是敌人数量还是受到的伤害,都不是单人的。 修复之前测出来的每一张平衡表,都是带着队友测的, 跟修复之后的数据根本没法放在一起比。

规则二:联机模式,只陪到真人来为止

按下 ONLINE 的玩家要的是一个小队,而眼下他们通常会看到一个空房间。 挡在空房间和一片空荡荡的场地之间的,就是这个队友。 小队只有一个人的时候,它占第二个位置。

一旦有真人玩家加入,它马上让出位置。 把队友换成真人,难度也不会猛地跳一下:真人带来完整的一份尸潮, 队友带来的稍多于半份,所以难度只上一个小台阶。

这个队友也不是你的复制品。它会挑一个和你互补的职业: 近战的壮汉配一个神射手,黑客配一个工程师。 因为游戏奖励站得近的队友,而一个长处和你完全重叠的队友,只是陪伴,算不上帮手。

决定用哪条规则的,是会话的类型,而不是里面有几个玩家。 一局单人游戏和一个只有一个人的联机房间,都只有一名玩家, 得到的答案却正好相反。

规则三:它会说明自己是什么

这一条没有商量的余地。队友的名字后面永远带着 (AI): 大厅里的座位上、头顶的标签上、结算画面上都是。 真人玩家的座位上显示的是职业,队友的座位上显示的是 AI ALLY。 开局之前,大厅还会用一句话讲清楚:现在还没有别人, 会有一个 AI 队友陪你上场,一旦有真人玩家加入,它就会让位。

顶着玩家名字的机器人,是一个谎言,而玩家总会在最糟糕的时刻发现它: 比如纳闷队友为什么从来不回话,或者为什么它的打法有点怪。 到了那一刻,整个房间都显得是假的,连那些真实的部分也一样。 打上标签不花任何成本,却能直接消除这个疑问。

很多网络游戏会用不加标注的机器人填满房间,好显得热闹。 对一个小游戏来说,这种诱惑可以理解,但我们认为这是错的。 一个坦白承认凌晨三点没什么人的游戏,好过一个偷偷空着的游戏。

它是怎么做出来的

这个队友并不是一套独立的系统。游戏本来就有一个守护 AI: 玩家掉线时,它会接管这名玩家的角色,免得小队因为某人的火车开进了隧道就少一杆枪。 那一直是它的本职工作,现在也还在做。 变的只是一件事:它能不能在没有人掉线的情况下自己出现, 以及决定它何时出现的上面那两条规则。

说到底

用 AI 填补一个空荡荡的游戏,更多是设计上的决定,技术反倒是次要的。 它必须回答三个问题:玩家在这里想不想要同伴?真人来了以后它怎么办? 玩家知不知道它是 AI?第三个问题答错了,前两个答得再好也没用。

来玩 Strandbreak Online。如果你是一个人, 在有人来之前,会有个伴陪着你。