之前说到ctk用于一个大型软件内部各模块之间的数据交互,这一篇讲述在大系统场景下,各分系统如何进行数据同步。这里我们用到了DDS数据分发服务器
那什么是DDS服务器呢?
直接数字式频率合成器DDS(Direct Digital Synthesizer,关于DDS是什么,网上介绍很多,比较专业有时也看不懂此处也不做过多介绍,说说怎么用的你就明白了
比如说某者荣耀,10个人在玩这一个游戏,玩家红1给咱家蓝1放了一个大招,如果数据不同步,那么在红1看来自己可能已将对方杀死,蓝1可能还在野区闲逛呢,等反应过来自己死了,是不是很离谱,所以必须同步且实时性必须非常高,这时DDS排上了用场,他是怎么做的呢
仍旧用刚才场景说明,首先红蓝双方的位置都会同步到DDS,双方的每一个人也订阅了场景内所有敌我数据以及野怪数据,当蓝1给红1放大招时,蓝1用户先把数据发送到DDS服务器,服务器收到此消息后经过一系列算法判断损伤并把数据放在服务器,因为一开始所有玩家订阅了此数据,所以数据服务器再将数据转发给所有玩家,这时就达到了同步
如果网络不好卡了怎么办
客户端会直接从服务器获取最新的包,来进行显示。所以交战时卡了,后面发现自己已经被杀死,是因为你的数据在无法发送到服务器时,无法放出技能,结果被敌方砍死,当然游戏本身在发现你超时连接会直接让你回城