讨论下,RTS网络的寻路系统

lj56456311 2011-12-12 09:30:20
先说下条件:
1.每个单位之间都存在碰撞
2.不考虑多线程
3.每个单位造成的阻挡范围不一样
4.一方玩家至少50单位,最高不过200单位

希望大家说说自己的想法
...全文
246 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
rineo0621 2012-02-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 baesky 的回复:]
引用 2 楼 worldtester 的回复:

Astar呗
只不过Astar对动态阻挡物的效果不太流畅.
我想优化一下Astar应该可以弥补.

简单想了一下,比如当单位计算好路径,在移动中时当前点的下一点碰到了动态阻挡物.这时最直接的解决办法就是停止移动,并从该点重新计算一遍路径,当然这样还是很费时间,可以在添加每一个新节点时和其余节点判断,如果节点信息重复,那么结束计算然后将新……
[/Quote]

RTS游戏地图大小是有局限的 而且你可以优化astar 比如拉大寻路步长 当然这样会损失精度达到提高效率的目的
Baesky 2012-01-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 worldtester 的回复:]

Astar呗
只不过Astar对动态阻挡物的效果不太流畅.
我想优化一下Astar应该可以弥补.

简单想了一下,比如当单位计算好路径,在移动中时当前点的下一点碰到了动态阻挡物.这时最直接的解决办法就是停止移动,并从该点重新计算一遍路径,当然这样还是很费时间,可以在添加每一个新节点时和其余节点判断,如果节点信息重复,那么结束计算然后将新计算的路径加到重复之前的节点就可以了
当然实现应该……
[/Quote]
a星慢到爆,谁用谁知道.
WorldTester 2012-01-09
  • 打赏
  • 举报
回复
Astar呗
只不过Astar对动态阻挡物的效果不太流畅.
我想优化一下Astar应该可以弥补.

简单想了一下,比如当单位计算好路径,在移动中时当前点的下一点碰到了动态阻挡物.这时最直接的解决办法就是停止移动,并从该点重新计算一遍路径,当然这样还是很费时间,可以在添加每一个新节点时和其余节点判断,如果节点信息重复,那么结束计算然后将新计算的路径加到重复之前的节点就可以了
当然实现应该很容易,只需要在执行最终路径的每一个节点之前检测一下碰撞
Baesky 2011-12-12
  • 打赏
  • 举报
回复
不考虑多线程等于卡死。
N个单位间的碰撞检测时间是O(n^2).

8,304

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧