MMO寻路和碰撞检测讨论
来源:互联网 发布:java参数构造 编辑:程序博客网 时间:2024/05/16 06:44
MMO寻路的各种实现方式:
服务端执行寻路,客户端纯粹表现。
客户端执行寻路,服务端验证结果(可能抽样验证)。
客户端和服务端都执行寻路,并保证同步。
如果NPC需要寻路,服务端就必须有寻路功能。
Unity本身的设计不适合用于MMO服务端,而一般公司也很难取得源码再实现相同的寻路规则。
如果服务端就必须有寻路功能或验证功能,建议不要使用Unity本身的寻路功能。可以选择自行开发或使用一些中间件如PathEngine、Autodesk Navigation
-----------------------------------------------------------------------------------------------------------------------------------------
寻路和战斗逻辑的物理碰撞肯定放server,因为client的本地数据和发的包都是不可信的。
导航网格是很成熟的技术,服务端实现一套符合项目需要的只需要一个程序员不到一个周的时间就能搞定。
物理引擎的话也需要根据项目定位来决定是自己搞一套简单的还是稍微复杂点的。我在的项目服务端用bullet已经绰绰有余了,还需要裁剪掉很多功能。
client需要的是位置的同步和状态的同步,server侧寻路的流程和碰撞检测的逻辑,对client透明。
-----------------------------------------------------------------------------------------------------------------------------------------
客户端的做法肯定服务器端也得做简单的验证,一般会为服务器生成简单的导航地形网格,客户端会根据寻路数据包括什么方向速度之类的发给服务器,服务器会简单验证是否合法,不合法则直接让他回退
也有的做法是在服务器端寻路,这样的话只要广播位置就行了。
服务端执行寻路,客户端纯粹表现。
客户端执行寻路,服务端验证结果(可能抽样验证)。
客户端和服务端都执行寻路,并保证同步。
如果NPC需要寻路,服务端就必须有寻路功能。
Unity本身的设计不适合用于MMO服务端,而一般公司也很难取得源码再实现相同的寻路规则。
如果服务端就必须有寻路功能或验证功能,建议不要使用Unity本身的寻路功能。可以选择自行开发或使用一些中间件如PathEngine、Autodesk Navigation
-----------------------------------------------------------------------------------------------------------------------------------------
寻路和战斗逻辑的物理碰撞肯定放server,因为client的本地数据和发的包都是不可信的。
导航网格是很成熟的技术,服务端实现一套符合项目需要的只需要一个程序员不到一个周的时间就能搞定。
物理引擎的话也需要根据项目定位来决定是自己搞一套简单的还是稍微复杂点的。我在的项目服务端用bullet已经绰绰有余了,还需要裁剪掉很多功能。
client需要的是位置的同步和状态的同步,server侧寻路的流程和碰撞检测的逻辑,对client透明。
-----------------------------------------------------------------------------------------------------------------------------------------
客户端的做法肯定服务器端也得做简单的验证,一般会为服务器生成简单的导航地形网格,客户端会根据寻路数据包括什么方向速度之类的发给服务器,服务器会简单验证是否合法,不合法则直接让他回退
也有的做法是在服务器端寻路,这样的话只要广播位置就行了。
0 0
- MMO寻路和碰撞检测讨论
- 碰撞检测算法:点和矩形碰撞、矩形碰撞
- 碰撞检测算法:点和矩形碰撞、点和圆形碰撞、矩形碰撞、圆形碰撞
- 碰撞检测算法:点和矩形碰撞、点和圆形碰撞、矩形碰撞、圆形碰撞
- 碰撞检测算法:点和矩形碰撞、点和圆形碰撞、矩形碰撞、圆形碰撞
- 碰撞检测算法:点和矩形碰撞、点和圆形碰撞、矩形碰撞、圆形碰撞
- 碰撞检测算法:点和矩形碰撞、点和圆形碰撞、矩形碰撞、圆形碰撞
- Unity 碰撞检测和射线
- Unity触发检测和碰撞检测
- UE4碰撞检测、自动寻路、追踪及小电梯
- 碰撞检测
- 碰撞检测
- 碰撞检测
- 碰撞检测
- 碰撞检测
- 碰撞检测
- 碰撞检测
- 碰撞检测
- 【计算机网络原理——爱你这么简单】
- JAVA实现MD5文件校验
- int main(int argc,char* argv[])详解
- (java)leetcode-7
- Java中Class类详解、用法以及泛化
- MMO寻路和碰撞检测讨论
- NCSS.PASS.2008.v8.0.13-BEAN\
- 被动信息收集之RECON-NG
- [勇者闯LeetCode] 6. ZigZag Conversion
- 初用AndroidStudio的一些基本设置(图示)
- C函数学习
- Unity插件之-Dynamic Navigation系统寻路扩展插件
- 猜数字小游戏
- 内联函数