为了帮助想了解入门游戏服务器开发的从业人员或非从业人员迅速掌握Java游戏服务器开发的技术,本书从游戏的行业分析、Java技术、游戏逻辑、数据库技术、网络理论、服务器技术、架构分析、系统优化等方面对游戏服务器开发做了全面解析,并对目前市面较热门的游戏进行分析,从行业到理论到技术,再到架构到实战。本书带领读者熟悉Java游戏服务器开发相关领域,帮助想要入门游戏服务器领域的读者更快地了解并掌握相关内容。本书实用性强,既是非游戏行业人员迅速了解并掌握游戏服务器技术的宝典,又是游戏行业从业人员进阶提升的实用手册。本书适合作为非游戏行业但想入门游戏行业的Java工程师、想了解游戏服务端技术的游戏前端工程师、需要游戏服务器开发入门工具书的人员,以及其他对游戏服务器开发有兴趣爱好的各类人员的阅读书籍。
目录
CONTENTS
基础篇 走进游戏开发
第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
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工程师。
? 想了解游戏服务端技术的游戏前端工程师。
? 需要游戏服务器开发入门工具书的人员。
? 其他对游戏服务器开发有兴趣爱好的各类人员。
我最近在琢磨着构建一个稍微复杂一点的游戏,需要处理大量的玩家交互和实时数据同步,之前参考的一些资料在这方面总是显得有些浅尝辄止。这本书的第三部分,简直就是为我量身定做的。它深入探讨了如何设计一个高可用、高并发的游戏服务器架构。作者不仅仅是列举了一些设计模式,而是通过一个贯穿始终的案例,展示了如何在实际项目中应用这些模式。从如何合理划分微服务,到如何选择合适的通信协议(比如 Protobuf 的优势和使用场景),再到如何设计高效的数据存储和缓存策略,每一个环节都讲解得十分细致。尤其令我印象深刻的是,书中对“状态管理”这个难题的分析。在分布式系统中,如何保证各个服务之间的数据一致性,一直是困扰我的问题。这本书提供了一些非常实用的思路,比如利用分布式锁、消息队列的幂等性设计等,并且给出了相应的代码片段作为参考。虽然我还没有完全照搬书中的代码,但这些思路已经极大地启发了我对现有架构的优化方向。而且,作者在讨论性能瓶颈时,没有回避那些棘手的问题,而是直接切入,并给出了多种解决思路,这种坦诚和深入是我在其他地方很难看到的。
评分这本书的第七章,关于“高并发下的数据同步与一致性”,真的是把我之前对分布式系统的一些模糊认知给彻底点亮了。作者就像一位经验丰富的领航员,带领我穿梭在各种复杂的概念之中,比如 CAP 定理、BASE 理论,以及它们在游戏服务器设计中的实际应用。我之前一直对如何在高并发环境下保证数据的一致性感到头疼,书中对分布式事务的讲解,特别是对 Saga 模式和 TCC(Try-Confirm-Cancel)模式的深入剖析,为我打开了新的思路。他并没有停留在理论层面,而是通过生动的图示和相对精炼的代码示例,展示了这些模式的实现细节。我特别喜欢他对“最终一致性”的讲解,这在很多对实时性要求不是极致的游戏场景下,是一个非常重要的权衡。书中还详细介绍了如何利用 Redis、Kafka 等工具来实现高效的异步通信和消息队列,这对于解耦服务、提升系统吞 দক্ষতা 起了至关重要的作用。读完这一章,我感觉自己对如何构建一个健壮、可扩展的游戏后端有了更深刻的理解,对于如何处理那些“不可能三角”的问题,也更有信心了。
评分我之前一直在寻找一本能够帮助我理解游戏服务器开发中“可维护性”和“可扩展性”的书籍,这本书的第九章,简直就是我的“及时雨”。作者以一种非常务实的态度,讲解了如何构建一个易于维护和迭代的游戏服务器架构。他没有空谈理论,而是深入到代码层面,演示了如何通过合理的模块划分、清晰的接口定义,以及良好的编码规范来提升代码的可读性和可维护性。让我印象深刻的是,书中对“版本迭代”的讨论。在游戏开发中,频繁的版本更新是常态,如何平滑地进行服务器升级,避免对玩家造成影响,一直是个难题。这本书提供了一些非常实用的解决方案,比如灰度发布、热更新等。作者还分享了如何利用配置中心来管理游戏参数,以及如何设计一个灵活的插件化系统,以便于未来功能的扩展。更重要的是,书中对“日志系统”和“监控系统”的讲解,让我意识到了这两个看似基础但却极其重要的环节。他提供的日志采集、分析和告警机制,能够帮助我们及时发现和定位问题,从而大大缩短故障的排查时间。这对于保证游戏的稳定运行至关重要。
评分这本书的作者绝对是经验老道,从我读过的其他几本关于后端架构的书籍来看,这本书在叙事方式上可以说是独树一帜。它并没有一开始就抛出一堆晦涩难懂的概念,而是巧妙地将一个宏大的主题拆解成一个个易于理解的模块,然后层层递进。读第一部分的时候,我感觉自己仿佛置身于一个初学者课堂,作者用生动形象的比喻,将网络通信、并发模型这些看似枯燥的技术讲解得活灵活现。他没有直接给出代码实现,而是先带领读者梳理清楚背后的原理,比如 TCP/IP 的三次握手四次挥手,在书中被描绘得如同武侠小说中的招式演练,每一个步骤的含义和作用都清晰可见。这种“先悟道,后修行”的教学方式,让我对那些抽象的技术有了全新的认识。我一直觉得,理解原理比死记硬背 API 要重要得多,而这本书恰恰抓住了这一点。即使我之前对游戏服务器开发有一些基础,但通过这本书的讲解,我发现自己对一些底层机制的理解又上了一个台阶,感觉茅塞顿开。作者在讲解过程中,也穿插了一些业界常见的挑战和解决方案,这让我意识到,这不仅仅是一本技术手册,更是一位资深开发者分享的实战经验。
评分读完这本书的第五章,我感觉自己的游戏服务器开发“内功”得到了极大的提升。作者在这一章花了很大的篇幅来讲解“性能优化”和“安全加固”,这在我看来是游戏服务器开发中最为关键的两个方面。他并没有泛泛而谈,而是深入剖析了常见的性能瓶颈,比如垃圾回收(GC)对游戏帧率的影响,以及如何通过 JVM 参数调优来缓解这些问题。书中还列举了大量实际的性能分析案例,指导读者如何使用 JProfiler、VisualVM 等工具来定位和解决性能问题。最让我兴奋的是,作者在讲解网络 IO 优化时,对比了 BIO、NIO、Netty 等不同的实现方式,并详细分析了它们各自的优缺点以及适用场景。这让我终于明白了为什么 Netty 在游戏服务器开发中如此受欢迎。而在安全加固方面,书中从防范常见的网络攻击(如 DDoS、SQL 注入)到如何保护玩家账号和游戏数据的安全,都提供了详细的指导和实践建议。他提出的“纵深防御”理念,以及如何在游戏逻辑层面进行安全校验,都让我受益匪浅。我之前一直担心游戏中的作弊问题,这本书提供的思路,让我对如何从服务器端进行更有效的防范有了清晰的认识。
评分这书不咋地,贴代码凑字数,作者不厚道。
评分多次购买很不错,信赖京东
评分最近一直在买书,多亏京东了,速度很快
评分还可以的,书还好,快递也快
评分挺好 推荐购买 性价比高
评分这书不咋地,贴代码凑字数,作者不厚道。
评分还可以,基本上算得上是一线开发人员的项目总结。
评分不错呢。哈哈哈哈。不错呢…不错呢。哈哈哈哈。不错不错呢。哈哈哈哈。不错呢……不错呢。哈哈哈哈。不错呢…
评分书是正品,没有缺页漏页,正在阅读中。。。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.coffeedeals.club All Rights Reserved. 静流书站 版权所有