MMO寻路和碰撞检测讨论

MMO寻路的各种实现方式:
服务端执行寻路,客户端纯粹表现。
客户端执行寻路,服务端验证结果(可能抽样验证)。
客户端和服务端都执行寻路,并保证同步。
如果NPC需要寻路,服务端就必须有寻路功能。
Unity本身的设计不适合用于MMO服务端,而一般公司也很难取得源码再实现相同的寻路规则。
如果服务端就必须有寻路功能或验证功能,建议不要使用Unity本身的寻路功能。可以选择自行开发或使用一些中间件如PathEngine、Autodesk Navigation

-----------------------------------------------------------------------------------------------------------------------------------------

寻路和战斗逻辑的物理碰撞肯定放server,因为client的本地数据和发的包都是不可信的。
导航网格是很成熟的技术,服务端实现一套符合项目需要的只需要一个程序员不到一个周的时间就能搞定。
物理引擎的话也需要根据项目定位来决定是自己搞一套简单的还是稍微复杂点的。我在的项目服务端用bullet已经绰绰有余了,还需要裁剪掉很多功能。
client需要的是位置的同步和状态的同步,server侧寻路的流程和碰撞检测的逻辑,对client透明。


-----------------------------------------------------------------------------------------------------------------------------------------


客户端的做法肯定服务器端也得做简单的验证,一般会为服务器生成简单的导航地形网格,客户端会根据寻路数据包括什么方向速度之类的发给服务器,服务器会简单验证是否合法,不合法则直接让他回退
也有的做法是在服务器端寻路,这样的话只要广播位置就行了。
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值