社区
游戏开发
帖子详情
关于即时战略游戏中的即时寻路问题
Swordsp
2001-03-30 04:37:00
像星际这样的游戏中,经常出现很多运动单位同时行进的情况,那么,怎样保证每个单位的行走路线尽可能最优呢?
由于战场是不断变化的,所以每个单位在行进间都要即时修正路线,所以预先计算好是不大可能的。但是即时运算时间上开销太大,游戏速度承受不了吧?
那么到底是什么算法呢?请教各位高手!
...全文
199
10
打赏
收藏
关于即时战略游戏中的即时寻路问题
像星际这样的游戏中,经常出现很多运动单位同时行进的情况,那么,怎样保证每个单位的行走路线尽可能最优呢? 由于战场是不断变化的,所以每个单位在行进间都要即时修正路线,所以预先计算好是不大可能的。但是即时运算时间上开销太大,游戏速度承受不了吧? 那么到底是什么算法呢?请教各位高手!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Crazy_Abyss
2001-06-21
打赏
举报
回复
请教wyy:如果同一军团的单元处于不同地域,如何处理?换句话说,各单元怎样就近分组组队?
wyy
2001-06-21
打赏
举报
回复
军团算法.由队列算法和路径算法组成.
wyy
2001-06-21
打赏
举报
回复
组队模式将成为主流.星际的AI属于单兵AI.
oliver_liyei
2001-06-21
打赏
举报
回复
不难,如果行动时撞到物体我们可以先判断那个物体是否在运动,如果运动我们可以等一会儿在走
最设置一下最长的等待时间,如果不是我们可以绕过它然后在回到原始的路径
duoshute
2001-06-12
打赏
举报
回复
C&C的好像是即时计算的,而且是碰到障碍物后往某个方向调整
但是还有一个问题,就是在一条很窄的通道中,两个方向的部队流怎样互让,(就是怎样疏通塞车现象)
Swordsp
2001-04-13
打赏
举报
回复
如果没有障碍物当然好办,可是许多时候都需要南辕北辙的,那又怎么处理呢?
似乎一般游戏中并不是发现走不下去了才掉头的。
gamedragon
2001-04-07
打赏
举报
回复
它不是每次都重新计算路径,而是选定大方向后,在这个方向的基础上再进行修正。《帝国》这类游戏肯定不是全地图运算的,那个什么可视区域不光是给我们添麻烦的,也为他自己简化计算量。
对于可是范围内的活动单位,我想可能就是一个不断检测对方运动方向,不断修正自己运动方向的过程。
Swordsp
2001-04-06
打赏
举报
回复
云风工作室那篇文章我看过,A*算法我也知道,但是那篇文章里也说了,这只适合于静态寻路,对于即时战略游戏这样上百个单位同时移动的情况并不合适。
我自己也估计过了,如果每次简单的按照A*算法即时计算的话,假设地图是256*256,100个单位同时大范围移动,每次计算平均需要执行10^8条语句(如果是最坏情况,要执行超过10^10条语句),只怕是达不到即时战略游戏的速度要求的。
所以我觉得这里一定有一些特殊的处理技巧。
monkey79
2001-04-03
打赏
举报
回复
有谁是搞平面设计的,可以与你交流交流吗?
monkey5258@china.com
gamedragon
2001-03-30
打赏
举报
回复
不要低估CPU的计算能力,就是即时算出来的。
《帝国时代》用的好像是A*算法,云风工作室就有介绍。http://member.netease.com/~cloudwu/
尚未完成的
即时
战略
游戏
引擎
尚未完成的
即时
战略
游戏
引擎,带有
游戏
编辑和测试窗口,使用DirectX7以上.带音效,BGM,鼠标操作,Ctrl+数字可以编组,
寻路
系统尚未完美.
VB
游戏
展现自动
寻路
算法.rar
自己写的VB
即时
战略
小
游戏
,自动
寻路
模块:你可以任意使用,复制和传播该模块,但请不要更改下面的内容, 工作原理:首先生成8个方向的节点,tmp(tmpe)用于记录生成的节点对应的节点号新生成的节点的指针(d1 -表示离开起始点的 距离)指向生成他的父节点,按该点到目的地的大小nude(i).d2 排序后加入opened列表,, (opened 总是指向离 目的地最近的点)然后再从opened表
中
取出一个节点,生成新的节点,按8个方向生成新的节点,如果要生成的节点 已经存在(在tmp(tmpe)
中
)就比较以下,改节点的 d1值 重新修改 父节点指针,如果达到目的地就返回 节点的序号值,如果目的地不能到达就选出,一个距离目的地最近的点做为目的地,如果起始点8个方向都不能动,就返回一个false 值。姓名 张林。
MMORPG打造AStar
寻路
导航系统
C#
游戏
开发基础知识Unity3D基础知识Unity3D2D
游戏
开发基础Unity3D独立
游戏
开发入门
a_game_road_find.rar_mapx_动态
寻路
_
寻路
算法_
游戏
寻_移动节点距离
A*算法是一个求最短路径的函数,为许多
即时
战略
游戏
所用刀(或许人家大型的
即时
战略
游戏
笔者算法更好,不管它)。它由两个函数组成,一个是评估函数,也就是确定人物移动的下一个位置必须离目标位置最近,评估函数评估的结果越精确,则寻径的速度越快;另一个就是寻径函数,也就根据评估的结果做出响应,然后从新位置继续评估下一个位置,若无路可走(四周都是障碍什么的),那么折回一个路径节点,尝试其他方向,这个算法有个缺点,随着
游戏
中
人物增多,相应的处理节点就增多了,会影响处理速度,而且占用大量的内存。 有兴趣的朋友可以改成动态的寻径,就是当入口和出口位置都在变化的时候进行寻径,这个代码也只有200多行。 我的算法还不能算是最优的,因为评估函数只不过是简单的测试两点距离(这会带来误差),选择离出口最短的且非障碍物的方向,进行下一个路径节点的移动。
即时
战略
DEMO
中
的A星算法与最近点查找
一个烂尾的
即时
战略
游戏
,内置了行军的简单阵型排布和高效A星
寻路
算法,通过二叉堆数据结构优化了A星搜索时间,属于个人早期的作品,现在拿来分享,基于HGE引擎,工程正常情况下应该可以通过编译并运行
游戏开发
8,304
社区成员
23,682
社区内容
发帖
与我相关
我的任务
游戏开发
游戏开发相关内容讨论专区
复制链接
扫一扫
分享
社区描述
游戏开发相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章