作品简介

本书首部分:学以致用(第1-4章)。

这部分介绍了Skynet引擎的使用方法及注意事项,以《球球大作战》的案例贯穿其中,全面又详尽地剖析了服务端结构设计、通信协议格式、数据表结构设计、断线重连等方案的核心技术。

本书第二部分:入木三分(第5-7章)。

这部分揭示了在多核时代采用现代C++编写多线程TCP网络服务器的高效做法,以C++重写Skynet的案例贯穿其中,使用大量图表,生动翔实地描述Linux环境下的编程技术。

本书第三部分:各个击破(第8-11章)。

这部分列举了同步算法、热更新、防外挂等实际工程难题,并对其逐一击破,非常具有实用价值。

尽管本书以Skynet为例,但其同样适用于使用C++自研引擎的项目组,甚至是选用Erlang、Golang、Java的开发者。

罗培羽,现就职于广州四三九九公司技术研发中心,参与游戏研发和技术研究工作。曾组织“民间团队”开发同人游戏《仙剑奇侠传5前传之心愿》,是多年来“民间团队”制作3D仙剑同人游戏的一次成功尝试。著有《手把手教你用C#制作RPG游戏》《Unity3D网络游戏实战》等计算机图书,所著图书被部分高校的软件工程专业选为教材。

作品目录

  • 作者简介
  • 推荐语
  • 前言
  • 第一部分 学以致用
  • 第1章 从角色走路说起
  • 1.1 每走一步都有事情发生
  • 1.2 从网络编程着手
  • 1.3 能够承载多少玩家
  • 1.4 用分布式扩能
  • 1.5 回头看操作系统
  • 1.6 一张地图的极限
  • 1.7 万物皆Actor
  • 第2章 Skynet入门精要
  • 2.1 下载、编译、运行
  • 2.2 理解Skynet
  • 2.3 第一个程序PingPong
  • 2.4 写Echo,练习网络编程
  • 2.5 做聊天室,学习多人交互
  • 2.6 做留言板,使用数据库
  • 2.7 监控服务状态
  • 2.8 使用节点集群建立分布式系统
  • 2.9 使用Skynet的注意事项
  • 第3章 案例:《球球大作战》
  • 3.1 功能需求
  • 3.2 方案设计
  • 3.3 搭架子:目录结构和配置
  • 3.4 磨刀工:封装易用的API
  • 3.5 分布式登录流程
  • 3.6 代码实现:gateway
  • 3.7 代码实现:login
  • 3.8 代码实现:agentmgr
  • 3.9 代码实现:nodemgr
  • 3.10 代码实现:agent(单机版)
  • 3.11 测试登录流程
  • 3.12 战斗流程梳理
  • 3.13 代码实现:场景服务
  • 3.14 代码实现:agent(跨服务器版)
  • 3.15 改进
  • 第4章 Skynet进阶技法
  • 4.1 用“长度信息”解TCP包
  • 4.2 用Json序列化协议
  • 4.3 用Protobuf高效传输
  • 4.4 如何设计游戏数据库
  • 4.5 如何关闭服务器
  • 4.6 怎样做定时系统
  • 4.7 断线重连
  • 第二部分 入木三分
  • 第5章 你好,C++并发世界
  • 5.1 从HelloWorld开始
  • 5.2 多核多线程
  • 5.3 探索C++对象模型
  • 5.4 队列与锁
  • 5.5 多线程下的对象管理
  • 5.6 充分利用CPU
  • 5.7 演示程序PingPong
  • 5.8 条件变量与唤醒机制
  • 5.9 后台运行
  • 第6章 图解TCP网络模块
  • 6.1 启动网络线程
  • 6.2 半小时搞懂Epoll的用法
  • 6.3 打开监听端口
  • 6.4 网络事件分发
  • 6.5 如何安全读写数据
  • 6.6 写缓冲区满
  • 第7章 嵌入Lua脚本语言
  • 7.1 方案设计
  • 7.2 嵌入Lua虚拟机
  • 7.3 C++调用Lua方法
  • 7.4 Lua调用C++函数
  • 7.5 Lua版的PingPong
  • 7.6 Lua版聊天室
  • 第三部分 各个击破
  • 第8章 同步算法
  • 8.1 同步难题
  • 8.2 客户端障眼法
  • 8.3 各类同步方案及适用场景
  • 8.4 帧同步
  • 8.5 AOI算法
  • 8.6 可靠UDP
  • 第9章 热更新
  • 9.1 Skynet热更新
  • 9.2 切换进程
  • 9.3 动态库
  • 9.4 脚本语言
  • 第10章 防外挂
  • 10.1 不信任客户端
  • 10.2 尽可能多的校验
  • 10.3 反外挂常用措施
  • 第11章 未尽之路
  • 11.1 高并发
  • 11.2 服务端架构
  • 11.3 工程管理
  • 11.4 结语
展开全部