第1章 网页游戏概述 1
1.1 客户端技术 1
1.2 多人游戏适合的领域 2
1.2.1 典型目的 2
1.2.2 小结 4
第2章 连接用户 5
2.1 连接技术 5
2.1.1 P2P架构 6
2.1.2 轮询 8
2.1.3 Socket服务器 10
2.2 可供选择的Socket服务器 10
2.2.1 Adobe Flash Media Interactive Server 11
2.2.2 Red5 11
2.2.3 ElectroServer 4 11
第3章 安全:你要面对所有人 12
3.1 逻辑安全性 12
3.2 物理安全性 13
3.2.1 问题与解决方案 14
3.2.2 防火墙:有趣有利 16
3.2.3 知己知彼,百战不殆 17
3.2.4 关于安全性的最后说明 21
第4章 介绍ElectroServer 22
4.1 关于服务器的一些概念 22
4.1.1 用户 22
4.1.2 房间 23
4.1.3 区 23
4.1.4 聊天 24
4.1.5 好友 25
4.1.6 EsObject 26
4.1.7 扩展 27
4.2 安装ElectroServer 29
4.2.1 Windows系统下的安装 29
4.2.2 Linux/UNIX系统下的安装 30
4.2.3 Mac OS X系统下的安装 31
4.3 编写hello world程序 31
4.3.1 ElectroServer API 31
4.3.2 编写你的第一个聊天信息 32
4.4 管理面板 36
第5章 聊天 40
5.1 概述 40
5.1.1 聊天能见度 40
5.1.2 聊天类型 41
5.1.3 房间概念 43
5.1.4 聊天过滤 44
5.2 一个简单的聊天室 46
5.2.1 功能 46
5.2.2 逐步讲解 47
第6章 游戏逻辑决策位置 55
6.1 一些新概念 55
6.1.1 客户端权威型 55
6.1.2 服务器端权威型 57
6.1.3 何时采用何种模式 58
6.2 ElectroServer插件概念 58
6.2.1 插件 59
6.2.2 与插件对话 59
6.2.3 EsObject对象格式化方法 60
6.3 安装扩展 61
6.3.1 服务器级组件 61
6.3.2 创建扩展 62
6.4 挖宝游戏 63
6.4.1 游戏特点 63
6.4.2 逐步讲解 63
6.4.3 最小化交换数据 64
6.4.4 维持用户列表 65
6.4.5 DigGame类 65
6.4.6 服务器端代码 71
第7章 实时运动 74
7.1 响应控制 74
7.2 路径类型 75
7.2.1 路点 75
7.2.2 矢量/航向 75
7.2.3 视线 76
7.3 基于帧的运动 77
7.3.1 何时使用基于帧运动 77
7.3.2 当前位置:Here I am 77
7.4 网络延时与时钟同步 81
7.4.1 ping和网络延时 81
7.4.2 使用Clock类 83
7.5 基于时间的运动 84
7.5.1 运动公式/可预测的运动 84
7.5.2 网络延时隐藏 84
7.5.3 加速度 87
7.5.4 Heading类和Converger类 88
第8章 游戏大厅系统 93
8.1 常见功能 93
8.2 游戏流程 95
8.2.1 等待状态 96
8.2.2 初始化状态 97
8.2.3 游戏进行状态 97
8.2.4 游戏结束 98
8.3 游戏:挖宝2 99
8.3.1 全新的ElectroServer概念 99
8.3.2 大厅系统范例 100
8.3.3 在ElectroServer中注册游戏类型 104
第9章 实时坦克游戏 105
9.1 游戏简介 105
9.2 权威和预测 107
9.2.1 坦克路径 107
9.2.2 射击 107
9.2.3 碰撞检测 108
9.3 视线 110
9.3.1 线段交点 110
9.3.2 路径验证 112
9.3.3 碰撞预测 113
9.4 游戏消息 114
9.5 迷你地图 115
9.6 消息集成 116
9.7 关卡编辑器 117
9.8 立体音效 118
第10章 区块式游戏 121
10.1 区块式关卡与绘制式关卡 121
10.2 区块式方法的其他优点 122
10.2.1 性能 122
10.2.2 何时执行游戏逻辑判断 125
10.3 A*寻路算法 126
10.3.1 算法概念 126
10.3.2 伪码 128
10.3.3 寻路范例 130
第11章 合作游戏 135
11.1 合作游戏的类型与方式 135
11.1.1 合作游戏的类型 135
11.1.2 合作游戏的方式 136
11.2 游戏:“超级泡泡兄弟” 137
11.3 服务器端与客户端:谁来决策游戏逻辑 139
11.3.1 客户端 140
11.3.2 服务器端 140
11.3.3 理解游戏原理 140
11.4 游戏消息 142
11.5 客户端细节 143
11.5.1 初始化关卡 143
11.5.2 玩家的位置 143
11.5.3 切换开关、静止闸门与激光塔 144
11.5.4 推岩石 146
11.5.5 结论和扩展 149
第12章 等距视图技术 150
12.1 等距视图技术的基础知识与优点 150
12.1.1 等距视图中的对象 150
12.1.2 区块 152
12.1.3 虚拟世界范例 153
12.1.4 等距视图技术的更多话题 154
12.2 技术视角 155
12.2.1 几何原理 155
12.2.2 Isometric类 156
12.2.3 创建一个网格 158
12.2.4 选择区块 161
12.3 排序算法 162
12.3.1 逻辑 163
12.3.2 排序范例 164
第13章 化身 169
13.1 了解化身 169
13.2 绘制化身的方法 170
13.2.1 木偶法 171
13.2.2 叠层动画法 172
13.2.3 精灵序列图技术 173
13.2.4 3D渲染法 174
13.2.5 试试视频 175
13.3 精灵序列图 175
13.3.1 叠放原则 175
13.3.2 性能表现 176
13.4 创建与定制化身 178
13.4.1 概述 179
13.4.2 AnimationLoader类和SpriteAnimation类 179
13.4.3 AvatarCustomizationScreen类 182
第14章 虚拟世界 184
14.1 共同特征 184
14.2 “古老家园” 186
14.3 地图文件 188
14.3.1 XML格式 188
14.3.2 地图编辑器 191
14.4 地图的渲染生成 192
14.4.1 Map类 192
14.4.2 Isortable接口 192
14.4.3 ItemDefinition类 193
14.4.4 Item类 193
14.4.5 ItemManager类 193
14.5 虚拟世界 194
14.5.1 化身管理 196
14.5.2 行走 197
14.5.3 排序 199
第15章 好友系统 203
15.1 关系 203
15.1.1 关系类型 203
15.1.2 建立关系 204
15.2 “古老家园”中的好友 205
15.2.1 加载好友列表 206
15.2.2 显示在线好友 207
15.2.3 添加好友 207
15.2.4 移除好友 208
15.2.5 查看好友列表 208
15.2.6 可改进之处 209
第16章 用户之家 210
16.1 “打开房间” 210
16.2 “古老家园”中的用户之家 213
16.2.1 访问与装饰 213
16.2.2 数据与事务处理 214
16.2.3 用户界面 216
附录 创建范例扩展包 220