文/韩伟

机器学习能否玩游戏呢?

AlphaGo在围棋领域战胜人类,给了我们很大的想象空间,我们会想:机器是否也能像人类一样理解游戏规则,从而玩游戏呢?我个人的理解,现在还是不行的。如“监督学习”的模型下,机器只能通过大量的人类“经验数据”,来模拟人类的游戏行为,但无法独立做出判断和思考。如果使用“深度学习”,确实会有一种“超越人类”的错觉,但是无法忽视的是,“深度学习”需要一种高度抽象、模拟游戏胜负规则的公式,来指导机器的自我对弈。在围棋、象棋这类已经发展了数千年的游戏领域,“子力计算”等游戏模式经验,已经能相当准确地描述这个游戏了。而对于其他的一些比较复杂的游戏,要高度抽象地用数学模型来概括一个游戏,还是需要人类大量的思考。这也是为什么深度学习在一些规则简单的游戏中,还能表现的比较好,而另外一些比较复杂的游戏上,就需要大量的人工干预才能稍微像样的原因。

095555z0oq4g4gc7lx4qjj.jpg
[AlphaGo是用了人类的游戏经验的]

所以我认为,机器学习在现阶段,最成熟的应用,是利用“监督学习”的方法,对于大量人类的“经验”大数据进行模拟思考的方面。既可以用于“理解”客观世界,也可以“模拟”人类对于复杂环境的行为。

游戏角色AI在开发上的困境

机器学习很容易让人联想到在游戏中的角色AI。一直以来游戏中NPC或怪物的AI问题都是一个游戏比较难解决的问题。比如游戏的角色行为过于单一,让玩家乏味,或者游戏角色容易因为BUG陷入一些卡死的境地。为什么游戏角色AI会有这些问题?大体不外乎几个原因:其一是描述一个完整的AI非常的繁琐,环境越复杂,AI逻辑流程越容易出现漏洞;其二是为了游戏角色AI的目标非常多样化,很多游戏角色并不是越“聪明厉害”越好,而应该是作为一个“演出系统”,来让玩家体验游戏世界的工具。

095556v5eyaazgyys2faof.jpg
[一套简单的游戏行为就需要十分复杂的行为树]

现在比较流行的游戏角色AI开发方法,无外乎“状态机”和“行为树”两种,而这两种在数据结构上,是可以无损转换的,也就是说本质上是一样。这两个技术,都是为了帮游戏开发者,更准确、更完整的表述AI逻辑判断的数据结构。但是游戏本身的逻辑复杂度,还是要由程序员一段段的去理解,然后才能编写成程序。在另外一些游戏中,会用到一种叫“面向目标的路径规划”的技术,实际上是“状态机”的一种升级技术:利用A*(A-Star)等寻路算法,来自动生成“状态”之间的逻辑路径,而无需一开始就以人工输入的方式全部输入进去。这种技术因为是在运行时产生状态机图,所以表现出来的行为会更加丰富和准确,较少会陷入一些“没有事先预测到的状况”从而陷入逻辑卡住的情况。

但是不管状态机和行为树如何努力,从开发者角度来说,都必须通过人脑来抽象和理解游戏世界的规则,和各种可能的情况。加上游戏AI很多时候是需要一种“表演”效果,要用代码和逻辑去“模拟”出一场表演,是相当繁琐的工作量。(如果以深度学习技术来说,实际上也无法做出这种表演效果,因为这种表演的逻辑行为,往往不是“最优”的选择,甚至是相当“差劲”的。)

所以,归根结底,游戏中的AI的困境,是由于工作量的原因造成的。由于我们没有很好地生成“游戏行为”的工具,导致我们的游戏行为往往不够好。

机器学习如何应用在游戏角色AI的开发上

在机器学习领域,学习人类的行为,并且应用于合适的场景,是“监督学习”下最常见、最成熟的技术之一,经典的应用就是“自动驾驶”。相对于自动驾驶需要昂贵的雷达设备,才能“感受”现实世界,在游戏中所有的数据都唾手可得,这种监督学习的应用更是没有任何障碍。

假设我们的游戏,已经把基本的游戏规则开发好,游戏场景也已经布置好,剩下的就是如何置入游戏角色。就好像一部电影,场景、道具都已经到位,摄像机和剧本都已经准备好,那么剩下的就是演员的表演了。按照以前的做法,我们需要用复杂的状态机系统,去操控那些游戏角色演出,而现在,我们可以让策划(或者其他开发人员)直接去操控游戏中的角色,去以真实的游戏操作行为,让游戏角色做出演出行为,而机器学习的程序,就好像录像机一样,可以通过记录我们操控的角色行为,去学习如何模仿我们的操控。当我们表演的足够丰富后,机器学习就可以完全取代人工的操控,做出一些和预设相同的行为特征。

如果我们的游戏能像上面的方法去开发角色AI,我们将会在游戏AI行为工具上,得到一次巨大的进步。我们不再需要通过人脑去抽象和转化游戏的“表演”,而是可以直接去“扮演”,这样除了可以节省大量的“程序员”的开发工作外,对于调试AI行为,表达更丰富的角色行为特征(性格),也是有相当大的好处。

095646ek2kk9q21g3g0kq1.jpg
[游戏开发在很多方面已经越来越接近电影制作]

显然,如果完全用“游戏”的形式来取代AI开发,即便在机器学习的支持下,可能还会有很多不足之处,比如“人工表演”可能无法覆盖所有的游戏场景环境。但是只要能节省下工作量,我们还是可以利用旧的状态机技术,来定义比较“完整”的逻辑环境,弥补那些可能存在的漏洞。不过我相信,随着对游戏测试的深入,机器学习能更快更好地应对这些逻辑漏洞,毕竟“玩”几把游戏,比写代码然后调试,要快的多。

游戏角色AI的业务价值

现在的成名游戏中,确实有那么一大批是似乎对游戏角色AI“没有必要性需求”的,比如我们常见的MOBA类游戏。在棋牌类游戏中,我们也不太希望用一个厉害的AI让我持续的输钱。但如果设想一下,如果我们的策划能比较低成本地生产“AI”,那么我们的游戏就会脱离“玩具”的层面,变成一种可以“表演”的产品。我们常常说IP对游戏的重要性,而真正能体现出IP的,往往是故事体验,这就需要一套很好的“表演”系统。

从另外一个角度说,如果我们的游戏除了精彩的PVP内容,还有很多优秀的PVE内容(所谓的单机体验内容),那么玩家也许会慢慢倾向对我们所生产的PVE内容来付费。从电影市场这么多年的发展来看,优秀的“表演”还是会有很大的市场的。从知识产权保护的角度来看,PVE内容很容易得到保护。除了利用海量用户去激活PVP的收入,在PVE方面的开发,也许是一个新的市场空间。

095647kjkpsqdz22cd911d.jpg
[《巫师3》不仅仅是一部互动电影,也是一个玩法优秀的游戏,更是一个超级IP]

via:腾讯游戏学院


锐亚教育

锐亚教育,游戏开发论坛|游戏制作人|游戏策划|游戏开发|独立游戏|游戏产业|游戏研发|游戏运营| unity|unity3d|unity3d官网|unity3d 教程|金融帝国3|8k8k8k|mcafee8.5i|游戏蛮牛|蛮牛 unity|蛮牛