深度解析Java游戏服务器开发 7121301423,9787121301421

配送至
$ $ USD 美元

编辑推荐

《深度解析Java游戏服务器开发》适合作为非游戏行业但想入门游戏行业的Java工程师、想了解游戏服务端技术的游戏前端工程师、需要游戏服务器开发入门工具书的人员,以及其他对游戏服务器开发有兴趣爱好的各类人员的阅读书籍。

作者简介

何金成,游戏行业开发者,从事于游戏服务器研发工作,曾就职于游戏谷,参与大型3DMMORPG《七雄无双》的服务端研发,后任职熊孩子游戏,并担任Java服务端主程,负责《英雄守卫战》、《王者守卫战》、《国战三国志》以及《英雄对冲》等多款手游的服务端研发工作。腾讯GAD开发社区特约撰稿人。涉猎广泛,擅长Java后端研发,分布式服务开发,同时也精通Cocos、Egret等游戏前端引擎,曾在博客写过不少详细的游戏开发案例,掌握多种技术,并且非常乐于分享,是一位有着游戏梦的游戏开发者。

目录

基础篇走进游戏开发
第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.1Windows开发环境搭建 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.2MacOSX开发环境搭建 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.3Linux服务器环境搭建 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.3HTTP编程 39
3.1.4Socket编程 46
3.1.5WebSocket编程 54
3.2Java NIO基础 58
3.2.1BIO编程(Blocking—IO,阻塞式IO) 59
3.2.2NIO编程(Non—Blocking IO,非阻塞式IO) 61
3.2.3AIO编程(AsyncIO/NIO.2,异步IO) 68
3.3Mina的介绍及其使用 75
3.3.1总体架构 76
3.3.2IoService 77
3.3.3IoFilterChain 77
3.3.4IoHandler 77
3.3.5IoSession 77
3.3.6工作原理 78
3.3.7Acceptor与Connector线程 78
3.3.8Processor线程 78
3.3.9线程模型 79
3.3.10请求的处理顺序 80
3.3.11Mina编程 81
3.4Netty的介绍及其使用 88
3.4.1总体架构 88
3.4.2零拷贝 89
3.4.3Codec框架 90
3.4.4Channel 90
3.4.5ChannelEvent 91
3.4.6ChannelPipeline 91
3.4.7Netty编程 91
总结 100
第4章数据交互 101
4.1数据传输格式 101
4.2JSON的使用及解析 103
4.2.1JSON语法 103
4.2.2JSON对象 104
4.2.3JSON数组 104
4.2.4Java中的JSON解析 105
4.3XML的使用及解析 110
4.3.1XML的特征 111
4.3.2数据共享 111
4.3.3数据传输 111
4.3.4平台兼容 111
4.3.5JSON与XML的比较 112
4.3.6Java中的XML解析 112
4.4Google Protocol Buffer的介绍及使用 128
4.4.1Protobuffer的安装与编译 128
4.4.2Protobuffer的语法 129
4.4.3生成Java类 130
4.4.4Eclipse的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.2MySQL的介绍及使用 138
5.2.1特点 138
5.2.2数据类型 139
5.2.3MySQL的使用 139
5.2.4在Java中使用MySQL 142
5.3MongoDB的介绍及使用 157
5.3.1MongoDB的主要特点 157
5.3.2了解API 159
5.3.3Mongo的使用 162
5.4Memcache的介绍及使用 174
5.4.1Memcache的特点 175
5.4.2Memcache的使用场景 176
5.4.3在Java中使用Memcache 177
5.4.4客户端使用要点 182
5.5Redis的介绍及使用 183
5.5.1Redis的特点 183
5.5.2Redis的持久化 184
5.5.3Redis的主从复制 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.5RPC框架 244
6.5.1Json—rpc 244
6.5.2Motan 253
总结 264
第7章游戏安全 265
7.1游戏安全的必要性 265
7.2登录安全 266
7.3游戏充值 266
7.4SQL注入 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.1COC架构模型分析 278
8.2.2COK架构模型分析 279
8.3分区分服架构分析 281
8.4弱联网类游戏架构分析 282
8.5MMORPG类游戏架构分析 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.4Netty网络框架的使用 300
9.4.1Netty实现的HTTP服务器 300
9.4.2Netty实现的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.1Egret 373
10.2Cocos 2D 374
10.3Unity 375
10.4Unreal 376
10.5Java 376
10.6Node.js 377
总结 378

序言

Java诞生于20世纪90年代,是一款面向对象的工具,为企业级的计算领域提供解决方案。目前,Java普遍应用于分布式开发及大数据云计算领域,无论是大家手中的安卓手机,还是企业级CS、BS项目,以及微信公众号和APP后台开发,处处可见Java的身影,而本书将重点介绍Java在游戏服务器开发领域的应用。
本书特色
本书将讲解在游戏开发领域,如何使用Java开发游戏服务器。本书附有丰富的源码案例,并对目前较热门的网络游戏服务器进行分析。
市面上大部分讲解Java的书都以Java基础、JavaEE企业级开发、Android开发、微信开发等为主,本书将重点讲解Java在游戏领域的应用——Java作为游戏服务器开发的表现。虽然,服务器领域一直由C++主导,C++优秀的性能在服务器中有着良好的表现,但近些年来,Java也变得越来越优秀,Java在网络方面的处理性能也有了显著提升,使用Java开发游戏服务器也成为可能。本书为使用Java开发游戏服务器提供指导,让有Java基础的读者快速入门Java游戏服务器开发。

本书对游戏服务器开发的各种技术都做了详细介绍,并且源码中有相应的案例,代码中也有非常详细的注释。对于不容易理解的内容,结合图表进行讲解,使读者可以有一个更加直观的认识。
书中涉及的均是目前使用较广泛、较热门、较实用的技术,想要了解新技术的人可以把本书作为参考。
本书优势
虽然目前也有少量关于游戏服务器的书讲解得非常细致,但大多是基于C++语言实现的服务端内容,而使用Java开发游戏服务器的开发商越来越多,本书针对的就是有一定Java基础的人,每章均配有源码案例,可带领读者快速入门Java游戏服务器开发。
为什么是Java?
JDK4提供了NIO类库——异步IO,NIO框架也越来越被人熟知,而且Mina、Netty都是基于NIO网络框架的。随着大规模分布式系统、大数据和流式计算框架的崛起,基于Java构建这些系统已经成为主流,NIO编程和NIO框架也得到了广泛应用。在互联网领域,阿里的分布式服务框架Dubbo、RocketMQ、大数据的基础序列化通信框架Avro,以及很多开源的软件都已经使用Netty框架构建高性能、分布式的通信。所以,Java是能胜任游戏服务器开发的,也完全能满足当下的游戏性能要求。
本书各章内容
本书分为基础篇、入门篇和高级篇三个篇章,共10章。
基础篇
从游戏行业的基础知识讲起,带领读者进入游戏开发领域,做一些前置的准备工作。
第1章
讲解游戏的理论知识、游戏行业的现状及发展、游戏开发中的要点等,让读者了解游戏服务器开发的基本内容。
第2章
为后续开发做准备,讲解Java开发环境搭建,并介绍了一些常用开发工具。
入门篇
以Java游戏服务器技术为核心,分模块展开讲解,真正从技术上了解并掌握游戏服务器开发技术。
第3章
网络对游戏服务器起着至关重要的作用,本章讲解游戏服务器开发中的网络层。
第4章
传输数据时,需要拟定双方都能解析的数据格式,使双方都能辨别。
第5章
游戏数据多种多样,如何进行数据缓存,如何使数据持久化,本章将一一进行介绍。
第6章
游戏逻辑是游戏服务器的心脏,不同游戏的业务逻辑,对应着不同的逻辑代码。本章将介绍如何根据游戏业务逻辑进行逻辑层的开发。
第7章
开发游戏服务器时必须要做安全性保护。在外挂满天飞的时代,一个优秀的游戏服务器必须对各种有意或无意的攻击做好安全防护。
高级篇
讲解游戏服务器的架构设计及系统优化,从更高的角度了解游戏服务器,并用一个实例代码进行具体说明。
第8章
分析市面上常见网络游戏的服务器架构,学会分析优秀的架构,了解好的架构对游戏服务器的重要性。
第9章
本章讲解一款游戏实战,指导读者上手开发一款游戏服务器,了解游戏服务器开发中的基本模式,也是对本书所讲内容的一个综合应用。
第10章
本章展望游戏行业的未来,分析游戏行业的走向。
本书读者对象
? 非游戏行业但想入门游戏行业的Java工程师。
? 想了解游戏服务端技术的游戏前端工程师。
? 需要游戏服务器开发入门工具书的人员。
? 其他对游戏服务器开发有兴趣爱好的各类人员。

文摘

版权页:

插图:
ISBN7121301423,9787121301421
出版社电子工业出版社
作者何金成
尺寸16