更新时间:2019-01-21 10:04:12
封面
版权信息
前言
为什么要写这本书
读者对象
如何阅读本书
勘误和支持
致谢
第1章 网络游戏的开端:Echo
1.1 藏在幕后的服务端
1.2 网络连接的端点:Socket
1.3 开始网络编程:Echo
1.4 更多API
1.5 公网和局域网
第2章 分身有术:异步和多路复用
2.1 什么样的代码是异步代码
2.2 异步客户端
2.3 异步服务端
2.4 实践:做个聊天室
2.5 状态检测Poll
2.6 多路复用Select
第3章 实践出真知:大乱斗游戏
3.1 什么是大乱斗游戏
3.2 搭建场景
3.3 角色类Human
3.4 如何使用网络模块
3.5 进入游戏:Enter协议
3.6 服务端如何处理消息
3.7 玩家列表:List协议
3.8 移动同步:Move协议
3.9 玩家离开:Leave协议
3.10 攻击动作:Attack协议
3.11 攻击伤害:Hit协议
3.12 角色死亡:Die协议
第4章 正确收发数据流
4.1 TCP数据流
4.2 解决粘包问题的方法
4.3 解决粘包的代码实现
4.4 大端小端问题
4.5 完整发送数据
4.6 高效的接收数据
第5章 深入了解TCP,解决暗藏问题
5.1 从TCP到铜线
5.2 数据传输流程
5.3 常用TCP参数
5.4 Close的恰当时机
5.5 异常处理
5.6 心跳机制
第6章 通用客户端网络模块
6.1 网络模块设计
6.2 网络事件
6.3 连接服务端
6.4 关闭连接
6.5 Json协议
6.6 发送数据
6.7 消息事件
6.8 接收数据
6.9 心跳机制
6.10 Protobuf协议
第7章 通用服务端框架
7.1 服务端架构
7.2 Json编码解码
7.3 网络模块
7.4 心跳机制
7.5 玩家的数据结构
7.6 配置MySQL数据库
7.7 数据库模块
7.8 登录注册功能
第8章 完整大项目《坦克大战》
8.1 《坦克大战》游戏功能
8.2 坦克模型
8.3 资源管理器
8.4 坦克类
8.5 行走控制
8.6 坦克爬坡
8.7 相机跟随
8.8 旋转炮塔
8.9 发射炮弹
8.10 摧毁敌人
第9章 UI界面模块
9.1 界面模块的设计
9.2 场景结构
9.3 面板基类BasePanel
9.4 界面管理器PanelManager
9.5 登录面板LoginPanel
9.6 注册面板RegisterPanel
9.7 提示面板TipPanel
9.8 游戏入口GameMain
9.9 功能测试
第10章 游戏大厅和房间
10.1 列表面板预设
10.2 房间面板预设
10.3 协议设计
10.4 列表面板逻辑
10.5 房间面板逻辑
10.6 打开列表面板
10.7 服务端玩家数据
10.8 服务端房间类
10.9 服务端房间管理器
10.10 服务端消息处理