论文部分内容阅读
网络游戏是一个生命力和活力都很强的产业。中国的网络游戏产业在日益繁荣的同时,也面临着产品同质化严重、人才短缺等发展瓶颈。一款游戏想要从激烈的竞争中脱颖而出,就要兼备挑战性和趣味性。而游戏AI(ArtificialIntelligence,人工智能)对二者具有决定性的影响。本文旨在提供一个通用的AI引擎。一方面缩短AI的开发时间,降低游戏的生产成本;另一方面使得游戏开发者有更多的精力和时间设计游戏情节,从而提高游戏的趣味性和挑战性。
根据游戏中NPC(Non-Playcr-Controllod Character,非玩家控制角色)、PDC(Player-Drivicd Character,玩家驱动的角色)、PC(Player Character,玩家控制的角色)三种角色的行为特点,本文在AI引擎中集成了逻辑控制、任务分配、行为控制、群体行为控制、寻路等功能。其中逻辑控制通过脚本化的FSM(FiniteState Machine,有限状态自动机)实现,Lua作为脚本语言。
在寻路模块本文提出了五种寻路算法:固定路径的查表法、导航网格的A*算法、导航网格的B*算法、障碍物地图的A*算法、障碍物地图的B*算法等。障碍物地图是室外场景分析法产生的地图。导航网格是3D场景中常用的一种场景分析方法;而室外场景分析法则是本文提出的一种只记录障碍物数据的分析方法。
最后本文将AI引擎与Trinigy游戏引擎结合以便对AI引擎的功能进行测试。在测试游戏中,NPC能够自动进行感知、行动;任务分配机制能够选择最合适的PDC执行玩家任务;玩家划定群体后,群体内角色能够逐渐聚拢到一起。查表法和A*算法能找到最短路径,而B*算法的寻路效率更高。另一方面,寻路实验的结果表明障碍物地图上的寻路明显快于导航网格上的寻路。
本文提出的AI引擎很大程度地保证了其功能性和通用性。在脚本中实现游戏的逻辑控制,使得AI引擎不受游戏情节的限制,同时又减轻了开发程序员的工作量;寻路算法中查表法适用于固定路径,其它算法适用于无路径限制场景,使得AI引擎不受角色活动范围的限制;A*算法精确,B*算法快速,可以满足不同的寻路需求。