本文源自 学翼启 微信公众号 转载请注明出处
我们玩游戏,主要是为了得到一种放松、一种享受、以及在现实生活中无法得到的一种快感。这需要游戏能制作得符合玩家的口味,游戏的主题能够吸引玩家深入,游戏的规则和结果能够使得玩家满意。而在这一切中,人工智能技术扮演了相当重要的角色。
人工智能已经逐步进入到我们的生活,而在游戏中,人工智能技术又是如何得到应用的呢?本期我们就一起来聊聊关于游戏中人工智能的设计方法。
一、游戏中的人工智能
●人工智能定义的不同标准
●人工智能在游戏业的现状
●游戏人工智能的设计目的
1、人工智能定义的不同标准
学术界对AI的研究,注重的是内部机制。因为学术研究的目的是事物内部运行机制,不断地改进算法,使得内部结构趋于合理。
游戏AI基本是AI学术研究的第4个研究方向,即理性行为领域。
2、人工智能在游戏业的现状
近几年游戏AI的发展迅速。在1997年还只有24%的制作组里有专职的AI程序员,而到了2000年,约有80%的制作组都有1名以上的专职AI程序员。
3、游戏人工智能的设计目的
二、人工智能设计
1、有限状态设计
●有限状态设计(Finite State Machine,缩写为FSM)是具有一定数量的状态和状态转换的计算机模型。
●有限状态设计是游戏业所使用最普遍的技术,多用于动作、冒险、角色扮演类等第三人游戏。
2、模糊状态设计
FSM虽然有很多优点,但它有个致命的弱点:只能处理确定性的情况。使用FSM建立的NPC的行为系统过于规范,很容易被玩家识破。于是人们想到了是否能把不确定性引入NPC的行为系统中。于是另一种方法应运而生,这就是模糊状态机(Fuzzy
State Machine,缩写为FuSM)。
FuSM的基本思想就是在FSM基础上引入不确定性。
3、可拓展性AI
可扩展性AI的鼻祖是QuakeC。它是由PC游戏业里最有名的程序员John
Carmack设计的一种脚本语言工具,几年前随着《Quake》游戏一同推出。
以脚本语言工具为代表的可扩展性AI技术,最大局限性是玩家需要有一定的编程能力。
●AI编程工具●AI技术专题
(1)AI编程工具
法国MASA公司的DirectIA是一个基于代理技术的SDK。这套SDK可以用来生成自主代理或自主代理群体,从而使游戏中的角色具有一定的自主学习性和适应性,使它们可以具有感知能力和反应能力。
另外一个很有名的产品就是Motion Factory公司的Motivate。这是一个从机器人技术和实时控制技术的研究成果中转化来的AI
SDK。
(2) AI技术专题
●《半条命》中的AI技术应用层出不穷。
●《The Sims》中采用的面向对象技术。
三、玩家与AI之间的关系
●玩家和AI是否需要同样对待
▶玩家和游戏AI之间天生处于不平等地位。
●是否需要绝对的真实
▶如果游戏NPC足够聪明,他当然能够意识到自己没有机会战胜玩家,他就应该把自己锁在安全的坑道,不主动打开门而悄悄的进行埋伏,这样的做法无疑是最明智的。
▶如果玩家控制的角色在游戏中受到的伤害达到一定程度,玩家一定会让角色逃离战场或者试图进行恢复,如果NPC这么做,那么玩家就不得不进行追杀,玩家杀死他就十分困难。这种结果就使得游戏要么像一个埋伏式的较量,要么像比赛追逐的游戏,两种情况无疑都比较无聊。
四、人工智能的编写
【案例】
人工智能文档的编写过程
首先定义一个NPC的行动范围,包括如下4种:
视野范围
说明:是指NPC发现目标的有效警戒范围,是一个由视野半径形成的圆形区域。
逃跑范围
说明:是指NPC脱离目标的有效移动范围,是一个以逃跑半径形成的圆形区域。
远战攻击范围
说明: 是指允许NPC发动远战攻击的范围,是一个以远战攻击距离为半径的圆形区域。
近战攻击范围
说明:是指允许NPC发动近战攻击的范围,是一个以近战攻击距离为半径的圆形区域。
▶NPC视野AI流程图
▶NPC技能AI流程图
▶NPC数据表
小结:
一款电子游戏中人工智能设计的好坏会直接影响到游戏的可玩性。如何在现有技术水平的基础上加入更多、更新颖的人工智能是摆在电子游戏设计人员面前的又一课题,只有真正理解人工智能与玩家之间的关系,在游戏中充分考虑玩家的需求,才能最终设计出被玩家接受的优秀的游戏产品。