第1章 网络游戏开发概述 1
1.1 网络游戏的类型 2
1.2 网络游戏的开发环境 4
1.3 开发注意事项 5
第2章 网络通讯底层设计与实现 7
2.1 Socket简介 8
2.2 常用的Socket函数 9
2.3 Server与Client的常用模型 12
2.4 编写一个Socket封装类 15
2.5 Socket高级话题 19
2.6 如何使Socket代码跨平台(Win32,Linux) 24
2.7 命令封包 27
2.8 数据压缩和加密 30
2.9 传输层整体结构 30
第3章 客户端中文输入法的处理 33
3.1 输入法消息处理 34
3.2 组字窗口消息 34
3.2.1 开始组字WM_IME_STARTCOMPOSITION 34
3.2.2 结束组字WM_IME_ENDCOMPOSITION 36
3.2.3 组字状态改变WM_IME_COMPOSITION 36
3.3 IME通知消息 37
3.3.1 打开候选窗口IMN_OPENCANDIDATE 37
3.3.2 关闭候选窗口IMN_CLOSECANDIDATE 39
3.3.3 候选窗口内容改变IMN_CHANGECANDIDATE 39
3.3.4 输入模式改变IMN_SETCONVERSIONMODE 40
3.3.5 状态窗口消息 40
3.4 获得输入的内容 41
3.5 获得当前输入法名字 41
3.6 关闭当前的输入法窗口 42
第4章 客户端界面系统之格式化文字显示 45
4.1 自定义格式化文本CFT 46
4.2 自定义格式化文本CFT的读取 48
4.3 游戏中CFT的应用 51
第5章 客户端数据资源的管理 57
5.1 游戏中可重复使用的资源 58
5.2 用统一的方法管理可多重使用的资源 60
5.2.1 简单的访问资源方式 61
5.2.2 快速的访问资源方式 65
5.2.3 安全的使用资源 66
5.3 资源的缓冲池 67
第6章 客户端基于3D多边形的寻路系统 69
6.1 Pathing-finding的基本原理 70
6.2 3D地形的概念:Terrain 73
6.3 在Terrain上寻路 77
第7章 简繁体文字转换的处理 85
7.1 文字的编码 86
7.2 码表的生成 87
7.3 简繁转换程序 94
7.4 如何更聪明地转换 100
第8章 游戏服务器的架构和设计要点 103
8.1 大型网络游戏的起源与发展 104
8.2 整体结构 104
8.3 游戏服务器 105
8.3.1 总体框架 105
8.3.2 命令分析器 105
8.3.3 物件模型 108
8.3.4 行走同步 112
8.3.5 脚本 113
8.3.6 负载能力 113
第9章 嵌入式表达式系统的设计与实现 117
9.1 运算符的优先级别 118
9.2 简单表达式的求解 119
9.3 单目运算符 122
9.4 逻辑表达式 123
9.5 变量 124
9.6 函数调用 126
9.7 参数传递 127
第10章 回合制战斗系统的设计与实现 131
10.1 战斗系统的功能结构 132
10.2 回合制战斗流程 132
10.3 Server与Client之间的交互协议 133
10.4 角色属性和数值 138
10.5 运用表达式(公式)系统来计算 140
10.6 技能的实现 144
10.7 客户端画面表现 147
第11章 MySQL数据库的应用 159
11.1 MySQL简介 160
11.2 MySQL C API 160
11.3 设计一个简单的MySQL读写类库 163
11.4 一些常见的问题 168
第12章 数据库服务器的设计与实现 171
12.1 DBS的设计目的和要点 172
12.2 DBS的实现 175
第13章 自动更新系统的设计与实现 177
13.1 文件版本管理 178
13.2 文件传输服务器 179
13.3 客户端功能 190
第14章 巫师管理工具的设计与实现 205
14.1 GM概述 206
14.2 如何快速响应用户的服务请求 206
14.3 玩家请求分配中心 208
14.3.1 判断GM处于空闲状态 208
14.3.2 GM空闲状态的玩家请求分配 208
14.4 同时处理多个玩家的请求 211
14.5 GM的管理 212
14.5.1 日志文件 212
14.5.2 玩家的反馈和申诉 213
14.5.3 GM的操作安全 213
第15章 即时战略网络对战功能的设计与实现 215
15.1 功能需求 216
15.2 程序结构和环境 216
15.2.1 游戏循环的概念 216
15.2.2 玩家输入:键盘和鼠标 218
15.2.3 地图与坐标系统 219
15.2.4 精灵Sprite的概念 219
15.2.5 玩家对象的概念 220
15.2.6 网络通讯底层 221
15.3 确定实现的基本方案 221
15.4 定义操作命令 224
15.5 操作命令在游戏中的使用 227
15.6 同步周期的概念 228
15.7 命令的收集与缓冲 230
15.8 同步的相关处理 232
15.9 DirectPlay在游戏中的使用 235
15.10 网络消息的接收与处理 242
15.11 消息接收的线程同步 245
15.12 建立容错机制 247
15.13 用Log文件帮助调试 248
15.14 实现录像功能 252
15.15 Lobby大厅的制作 253
附录 Internet上的开发资源 255