游戏引擎最短路径搜索方法、游戏引擎系统技术方案

技术编号:10758797 阅读:171 留言:0更新日期:2014-12-11 14:09
本发明专利技术揭示了一种游戏引擎最短路径搜索方法及游戏引擎系统,最短路径搜索方法包括如下步骤:第一步:把起始点添加到Open表;第二步:考察Open表:2l)如果Open表为空,则寻路失败;寻找Open表中f值最低的节点作为当前节点,并把它移入Closed表中,转向第三步;22)如果当前点为终点,则寻路成功,转向第四步;第三步:对相邻的8个方向的每个节点进行相应操作;第四步:保存路径;根据Closed表以及父节点表提供的信息,由目标节点开始,根据其父指针向后回溯,从而得到一条源点到目标节点的路径。本发明专利技术提出的游戏引擎最短路径搜索方法,可提高搜索效率及精确地。本发明专利技术通过增加一个父节点表避免走弯路的现象,保证最优路径的提取。

【技术实现步骤摘要】
【专利摘要】本专利技术揭示了一种游戏引擎最短路径搜索方法及游戏引擎系统,最短路径搜索方法包括如下步骤:第一步:把起始点添加到Open表;第二步:考察Open表:2l)如果Open表为空,则寻路失败;寻找Open表中f值最低的节点作为当前节点,并把它移入Closed表中,转向第三步;22)如果当前点为终点,则寻路成功,转向第四步;第三步:对相邻的8个方向的每个节点进行相应操作;第四步:保存路径;根据Closed表以及父节点表提供的信息,由目标节点开始,根据其父指针向后回溯,从而得到一条源点到目标节点的路径。本专利技术提出的游戏引擎最短路径搜索方法,可提高搜索效率及精确地。本专利技术通过增加一个父节点表避免走弯路的现象,保证最优路径的提取。【专利说明】游戏引擎最短路径搜索方法、游戏引擎系统
本专利技术属于计算机软件及游戏
,涉及一种路径搜索方法,尤其涉及一种游戏引擎最短路径搜索方法;同时,本专利技术还揭示一种利用了上述最短路径搜索方法的游戏引擎系统。
技术介绍
现代的计算机游戏通过综合图形的、物理的和人工智能的方法来达到游戏的真实感。真实感游戏体验是很难确切定义其内涵的,但一般来说,这通常指游戏的沉浸感以及游戏中出现的非玩家角色的智能性。过去几年中,游戏中的图形技术和物理特性模拟技术都取得了很大的进展。实际上,图形开发包,如Maya和3DsMax带来的令人瞳目的图形已经是一件普通的事了。物理特性模拟开发包,如Havok可以使开发人员创造出完全真实的世界。但是,对图形技术和物理特性模拟技术的应用已经不足使一个游戏具有独特性了。所以,游戏开发人员需要寻找使自己游戏进一步异化的创新。因为游戏人工智能没有像图形技术和物理模拟技术那样取得巨大的发展,所以它提供了一个游戏创新和异化的空间。 现有的路径搜索算法主要有解析算法和启发式算法两种,分别以Dijkstra算法和A*算法作为两类算法的典型。由于解析算法在计算速度、规模等方面的局限性,随着计算机运行速度的提高,启发式算法逐渐发展成为路径搜索算法的核心,除了 A*算法以外,国内外研究者还在此基础上逐渐发展了许多其它智能算法,包括IDA*算法、D*算法等,它们的基本原理都借鉴了 A*算法中的估价函数思想。目前,游戏业界的标准是使用A*算法或IDA*算法,A*算法一般要快一些,而IDA算法则比A*算法要使用更少的内存。 有鉴于此,如今迫切需要设计一种新的游戏路径搜索方法,以便克服现有搜索方法的上述缺陷。
技术实现思路
本专利技术所要解决的技术问题是:提供一种游戏引擎最短路径搜索方法,可提高搜索效率及精确度。 此外,本专利技术还提供一种利用了上述最短路径搜索方法的游戏引擎系统,可提高游戏引擎系统中搜索效率及精确度。 为解决上述技术问题,本专利技术采用如下技术方案: 一种游戏引擎最短路径搜索方法,所述方法包括如下步骤: 第一步:把起始点添加到Open表; 第二步:考察Open表: 21)如果Open表为空,则寻路失败;寻找Open表中f值最低的节点作为当前节点,并把它移入Closed表中,转向第三步; 22)如果当前点为终点,则寻路成功,转向第四步; 第三步:对相邻的8个方向的每个节点进行如下操作; 31)如果该节点不可通过或者已经在Closed表中,略过; 32)如果该节点不在Open表中,把它添加进去,并把该节点的父指针指向当前节点,并记录它的f值,g值和h值;f值即f (η),为结点η的估价函数;g值即g (η),为状态空间中从初始点到η结点的实际代价;h值即h(n),为从η到目标节点最佳路径的估计代价; 33)如果该节点已经在Open表中,用g值作为参考检查新的路径是否更好,即有更低的g值;如果是这样,把这个节点的父节点改成当前点,并且重新计算该点的g和f值; 34)如果8个方向检查完毕,则转向第二步;否则,转向第三步; 第四步:保存路径;根据Closed表以及父节点表提供的信息,由目标节点开始,根据其父指针向后回溯,从而得到一条源点到目标节点的路径。 作为本专利技术的一种优选实施方式,所述游戏引擎系统包括:地图编辑器、消息处理系统、场景显示及行走系统; 所述地图编辑器用以制作的场景所需要的图块的排列顺序; 所述消息处理系统用以等待消息,然后根据收到的消息转到相应的函数进行处理; 所述场景显示及行走系统包括背景显示模块、行走模块、事件发生模块;所述背景显示模块用以在程序运行后,先读取地图编辑器制作的场景所需要的图块的排列顺序,按照排列顺序将图象拼成一个完整的场景;所述行走模块用以控制角色在场景中行走;所述行走模块包括最短路径搜索单元,用以搜索让人物从目前的位置走到目标位置应该走最短的路径;所述事件发生模块用以把相应事件的序号存储在地图的某些格子中,当主角一踏入这个格子就会触发对应事件。 一种游戏引擎系统,所述游戏引擎系统包括:地图编辑器、消息处理系统、场景显示及行走系统; 所述地图编辑器用以制作的场景所需要的图块的排列顺序; 所述消息处理系统用以等待消息,然后根据收到的消息转到相应的函数进行处理; 所述场景显示及行走系统包括背景显示模块、行走模块、事件发生模块; 所述背景显示模块用以在程序运行后,先读取地图编辑器制作的场景所需要的图块的排列顺序,按照排列顺序将图象拼成一个完整的场景; 所述行走模块用以控制角色在场景中行走;所述行走模块包括最短路径搜索单元,用以搜索让人物从目前的位置走到目标位置应该走最短的路径; 所述事件发生模块用以把相应事件的序号存储在地图的某些格子中,当主角一踏入这个格子就会触发对应事件; 所述最短路径搜索单元的最短路径搜索方法包括如下步骤: 第一步:把起始点添加到Open表; 第二步:考察Open表: 21)如果Open表为空,则寻路失败;寻找Open表中f值最低的节点作为当前节点,并把它移入Closed表中,转向第三步; 22)如果当前点为终点,则寻路成功,转向第四步; 第三步:对相邻的8个方向的每个节点进行如下操作; 31)如果该节点不可通过或者已经在Closed表中,略过; 32)如果该节点不在Open表中,把它添加进去,并把该节点的父指针指向当前节点,并记录它的f值、g值和h值;f值即f (η),为结点η的估价函数;g值即g (η),为状态空间中从初始点到η结点的实际代价;h值即h(n),为从η到目标节点最佳路径的估计代价; 33)如果该节点已经在Open表中,用g值作为参考检查新的路径是否更好,即有更低的g值;如果是这样,把这个节点的父节点改成当前点,并且重新计算该点的g和f值; 34)如果8个方向检查完毕,则转向第二步;否则,转向第三步; 第四步:保存路径;根据Closed表以及父节点表提供的信息,由目标节点开始,根据其父指针向后回溯,从而得到一条源点到目标节点的路径。 作为本专利技术的一种优选实施方式,所述地图编辑器用以制定一个场景构成文件的格式,在这个文件里记录构成场景所需要的图块的排列顺序,为每个图块建立索引,记录各个场景需要的索引信息。 作为本专利技术的一种优选实施方式,一个场景包括:地面,建筑和植物,家具摆设,和在场景中活动的人物或者本文档来自技高网
...

【技术保护点】
一种游戏引擎最短路径搜索方法,其特征在于,所述方法包括如下步骤:第一步:把起始点添加到Open表;第二步:考察Open表:2l)如果Open表为空,则寻路失败;寻找Open表中f值最低的节点作为当前节点,并把它移入Closed表中,转向第三步;22)如果当前点为终点,则寻路成功,转向第四步;第三步:对相邻的8个方向的每个节点进行如下操作;3l)如果该节点不可通过或者已经在Closed表中,略过;32)如果该节点不在Open表中,把它添加进去,并把该节点的父指针指向当前节点,并记录它的f值、g值和h值;f值即f(n),为结点n的估价函数;g值即g(n),为状态空间中从初始点到n结点的实际代价;h值即h(n),为从n到目标节点最佳路径的估计代价;33)如果该节点已经在Open表中,用g值作为参考检查新的路径是否更好,即有更低的g值;如果是这样,把这个节点的父节点改成当前点,并且重新计算该点的g和f值;34)如果8个方向检查完毕,则转向第二步;否则,转向第三步;第四步:保存路径;根据Closed表以及父节点表提供的信息,由目标节点开始,根据其父指针向后回溯,从而得到一条源点到目标节点的路径。

【技术特征摘要】

【专利技术属性】
技术研发人员:李保印
申请(专利权)人:西安闻泰电子科技有限公司
类型:发明
国别省市:陕西;61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1