浅谈游戏中自动寻路算法的实现与应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
浅谈游戏中自动寻路算法的实现与应用
作者:蒋恺
来源:《中国新通信》 2018年第2期
在信息技术的支持下,互联网进入了迅猛发展期,各种网游、页游大量出现,受到不同玩家的喜爱与青睐。
当然为了逐步扩大受众群,需要不断的优化游戏,满足玩家对游戏的需求,其中自动寻路算法就是十分关键的技术之一,提升了游戏角色在虚拟游戏环境中的灵活性,更利于对游戏角色的控制,是判断游戏质量的重要标准之一”1。
一、关于自动寻路算法的概述
1.1自动寻路算法的原理
在自动寻路算法中最常用的为A*算法,这属于启发式的算法,被广泛应用于游戏中的路径搜索【21。
主要是节点的设置,具有记录、搜索进度的功能,通过节点在游戏地图中移动,当搜寻到目标位置时就结算,否则会进一步搜索记录目标位置周围相邻的位置。
举例而言,游戏角色最初的位置就是开始节点,将要到达的目标位置设置为目标节点,在两者之间存在一定的障碍物和可以顺利通行的路径,黑色部分为障碍物,白色部分为可通行路径,具体如下图1所示:
在设计A*算法时采用的基本原理,其实为最短路径算法,在整个游戏地图中,从起始节点到目标节点的路径多种多样,将这些全部读入到开放式列表中,再通过与目标节点距离最近的节点进行对比,从而找到最优路径”1。
将上图1中的起始节点设置为A,目标节点力B,在计算最优路径节点C时需要在考虑几何距离基础上使用计算公式:
(A—C)2+fB—C)2
在A*算法中通过对各个不同节点的计算,从而找出路径最短最优的节点,但这一算法具有一定的缺陷,很可能要将整个地图上的节点都计算完了才能得出结果,当游戏场景复杂且节点数量过多的话,会大大增加游戏设计制作中的寻路算法的费用。
为此,就要对A*算法进行优化改进,以便扩大应用范围,满足玩家的游戏需求。
1.2自动寻路算法的实现
为了最快的找到游戏地图中的最优路径,需要将游戏场景进行网格划分,让每个网路成为大小相同的正方形,成为游戏中的导航网格,就可以选择一个节点起始位置,进行目标节点位置的广度搜索,在确定区域后在计算最佳路径。
一般来说,网格可以划分为10×10或是
100×100,但通过实践发现10×10网络寻路速度最快、开销小、精度最高,因此可以利用
10×10寻出路径,再将其映射到100×100网格中,按照10×10寻找出的起始点节点为模板,循环寻路,不仅长度减小还能节约时间【41。
同时可以利用位掩码来表示不同的正方形,其中0代表开关开,1代表开关开,一个开关表示一个特定的图,在自动寻路时就能结合起始点和目标点酌坐标来快速确定目前的位置,处于哪一正方形中,再确定导航网格,能大大减少最优路径搜索空间和定位时间。
在进行路径搜索时,需要解决的是路径的长度、陡峭度等,用以判断路径的难易程度,当然鉴于游戏地图中不同地形的代价不一样,需要采用不同的代价因子,适合用在较为复杂的游戏场景中进行寻路。
因此关于A*算法的优化实现,可以从不同角度进行探讨,主要的优化方法集中在排序算法、启发函数选择、多层面A*算法上。
二、自动寻路算法在游戏和现实生活中的具体应用
随着游戏自动寻路A*算法的不断优化,会大大增加游戏角色在游戏场景中角色的智能性,
变得更加灵活,增添游戏趣味,被应用在各种大小型游戏中。
通常简单的动作型电子小游戏,
玩家对其效果要求不高,只是用于打发时间的手段,因此在设计时,侧重游戏人物寻路、闪避、跟踪等不同行为的设计,特别是游戏中的NPC -般局限在一定的区域范围内活动,只有当玩家
进入该区域后,NPC才会展开攻击、躲避等行为。
而实现这一游戏效果的自动寻路算法主要涉
及到随机寻路、追踪、闪避算法,较为简单。
对于大型电子游戏来说,玩家的要求更高,从音效、视觉到任务角色需要精益求精,尤其
是游戏角色都需要更加的人性化、智能化,这是衡量游戏质量的关键。
通过对大型游戏中角色
行为的研究发现他们要实现攻击、躲避、寻路、转向、跳跃等人性化的行为,同时还要实现虚
拟空间感知‘5]。
因此在这里使用到的寻路算法涵盖角色行为、脑思维、NPC物理模型、NPC代理、NPC角色感知等。
A*算法需要对游戏中的NPC物理模型进行大量的信息数据搜索,并结合
详细的命令列表选择适当的执行行为,将其传输给NPC代理。
基于游戏中的自动寻路算法,也被广泛的应用到现实生活中,其中最显著的现实中的地图
导航,能通过道路网格划分进行最优路径寻找,在众多路径中找出最短路径,为人们的日常出
行提供了较大便利。
同时在建筑中也常常出现自动寻路A*算法的应用,通过初始点和目标点间
的路径搜索,计算出代价最小的路径,不仅能最大程度的提高工作效率,还能降低成本支出,
一举两得。
三、结语
综上所述,游戏中的自动寻路算法还在不断的优化改进,不仅能有效的提高游戏的质量,
还能扩大自动寻路算法的应用范围,为人们的日常生活带来更多便利。