
最后一战(LastBattle)服务器分析
SkyLifer
do{ study(); }while(!dead);
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
最后一战(LastBattle)服务器源码分析1——服务器架构
服务器架构简图如下:连线说明:实线:表示客户端登录流程,①②③④⑤表示登录流程,详细解释见下文。虚线:表示服务器间的连接,虚线箭头指向监听方。架构说明:英文名称简称中文名称功能简介单个大区需求数量数量说明GameClientGC游戏客户端不解释n不超服务器承载上限均可LoginSerLS游戏登录服务器用于登录验证的服务器1登录入...原创 2019-07-12 17:42:57 · 4059 阅读 · 1 评论 -
最后一战(LastBattle)服务器源码分析2——中心服务器(CentralServer)
中心服CS:作为游戏的核心服务器,中心服承担着除战斗外的所有游戏功能,包括房间匹配,场景服(SS)战斗及玩家的管理控制,邮件系统,玩家实体创建和管理,Kernel核心管理,数据存储与缓存,游戏日志生成等。房间匹配:class CCSMatchMgr{public: ... INT32 TeamStartMatch(IMatchPlayer* pPlayer);//开始匹配...原创 2019-07-12 17:47:11 · 2186 阅读 · 0 评论 -
最后一战(LastBattle)服务器源码分析3——场景服务器(SceneServer)
场景服主要用于游戏战斗,包括战场创建管理,机器人AI,移动系统,视野系统,技能系统等。int main(){ ... CSSCfgMgr::GetSSCfgInstance().Initialize();//初始化场景服,加载地图,英雄等数据 CSSWorkThreadMgr::GetInstance().Init();//主线程初始化配置,连接中心服和日志服务器 CSSWorkTh...原创 2019-07-13 17:57:50 · 1895 阅读 · 2 评论 -
最后一战(LastBattle)服务器源码分析8.1——定时器
定时器:目前主流的定时器实现包括时间轮和最小堆,最后一战是用最小堆(优先队列)实现的定时器,下面先分析下其具体实现: typedef std::function<void(int64_t, int64_t)> HeartbeatCallback; typedef int64_t TimeKey; class CBattleTimer { public: CBattle...原创 2019-08-06 16:57:57 · 1018 阅读 · 0 评论