智慧 + 毅力 = 无所不能

正确性、健壮性、可靠性、效率、易用性、可读性、可复用性、兼容性、可移植性...

导航

转自:https://www.zhihu.com/question/49321024

 

 

既然你提到了Façade,那可以进一步了解一下用到了增强学习,曾斩获不少学院派游戏大奖的《黑与白》(Black and White)。

《黑与白》围绕增强学习的特点打造核心玩法,让玩家扮演反馈提供者的角色,通过上帝视角的扇巴掌和戳怪物等反馈,来影响游戏中各个生物的表现,从而培养出有复杂行为能力的智能生物。游戏中的生物使用一种围绕信念-欲望-意图设计的行为框架,把游戏物件、生物要达成的目标、以及达成目标所需的行为树联系起来,产生出复杂的生物表现。

总的来说,一般游戏使用机器学习技术的思路有两种,一种是利用“学习”能力,即让AI适应玩家或者模仿玩家,也是这里《黑与白》所使用的,但玩家能给出的学习样本是非常有限的,很难保证效果到位;另一种是利用学习后得出的“成果”,即得到能解决某一特定问题的强力AI,但未必能给游戏本身的娱乐性带来太大的提升。

单纯使用机器学习的“成果”部分来提升游戏AI水平的学术研究已经有很多了,但一般而言一个模型只能用来解决复杂游戏中的一个子问题,比如《文明》中的城市选址,《Quake》中特定模式的最佳团队策略等。各方面都采用机器学习技术来打造AI也不是不可能,但是相比传统的状态机行为树等做法,提升的只是AI的实力,服务的只是少部分核心玩家,付出的开发成本(时间、技术人才、试错)却一定不少。

传统游戏AI的一个特点是强调可预测性(predictable),一方面是让玩家能够通过AI的表现很容易地倒推出AI的行为准则,然后在了解其规律的基础上找寻更好的解法,从而提升自己的游戏水平;另一方面具备强可预测性的AI能保证在动辄以十万为基数的玩家群体中,不会出现难以预料的极端情况破坏体验,比如无限关卡马里奥就需要保证不会因为随机组合而出现玩家理论上不可能通过的障碍。游戏希望的是,玩家败给AI是因为没找到它的弱点,而不是单纯因为AI不可战胜,这点与提升AI实力的做法是背道而驰的。

机器学习做游戏AI也不是唯一出路,有在游戏的迭代检验部分运用相关技术的可行性。比如我做一款类似星际争霸的游戏,里面存在游戏策略的相互克制关系,那我可以通过多个机器学习模型之间的竞争去提前演算出“天梯环境”的变化,对游戏平衡有一个直观的感受;比如上面提到的无限关卡马里奥等用到过程内容生成技术的时候,结合机器学习技术来进行动态难度调整(DDA),而非设计师的脑补。在这些方向上,机器学习更像是设计师的一种工具,运用在生产过程中,而不是游戏本体中,用来减少设计偏差,从而控制游戏质量。

既然用机器学习提升AI的实力没有多少实际运用的意义,真正能让机器学习技术在游戏中作为核心地位来使用的,还是要靠游戏玩法上的突破性和不可替代性来支持。利用机器学习本身的“学习”能力而不是学习成果,去彻底改变玩家与游戏的互动方式。

《黑与白》已经是一个很具开创性的方向了,但现在游戏圈大环境浮躁保守,外加本身的技术门槛,这部作品后数十年都没有值得一提的后来者出现了。等传统玩法消磨殆尽,机器学习的技术进一步普及以后,或许游戏行业会往这上面去做突破吧。


不算参考资料的参考资料:

(机器学习给PCG做DDA)Jennings-Teats, M., Smith, G., & Wardrip-Fruin, N. (2010, October). Polymorph: A model for dynamic level generation. In Proceedings of the Sixth AAAI Conference on Artificial Intelligence and Interactive Digital Entertainment (pp. 138-143). AAAI Press.

(增强学习-文明4城市选址)Wender, S., & Watson, I. (2008). Using reinforcement learning for city site selection in the turn-based strategy game Civilization IV. 2008 IEEE Symposium On Computational Intelligence and Games. doi:10.1109/cig.2008.5035664

(遗传算法迭代FPS团队策略)Liaw, C., Wang, W. H., Tsai, C. T., Ko, C. H., & Hao, G. (2013). Evolving a team in a first-person shooter game by using a genetic algorithm. Applied Artificial Intelligence27(3), 199-212.

 
 
 

我不完全赞成其它答案里说游戏不需要AI太聪明的说法,我认为现在没听说哪个游戏用上智能算法的原因是开发一个游戏AI的成本太高,而成本太高的原因是游戏上的人工智能技术还不成熟。

我在为一款MOBA游戏做游戏AI,已经做了一年半了,可能是国内花时间在这方面最多的人之一。在玩家测试的过程中,我发现玩家其实是对高质量的机器人对手有需求的。因为MOBA游戏的平均胜率永远只能是50%,一定会有许多玩家因为赢少输多而流失。另外很多玩家是很难接受80%以下的胜率的,玩家匹配没法满足他们的这个需求。所以无论是Dota2还是LOL,都有一批忠实于人机对战的玩家。

而且如果你玩过王者荣耀,可能发现AI还有另一个用处,在这里就不细说了。

另外对于策略类游戏,现有的游戏的AI明显是过于弱了。例如文明系列、钢铁雄心系列、三国志系列,甚至已经弱到了影响后期游戏体验的地步,你把城市托管给电脑,它能给你管成一坨屎。虽然这些游戏可能确实不需要有多强的AI,但也不意味着它们现在的水平满足玩家的需求。

AI强和AI是陪玩家玩的并不矛盾,强大的AI可以陪更多水平层次的玩家玩,对于水平比较菜的玩家,只需要把难度调低就行了。

但是开发一个好的游戏AI成本不低。

如果用传统的行为树和状态机,那么一个复杂的游戏AI对程序的要求是很高的,需要有很强的调试能力。游戏AI开发不同于其它类型的开发,游戏AI是很难测试的。程序里的分支实在是太多了,依靠游戏行业的QA来帮助测试起到的作用很有限。所以很大程度上只能靠程序员的自律,很多时候只有开发AI的那个人才知道这些分支之间的转换关系。

如果靠新技术,问题来了,互联网上的人工智能技术并不能直接拿到游戏开发上,需要重新进行研究,重新研究不仅需要大量成本,而且会有失败的可能性。让一个游戏失败的可能已经够多了,游戏行业的投资人和制作人们是不愿意花这么多钱在一个不一定能成功的方向上的。

他们不愿意花钱的原因,其中一个恰恰是不懂技术的人总是会认为做一个优秀的AI很简单,知乎上的另一个关于游戏AI的问题,500多个回答,里面90%的回答都是认为游戏公司可以做出吊打人类的AI,只是游戏公司不愿意而已,里面甚至还有很多程序员。

他们犯的错在于,看到了AI的一点亮眼的表现,例如补刀准,躲技能灵敏,就觉得AI只要照这样做下去就无敌了,但实际上随着AI的越来越复杂,开发难度增长之快让人难以想象。

LOL有个模式是噩梦人机,里面的人机对手技能伤害和范围都被大幅增强,但在刚出来的时候还是经常被玩家偷塔获胜。后来他们在下一次出噩梦人机的时候,将它完全修改成另一种游戏模式,不允许玩家偷塔了,可以看出这是一次对AI开发的难度的妥协。

综上,游戏AI看上去的难度和游戏AI实际上的难度之间的差异,加上游戏行业巨大的盈利压力,加上基础研究的不成熟,导致了目前还没有可能做出一个拥有非常智能的AI的游戏。随着人工智能研究深度和广度的扩展,这一天应该就在不久的将来。

 
 

如果是说AI方面的话,那其实没有必要,我只想说——游戏AI和传统AI是两个领域。

游戏AI主要有两方面,一方面是关卡设计方面(包括怪物AI之类的),可以称之为“对手型AI”;一方面是题主你说的NPC的人工智能问题,可以称之为“交互型AI”

2013年的时候,我们做手游做了一个火纹Like的手游(结果没上就挂了),在那个游戏中,我研究了很多AI的算法,还有战棋类SLG的玩法、经典战术等(包括火纹、曹操传、梦幻模拟战等游戏,我研究了很多玩家的玩法),我最初的目的是制作出一个非常牛逼的AI,让玩家难以战胜,并且我做到了,AI的一些走法让人感觉妙不可言,但是后来我还是否定了这样一个AI,因为游戏AI并不是要聪明到让玩家惊讶甚至无法战胜的,游戏AI终究是陪玩家玩的,好的游戏AI是让玩家能够摸出规律的。从理论到现实中,我们也看到了,一般的神作AI都是有规律可循的,其实这个规律让玩家能够摸透,就是一种玩法,玩家利用对于AI的理解,安排打法战术,通过训练最后战胜AI甚至可以完胜,这时候才是玩家玩游戏最佳体验的时候。所以玩家真正想要的对手型AI并不是那种“特别聪明”的,于是我带着这个思路重新审视了这些游戏的AI,发现他们的确也是故意做的有规律可循的,我想这就是“对手型AI”应有的调性(Motif)。

而交互型AI,我们也曾努力尝试去研究,期望让游戏能营造出一个更真实世界的体验,我们相信未来有一天AR的时代到来的时候(但我却从不看好VR,[深入思考]现代VR游戏的致命伤在于应用情景 - GameRes游资网),我们会需要这样的AI去做游戏(或者是游戏化)。但是这个想法就今天而言,距离“合适”还有很长的时间要等待,于是我们姑且说今天的交互型AI,为什么我们没有去用Deep learning来做呢?我们抛开实现难度等问题,只能说——这样的AI是有趣的(fun),但是它并不能让用户对游戏产生依赖性(hooked),也并不能很好的帮助游戏培养用户习惯(游戏最终粘稠住玩家的手段和赌博是一样的——培养习惯)。我们曾经思考过游戏化培养习惯的方案,其中有多人交互的方式(类似匿名戒酒社、传教等模式),也思考过是否AI终究能在某些环节代替人,但是我们发现这种就是一个伪命题,因为人真正想要的社交是人与人之间(比如陌生人的陌陌、熟人的微信)的。

所以这个问题的答案,我只能总结为——游戏AI和传统AI并不是一个领域的。