人工智能正成为重塑产业效率的利器。在安防、金融、医疗、法律、教育等信息化程度高的领域,那些机械性、重复性高的劳动正逐渐被机器部分替代。在基本上完全数字化的千亿没有规模的游戏行业,人工智能是否有可能产生更大的影响?
这个问题我们也很好奇,于是打算系统地做一系列的行业研究和梳理。
吸引我们做这个系列的原因并不复杂。一是因为游戏行业巨大的市场规模和可观的营收及利润。2016年全球电子游戏收入首次突破1000亿美元,中国游戏玩家达到6亿人,市场规模达到246亿美元,超过了美国的241亿美元。一是因为游戏行业的数字化程度非常高,数据量也十分可观,除了游戏本身全部是电子化的,一款DAU在百万的游戏每天产生的文本日志数据至少可以达到数十G,基于游戏的网络舆情数据也未能得到有效挖掘,这意味着AI也有可能发挥价值。
本文是这个系列的第二篇,主要列举了人工智能与游戏的历史。本文参考了互联网上的诸多资料,也在下文给出了相关的出处或者链接。
自电子游戏诞生,人工智能技术就如影随形,是游戏不可分割的一部分。即使是今天看来有些“古老”的Pong、 Pac—Man ( 吃豆人)背后,也有所谓的人工智能的身影。
只不过人工智能在游戏中的含义与目前我们常说的人工智能并不太相同。通常我们所说的人工智能主要是指强人工智能(让机器能够模拟人类的思维方式)和弱人工智能(利用AI技术解决生活中的各类问题)。
关于常被提及的“游戏AI”,则主要是为了让玩家有更具沉浸感的体验。这里我们引用日本SQUARE ENIX 的首席AI研究员三宅陽一郎氏的一个观点来做解读。游戏中的智能指的是根据环境来协调自身运动的功能,即理解环境,并决策行动。游戏中的AI就是将这个决策过程的部分标准设计成简单的模型,常见的有基于行为(Behavior)的AI和基于状态(State)的AI,对应的是游戏中常见的术语行为树和状态机。本文大部分内容更偏向于后者。
早年,人工智能并不受游戏开发者重视。一是当时的计算机性能有限,机器无法运行复杂的算法模型,游戏也比较简单,多为休闲娱乐性质的游戏,尤其是“桌上游戏” (board game)。
1952年,A.S. Douglas设计了一款三连棋游戏Tic-Tac-Toe ,两人轮流在一有九格方盘上划加字或圆圈, 谁先把三个同一记号排成横线、直线、斜线, 即是胜者。这款今天看来十分朴素的游戏,被认为是第一款允许机器参与的游戏。
同一时间,IBM 的 Arthur Samuel(被誉为“机器学习之父”)设计了一款可以学习的西洋跳棋程序,能通过观察棋子的走位来构建新的模型,并用其提高自己的下棋技巧。在和这个程序进行多场对弈后,Arthur Samuel发现程序的棋艺变得越来越好。
此后,游戏人工智能的研究多集中在类似的游戏方向,尤其是国际跳棋(Checkers)和国际象棋。这一方向第一次被普通大众关注是在1994年,当年8月加拿大Jonathan Schaeffer教授率团队编写的跳棋程序Chinook Checkers,单挑人类数学家、世界冠军Marion Tinsley,后者在40年职业生涯中只有9负,人称恐怖选手的数学家Marion Tinsley。2007年,国际跳棋的问题已经被机器彻底解决。
这一方向在普通大众心中第一次高光时刻则是在1997年,IBM的Deep Blue深蓝以4:2战胜了国际象棋世界冠军卡斯帕罗夫。虽然最后深蓝 “ 惨遭肢解” ,一半送进史密森尼博物院,另一半归美国计算机历史博物馆,但却给整个世界极大的震撼。
这一方向近期最大的新进展就是AlphaGo。2016年3月,Google旗下DeepMind公司开发的人工智能程序AlphaGo,4:1战胜世界围棋冠军李世石。2017年5月,AlphaGo又以3:0战胜人类排名第一的选手柯杰。
这类游戏都是完美信息下的博弈,即对弈双方都看得见棋盘和走子变化,基础算法是搜索。如果将下棋的每一步看做搜索的一个决策点,搜索过程形成一颗树,树展开每个可能的走子,从中寻找最佳的走法,获取使对方不利己方有利的胜算。这样搜索的空间是很庞大的,寻找最佳走法所需花的时间很长,从三连棋、五子棋、国际跳棋、国际象棋、围棋,搜索的空间依次大幅提升。而人类不断攻克这些难题,背后除了机器算力的提升,也有算法的不断优化与进步。
电子游戏兴起,开发者也开始尝试将人工智能应用到电子游戏中,尤其是第一人称射击游戏 (FPS)和即时策略类游戏(RTS),主要的应用则体现在NPC(非玩家角色)行为控制、虚拟摄像机的决策。
很多人都认为这方面的技术进展比较缓慢,但研究游戏人工智能的马耳他大学副教授 Georgios N. Yannakakis 和纽约大学副教授Julian Togelius 都认为,其实技术的提升一直是在进展的。
《神偷》(Thief ,1998)
《神偷》系列的第一部《神偷:暗黑计划》是由Looking Glass Studios开发的,采用了自研的“Dark”引擎。根据公开的资料,“Dark”引擎虽然在图像方面比不上同一时间的“雷神之锤(Quake)2”或“虚幻(Unreal)”引擎,但在人工智能方面它的水准却远远高于后两者,游戏中的敌人懂得根据声音辨认你的方位,能够分辨出不同地面上的脚步声,在不同的光照环境下有不同的目力,发现同伴的尸体后会进入警戒状态,还会针对你的行动做出各种合理的反应,你必须躲在暗处不被敌人发现才有可能完成任务,这在以往那些纯粹的杀戮游戏中是根本见不到的。《神偷》系列的第二部《神偷II:金属时代》在AI方面又有了进一步的提升。值得一提的是,为了提升游戏的画质,工作人员还牺牲了自己的休假时间来用数码相机拍摄了2000多张纹理素材照片。
《半条命》(Half-Life,1998)
作为FPS经典游戏,《半条命》在技术上的突破可圈可点。 Valve在Quake和Quake II引擎的混合体之上,添加了两个重要的特性:一是脚本序列技术,可以令游戏以合乎情理的节奏通过触动事件的方式让玩家真实地体验到情节的发展,这对于很少注重情节的第一人称射击游戏来说意义重大;第二个特性是对人工智能引擎的改进,《半条命》中敌人的行动与以往相比明显有了更多的狡诈,不再是单纯地扑向枪口。
《黑与白》 (Black and White, 2000)
EA 2000年推出的游戏《 黑与白》在机器学习的运用上也有不少创新与突破。一般来说,游戏中使用机器学习多是使用学习后的“结果”,但《黑与白》则运用了机器学习的“过程”,让AI适应玩家或者模仿玩家。游戏主要使用了增强学习的算法,由玩家扮演反馈提供者的角色,来影响游戏中生物的表现。此外,《黑与白》采用了随机环境贴图、可变更地形、图形渲染、边缘反锯齿消除等软件技术,游戏画面表现力惊人。
《极限竞速》(Forza Motorsport ,2005)
微软推出的《极限竞速》系列在模仿学习的运用上有创新。游戏中的Drivatar™技术是游戏中所有人工智能车手的基础, 通过这一技术,玩家可以培养自己的智能车手,学习玩家的驾驶技术和风格,组建车队进行比赛。
《最高指挥官》(Supreme Commander 2,2010)
《最高指挥官2》早在发布之前,开发商Gas Powered Games就对外透露,《最高指挥官2》中的人工智能将会非常强,使用神经网络,可以不断学习玩家的行为,适应玩家的行动。
PCG (Procedural content generation ,过程自动生成)是程序生成游戏内容的简称,一般使用随机数或者伪随机数的技术,由开发者配置一些生成的规则,然后由生成算法自动去生成游戏世界,从而降低游戏开发的工作量。早年,因为计算机性能较低,PCG的内容也非常简单,多是随机地图,近年来,随着游戏技术的提高、计算机性能的提升,PCG的作用,尤其是在视觉、素材方面的作用也越来越大。
1980 年发售的一款迷宫类 RPG 游戏《Rogue》是最早使用程序生成技术的游戏之一,因此后来还专门衍生出一个专有名词“Rougelike”,这类游戏的地图基本由程序自动生成。
视觉内容生成一直是PCG的重要方向,生成的内容也多种多样。比如《Petalz》中的花、《银河系军备竞赛》(Galactic Arms Race )中的武器、《Audio In Space》 中的武器。这三部游戏中的PCG主要使用了神经网络技术。《虚幻竞技场3》(Unreal Tournament 3) 中武器也使用了PCG技术,但因为同时使用了采用强制搜索策略,生成的效果更优。
近年来《无人深空》(No Man's Sky)、《 幽灵行动 荒野》(Ghost Recon:Wildlands)等都是PCG的代表。其中,最引人关注的是非《无人深空》莫属,这款游戏中从环境、生物、太空船到音乐基本都是由程序自动生成的。
另外《星战:前线》中,几乎所有的建模都是由照片生成的,也是一个重要的创新。为了使游戏画面达到“照片级”的效果,制作组成员"上山下乡",去雨林采集了大量游戏场景的照片,通过Photogrammetry(摄影测量法)这一技术,将照片导入电脑并由制作人员用3D建模还原出照片中的场景。
人工智能的一些其他研究也有在游戏中运用。其中在自然语言处理技术的运用上,2005年发行的第一人称3D游戏《Facade》做了有益的尝试。游戏中,玩家扮演一对婚姻危机中的夫妇的一个朋友,拜访夫妻的寓所,通过输入英语语句与他们交谈,游戏会使用录制好的声音回答,玩家说的话会不同程度地影响这对夫妇的关系——让他们和解或离婚或甚至激怒他们。
本文是我们刚刚开始进行的研究,若有错误欢迎指正 (微信:15300063873),也欢迎补充新的案例。如果你对该话题感兴趣,欢迎与我沟通讨论(syq@36kr.com),也欢迎邮件联系我们申请加入微信讨论群(申请入群请通过邮件流程,注明你的观点和想要加群讨论的理由,直接微信申请恕不通过,敬请谅解)。