已有 1 位网友发表了一针见血的评论,你还等什么?
-
9月18日
-
众所周知unity客户端自带物理引擎和nav mesh寻路的,但网游必须在服务器端做决策,如何让server端物理和寻路与client一致呢?
MMO寻路的各种实现方式:
服务端执行寻路,客户端纯粹表现。
客户端执行寻路,服务端验证结果(可能抽样验证)。
客户端和服务端都执行寻路,并保证同步。
如果NPC需要寻路,服务端就必须有寻路功能。Unity本身的设计不适合用于MMO服务端,而一般公司也很难取得源码再实现相同的寻路规则。如果服务端就必须有寻路功能或验证功能,建议不要使用Unity本身的寻路功能。可以选择自行开发或使用一些中间件如PathEngine、Autodesk Navigation。
寻路和战斗逻辑的物理碰撞肯定放server,因为client的本地数据和发的包都是不可信的。
导航网格是很成熟的技术,服务端实现一套符合项目需要的只需要一个程序员不到一个周的时间就能搞定。
物理引擎的话也需要根据项目定位来决定是自己搞一套简单的还是稍微复杂点的。我在的项目服务端用bullet已经绰绰有余了,还需要裁剪掉很多功能。
另外,client需要的是位置的同步和状态的同步,server侧寻路的流程和碰撞检测的逻辑,对client透明。
除非注明,文章均为宿迁波仔博客原创,转载请注明本文地址:http://wangboxyk.cn/fuwuqi/post/unity3d-mmo-nav-mesh.html标签:服务器
- 评论:(1)
- 隐藏评论
【评论很精彩,有内幕、有真相!】