發表於2024-11-24
為瞭幫助想瞭解入門遊戲服務器開發的從業人員或非從業人員迅速掌握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工程師。
? 想瞭解遊戲服務端技術的遊戲前端工程師。
? 需要遊戲服務器開發入門工具書的人員。
? 其他對遊戲服務器開發有興趣愛好的各類人員。
深度解析Java遊戲服務器開發 下載 mobi pdf epub txt 電子書 格式 2024
深度解析Java遊戲服務器開發 下載 mobi epub pdf 電子書不錯的書,囤傢裏看,看完瞭追加.
評分不錯不錯不錯不錯
評分內容全麵詳細,實戰性高,但講的不是很深入
評分感覺寫的簡單瞭,,,
評分闊以闊以闊以闊以闊以闊以闊以闊以闊以
評分挺好 推薦購買 性價比高
評分內容一般哎。。
評分這書不咋地,貼代碼湊字數,作者不厚道。
評分有點基礎就可以看,入門級,不是特難
深度解析Java遊戲服務器開發 mobi epub pdf txt 電子書 格式下載 2024