关于moba游戏的移动同步技术
2016-11-13 18:49
211 查看
服务器对客户端世界进行模拟,包括世界中的所有碰撞都需要服务器进行检测。
客户端移动摇杆,发送move_dir协议给服务器,数据为一个方向向量 (x和z) 和一个角度,
服务器返回run_state协议,数据为:开始移动的坐标,方向向量和速度。
客户端把英雄置到那个坐标然后才开始移动。
开始移动后,不需要再进行通信,除非摇杆改变了移动方向。
当松开摇杆的时候,会发送stop_move协议给服务器。
服务器会停止我们的英雄的移动,返回free_state给客户端,数据为:坐标和方向向量
Q: 如果服务器没有返回run_state,客户端的英雄救不进行移动吗?
A: 没错,客户端可以自己旋转英雄,但是必须受到run_state才开始移动。
Q: 如果服务器不返回free_state,客户端英雄就一直往前跑?
A: 没错,一直往前跑,跑到地图外都不停下来。如果此时摇杆改变方向,就会发送move_dir,收到run_state,会从服务器指定的位置开始移动,这个位置就是客户端发送stop_move时服务器当时的位置。
Q: 如果服务器返回run_state,但是客户端直接return掉,不移动英雄,会怎么样?
A: 英雄开起来就不会移动了,但是,服务器还是进行坐标计算的,服务器自己需要维护整个世界的信息,包括碰撞,所以服务器自己计算发现你碰撞到墙壁了,会推送free_state给客户端,此时客户端就会瞬间瞬间变到那个位置(准确说是距离跨度太大才瞬间变过去的,如果距离小,则客户端进行插值移动到目标点)
Q: 客户端不进行物理碰撞??
A: 客户端可以不进行物理碰撞,全都在服务器进行模拟,所以就像上面说的,如果不处理free_state,那么英雄一直往前跑,是可以穿墙的~
客户端移动摇杆,发送move_dir协议给服务器,数据为一个方向向量 (x和z) 和一个角度,
服务器返回run_state协议,数据为:开始移动的坐标,方向向量和速度。
客户端把英雄置到那个坐标然后才开始移动。
开始移动后,不需要再进行通信,除非摇杆改变了移动方向。
当松开摇杆的时候,会发送stop_move协议给服务器。
服务器会停止我们的英雄的移动,返回free_state给客户端,数据为:坐标和方向向量
Q: 如果服务器没有返回run_state,客户端的英雄救不进行移动吗?
A: 没错,客户端可以自己旋转英雄,但是必须受到run_state才开始移动。
Q: 如果服务器不返回free_state,客户端英雄就一直往前跑?
A: 没错,一直往前跑,跑到地图外都不停下来。如果此时摇杆改变方向,就会发送move_dir,收到run_state,会从服务器指定的位置开始移动,这个位置就是客户端发送stop_move时服务器当时的位置。
Q: 如果服务器返回run_state,但是客户端直接return掉,不移动英雄,会怎么样?
A: 英雄开起来就不会移动了,但是,服务器还是进行坐标计算的,服务器自己需要维护整个世界的信息,包括碰撞,所以服务器自己计算发现你碰撞到墙壁了,会推送free_state给客户端,此时客户端就会瞬间瞬间变到那个位置(准确说是距离跨度太大才瞬间变过去的,如果距离小,则客户端进行插值移动到目标点)
Q: 客户端不进行物理碰撞??
A: 客户端可以不进行物理碰撞,全都在服务器进行模拟,所以就像上面说的,如果不处理free_state,那么英雄一直往前跑,是可以穿墙的~
相关文章推荐
- MOBA游戏的网络同步技术
- Unite 2017 | 从《闹闹天宫》看MOBA游戏里的网络同步技术
- 关于Intel®迅驰™移动计算技术的介绍
- 关于在地址本数据库设计中同步内容使用XMLType的技术建议
- [置顶] 游戏开发技术总结(经典之作)第五集 轻松走四方-----游戏角色的移动和动作的切换
- Unity中国技术总监刘钢:如何优化基于Unity开发的3D移动游戏
- Android游戏开发---关于实体的绘制与跟踪技术
- 游戏外挂原理和技术分析(关于魔力宝贝 )
- 关于Web开发里并发、同步、异步以及事件驱动编程的相关技术
- HTML5移动游戏平台大战,技术不再主导流量
- HTML5移动游戏平台大战,技术不再主导流量
- 关于SLG战略游戏中,人物移动范围的算法(js实现)
- 游戏外挂原理和技术分析(关于魔力宝贝)
- 关于移动技术的我的看法
- AS3多人游戏开发—同步人物移动2
- Android游戏开发---关于实体的绘制与跟踪技术
- 关于举办“让您与微软技术实时同步活动”通知
- AS3多人游戏开发—同步人物移动1
- 关于移动技术的我的看法(二)
- 关于使用AIR开发移动APP 的技术解决方案 笔记