游戏开发论坛

 找回密码
 立即注册
搜索
查看: 5592|回复: 9

3d游戏寻路设计,客户端进行寻路,怎样在后端高效的验证这条

[复制链接]

1

主题

7

帖子

27

积分

注册会员

Rank: 2

积分
27
发表于 2017-2-24 15:19:36 | 显示全部楼层 |阅读模式
假设客户端直接用navmesh的数据寻路,不映射到2d上,现在客户端已经完成了寻路并经过了平滑处理,然后向后端发送经过平滑处理的后的路径关键点坐标.服务器端怎么能高效的判定这些点组成的路径是一条合法的路径呢(假设这条自动寻路路径很长,有很多个关键点坐标)

3维地图中.假设客户端用unity3d导出来的navmesh数据进行寻路后平滑处理后的结果(关键拐点坐标)传送给后端,后端拥有同样的navmesh地图信息,后端怎么能够高效并准确的检测这条路径信息时候合法,没有被篡改或者是寻路错误的情况.


1

主题

7

帖子

27

积分

注册会员

Rank: 2

积分
27
 楼主| 发表于 2017-2-24 16:38:49 | 显示全部楼层
用鼠标点击进行寻路的那种游戏,假设地图信息比较复杂,有楼梯,有起伏的地面,这种地图的碰撞验证放在服务器端的话会不会有很大开销

1

主题

88

帖子

468

积分

中级会员

Rank: 3Rank: 3

积分
468
发表于 2017-3-2 09:51:38 | 显示全部楼层
NAVMESH算法本质也和A*区别不大啊,如果不做两个可移动单位的碰撞检测的话,开销很小。ARPG类的多数是需要后端来实现寻路的。
但是要自己实现一个3D地图映射到服务器mesh网格,适合自己的寻路算法的,还是要花不少时间的,有些引擎都帮你做好了。如果小团队要搞MMO ARPG,建议研究下kbengine

43

主题

298

帖子

1510

积分

金牌会员

Rank: 6Rank: 6

积分
1510
发表于 2017-3-2 12:05:40 | 显示全部楼层
做预处理,将不可走区域全标为阻挡,确保无阻档之间是可达的,服务器只保留2d格式的阻档,对于起始和目的坐标进行阻挡评估,再对行走路径的长度、时间做判断,合理则通过。

1

主题

7

帖子

27

积分

注册会员

Rank: 2

积分
27
 楼主| 发表于 2017-3-31 10:28:55 | 显示全部楼层
那如果只在服务器端游戏地图内验证两点之间是否可达,不寻路就是单纯的验证线段是否与不可行走区域相交.
如图
C:\Users\dell\Desktop\like this.png
想要一种比较高效的方式,用什么方式存储这些不可行走的边界可以方便快捷的查询这些边界信息.

1

主题

7

帖子

27

积分

注册会员

Rank: 2

积分
27
 楼主| 发表于 2017-3-31 10:31:13 | 显示全部楼层
askforone 发表于 2017-3-2 09:51
NAVMESH算法本质也和A*区别不大啊,如果不做两个可移动单位的碰撞检测的话,开销很小。ARPG类的多数是需要 ...

感谢您的回复
我去研究下

1

主题

7

帖子

27

积分

注册会员

Rank: 2

积分
27
 楼主| 发表于 2017-3-31 10:32:36 | 显示全部楼层
ten 发表于 2017-3-2 12:05
做预处理,将不可走区域全标为阻挡,确保无阻档之间是可达的,服务器只保留2d格式的阻档,对于起始和目的坐 ...

也就是说要将navmesh的地图映射成2d grid的地图然后做判断么

1

主题

88

帖子

468

积分

中级会员

Rank: 3Rank: 3

积分
468
发表于 2017-3-31 13:31:35 | 显示全部楼层
橘桔橘桔 发表于 2017-3-31 10:32
也就是说要将navmesh的地图映射成2d grid的地图然后做判断么

mesh就是mesh,映射成2D还寻什么路。。。去搜下navmesh算法,文章一堆,源码也不少

1

主题

7

帖子

27

积分

注册会员

Rank: 2

积分
27
 楼主| 发表于 2017-3-31 14:11:48 | 显示全部楼层
askforone 发表于 2017-3-31 13:31
mesh就是mesh,映射成2D还寻什么路。。。去搜下navmesh算法,文章一堆,源码也不少 ...

嗯,我已经用navmesh的数据完成了寻路了,现在想的是验证问题,打算把寻路放在客户端,然后客户端向服务器端传送关键点,服务端只需要判断这些关键点依次连线组成的路线是否可达,现在用的是遍历的方式,和给地图做索引的方式,但是时间上感觉还是有点慢

6

主题

59

帖子

187

积分

注册会员

Rank: 2

积分
187
发表于 2017-10-21 19:15:58 | 显示全部楼层
这个完全可以靠数学拓扑学知识写算法完成。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2024-4-24 08:15

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表