以便协助想掌握新手入门服务器开发设计的从业者或式从业者快速把握Java服务器开发设计的技术性,这书从手机游戏的行业现状、Java技术性、手机游戏逻辑性、数据库系统、网络理论、服务器技术、构架剖析、优化系统等层面对服务器开发设计做过全方位分析,并对现阶段市场较最火的手机游戏开展剖析,从制造行业到基础理论到技术性,再到构架到实战演练。这书领着用户了解Java服务器开发设计有关行业,协助要想新手入门服务器行业的用户迅速地掌握并把握有关內容。这书应用性强,既是是非非游戏行业工作人员快速掌握并把握服务器技术性的秘笈,也是游戏行业从业者升阶提高的实用手册。这书合适做为非游戏行业但想新手入门游戏行业的Java技术工程师、想掌握游戏服务端技术性的手机游戏前端工程师、必须服务器开发设计新手入门工具书的工作人员,及其别的对服务器开发设计有个人爱好的各种工作人员的阅读书。
目录
- 基础篇 走进游戏开发
- 第1章 认识游戏 2
- 1.1 什么是游戏 2
- 1.1.1 游戏的定义 2
- 1.1.2 游戏的分类 3
- 1.2 游戏开发及分工 7
- 1.3 游戏行业现状分析 12
- 1.4 游戏服务器开发要点 15
- 总结 17
- 第2章 环境搭建 18
- 2.1 Windows开发环境搭建 18
- 2.1.1 安装JDK 18
- 2.1.2 安装Eclipse 20
- 2.1.3 安装数据库客户端工具 21
- 2.1.4 安装SSH工具 21
- 2.1.5 安装其他工具 22
- 2.2 Mac OS X开发环境搭建 22
- 2.2.1 安装JDK 23
- 2.2.2 安装Eclipse 23
- 2.2.3 安装数据库客户端工具 24
- 2.2.4 安装SSH工具 24
- 2.2.5 安装其他工具 24
- 2.3 Linux服务器环境搭建 25
- 2.3.1 安装JDK 25
- 2.3.2 安装Tomcat 26
- 2.3.3 安装MySQL 26
- 2.3.4 安装Mongo 28
- 2.3.5 安装Redis 29
- 2.3.6 安装Memcache 32
- 2.4 总结 33
- 入门篇 游戏开发
- 第3章 网络通信 36
- 3.1 通信协议 36
- 3.1.1 面向连接的TCP 37
- 3.1.2 面向数据报的UDP 38
- 3.1.3 HTTP编程 39
- 3.1.4 Socket编程 46
- 3.1.5 WebSocket编程 54
- 3.2 Java NIO基础 58
- 3.2.1 BIO编程(Blocking-IO,阻塞式IO) 59
- 3.2.2 NIO编程(Non-Blocking IO,非阻塞式IO) 61
- 3.2.3 AIO编程(Async IO/NIO.2,异步IO) 68
- 3.3 Mina的介绍及其使用 75
- 3.3.1 总体架构 76
- 3.3.2 IoService 77
- 3.3.3 IoFilterChain 77
- 3.3.4 IoHandler 77
- 3.3.5 IoSession 77
- 3.3.6 工作原理 78
- 3.3.7 Acceptor与Connector线程 78
- 3.3.8 Processor线程 78
- 3.3.9 线程模型 79
- 3.3.10 请求的处理顺序 80
- 3.3.11 Mina编程 81
- 3.4 Netty的介绍及其使用 88
- 3.4.1 总体架构 88
- 3.4.2 零拷贝 89
- 3.4.3 Codec框架 90
- 3.4.4 Channel 90
- 3.4.5 ChannelEvent 91
- 3.4.6 ChannelPipeline 91
- 3.4.7 Netty编程 91
- 总结 100
- 第4章 数据交互 101
- 4.1 数据传输格式 101
- 4.2 JSON的使用及解析 103
- 4.2.1 JSON语法 103
- 4.2.2 JSON对象 104
- 4.2.3 JSON数组 104
- 4.2.4 Java中的JSON解析 105
- 4.3 XML的使用及解析 110
- 4.3.1 XML的特征 111
- 4.3.2 数据共享 111
- 4.3.3 数据传输 111
- 4.3.4 平台兼容 111
- 4.3.5 JSON与XML的比较 112
- 4.3.6 Java中的XML解析 112
- 4.4 Google Protocol Buffer的介绍及使用 128
- 4.4.1 Protobuffer的安装与编译 128
- 4.4.2 Protobuffer的语法 129
- 4.4.3 生成Java类 130
- 4.4.4 Eclipse的protobuf-dt插件 131
- 4.4.5 示例程序 132
- 总结 134
- 第5章 数据缓存与持久化 135
- 5.1 游戏数据存储 135
- 5.1.1 数据分类 136
- 5.1.2 数据缓存方式 136
- 5.1.3 数据持久化方式 137
- 5.1.4 数据库的比较 137
- 5.2 MySQL的介绍及使用 138
- 5.2.1 特点 138
- 5.2.2 数据类型 139
- 5.2.3 MySQL的使用 139
- 5.2.4 在Java中使用MySQL 142
- 5.3 MongoDB的介绍及使用 157
- 5.3.1 MongoDB的主要特点 157
- 5.3.2 了解API 159
- 5.3.3 Mongo的使用 162
- 5.4 Memcache的介绍及使用 174
- 5.4.1 Memcache的特点 175
- 5.4.2 Memcache的使用场景 176
- 5.4.3 在Java中使用Memcache 177
- 5.4.4 客户端使用要点 182
- 5.5 Redis的介绍及使用 183
- 5.5.1 Redis的特点 183
- 5.5.2 Redis的持久化 184
- 5.5.3 Redis的主从复制 184
- 5.5.4 在Java中使用Redis 185
- 总结 199
- 第6章 游戏逻辑 200
- 6.1 逻辑架构 200
- 6.1.1 项目目录 200
- 6.1.2 模块介绍 202
- 6.2 逻辑流程 212
- 6.2.1 网络模块 212
- 6.2.2 线程池 221
- 6.2.3 启动服务器 222
- 6.2.4 逻辑请求处理 223
- 6.2.5 关闭服务器 228
- 6.3 事件处理器 229
- 6.4 定时任务 236
- 6.5 RPC框架 244
- 6.5.1 Json-rpc 244
- 6.5.2 Motan 253
- 总结 264
- 第7章 游戏安全 265
- 7.1 游戏安全的必要性 265
- 7.2 登录安全 266
- 7.3 游戏充值 266
- 7.4 SQL注入 267
- 7.5 通信协议与消息格式 268
- 7.6 整型溢出 269
- 7.7 并发请求 269
- 7.8 逻辑漏洞 270
- 7.9 日志系统 271
- 总结 271
- 高级篇 游戏服务器的设计及优化
- 第8章 服务器架构分析 274
- 8.1 服务器架构的演变过程 274
- 8.2 全区同服架构分析 277
- 8.2.1 COC架构模型分析 278
- 8.2.2 COK架构模型分析 279
- 8.3 分区分服架构分析 281
- 8.4 弱联网类游戏架构分析 282
- 8.5 MMORPG类游戏架构分析 283
- 总结 285
- 第9章 《皇室战争》游戏开发实战 286
- 9.1 微竞技游戏介绍 286
- 9.2 架构分析及搭建 287
- 9.2.1 功能分析 287
- 9.2.2 服务器部署架构 288
- 9.2.3 系统架构 289
- 9.3 数据持久化方案 290
- 9.3.1 数据结构分析 290
- 9.3.2 使用Morphia操作MongoDB 295
- 9.4 Netty网络框架的使用 300
- 9.4.1 Netty实现的HTTP服务器 300
- 9.4.2 Netty实现的TCP服务器 309
- 9.5 账号系统 316
- 9.6 个人信息 323
- 9.7 英雄卡牌系统 327
- 9.8 宝箱系统 334
- 9.9 战斗系统 339
- 9.10 客户端模拟 349
- 9.10.1 登录界面 349
- 9.10.2 选服界面 354
- 9.10.3 主逻辑界面 358
- 9.10.4 对战界面 363
- 总结 372
- 第10章 游戏开发技术前景 373
- 10.1 Egret 373
- 10.2 Cocos 2D 374
- 10.3 Unity 375
- 10.4 Unreal 376
- 10.5 Java 376
- 10.6 Node.js 377
- 总结 378