写在前面 :
此文仅用于自我总结,从工作经验中,经历的状态同步项目中提炼下来的一些经验分享,至于其中对于某些状态同步相关 与网络上的名词不统一 不需要纠结概念 重点在于实现原理.
一.定义
非常主观的对状态同步的定义:
由一端(客户端或服务器) 负责计算出所有的状态 再把状态转发给其他端
二.案例
状态同步也并不是一门新鲜的技术,我玩的游戏中,用状态同步比较典型的是 <<魔兽世界>>(World of Warcraft)(发行于2004年) 由于游戏本身很经典, 所以很多人也再开源社区做二次开发,实现一个非官方的服务器
魔兽世界 服务器开源端 有 mangos , trinitycore, azerothcore
3个源码都能在github上面找到
都是C++写的服务器
最早出来的是 mangos 合作过一段时间之后 内部人员分歧 思想不够统一
于是就出现了 trinitycore 是mangos 里面的核心人物把部分该统一的统一了
但是用了很多新特性 勇于尝试C++新技术 导致trinitycore 框架后期BUG比较多
于是又出现azerothcore, 在其基础上 严格限制技术 解决BUG 使其更稳定, 更好的用于作为玩家进入游戏体验
mangos 早期版本
trinitycore 使用C++新