网络游戏的同步可以做的很简单,也可以做的很复杂。简单来说就是通过Http或者Socket来跟服务器同步数据。而如果往复杂了说,可以有p2p、帧同步、航位预测等等高级课题可以研究。
因为我们的项目需求----几百个独立单位的实时同步(带pvp的rts),所以研究了下帧同步。不过后来发现它其实有很多问题,所以具体如何还要看其他同事的研究成果。以我个人来说,修改游戏方案反而是最合理的解决方案。
首先从需求上来说,几百个独立单位的作战,本身结果和士兵强弱从策划的角度来看就是不可控制的。玩家更加不可控制。比如士兵的攻击力增加10%或者弓箭手的射程增加50%,带来的影响可能是几倍于预想值。这样一个不可控制的游戏对玩家而言,即便再独特,其吸引力也不如卡牌游戏。 从这点上来说,项目的需求本身就是值得商榷的。
帧同步的原理和实现可以参考这些文章:
http://clintonbrennan.com/2013/12/lockstep-implementation-in-unity3d/
http://blog.sina.com.cn/s/blog_674f1bd20101omv7.html
大意是,游戏运行时以10fps(100毫秒间隔,具体数值可根据