編輯推薦
網絡多人遊戲是一個數十億美元級的業務,其中的一些遊戲吸引瞭數以韆萬計的玩傢。在這本實用且代碼豐富的指南中,作者將指導你完成多人遊戲開發的各個方麵,他們將帶你構建一個具有健壯性的多人遊戲架構,並創建各個引擎級的係統。你將通過深入的代碼示例來學習兩個完整的遊戲:一個動作遊戲和一個實時戰略(RTS)遊戲。
首先,本書從遊戲開發zhe的角度迴顧網絡和網絡編程的基本要素。接下來講解管理遊戲數據傳輸、通過網絡更新遊戲對象和組織加入遊戲的設備。你將學習如何在互聯網固有的不一緻性前提下,確保可靠的性能,以及如何設計遊戲代碼以實現zui大的安全性和可擴展性。zui後,本書以解決兩個關鍵問題結束:結閤玩傢服務和將遊戲托管在雲端。
作者在美國南加州大學的多人遊戲編程課程對本書的內容進行瞭廣泛的測試,學生和正嚮網絡遊戲遷移的遊戲開發zhe都會從中受益。
本書包括以下內容:
遊戲如何進化以應對網絡環境的挑戰;
在遊戲開發中使用互聯網通信協議和標準;
使用多人網絡遊戲中廣泛應用的Berkeley Socket;
規範遊戲數據格式,實現高效的互聯網傳輸;
同步狀態,使得所有玩傢共享同一個世界;
組織大型遊戲的網絡拓撲;
解決引起等待及數據丟失的延遲和抖動問題;
在不影響性能的前提下擴展遊戲;
打擊安全漏洞和軟件作弊;
利用當前流行遊戲引擎――Unreal 4和Unity遊戲引擎;
整閤玩傢服務,如比賽安排、成就和排行榜;
雲端運行遊戲服務器。
內容簡介
網絡多人遊戲已經成為遊戲産業的重要組成部分,本書是一本深入探討關於網絡多人遊戲編程的圖書。
全書分為13章,從網絡遊戲的基本概念、互聯網、伯剋利套接字、對象序列化、對象復製、網絡拓撲和遊戲案例、延遲、抖動和可靠性、改進的延遲處理、可擴展性、安全性、真實世界的引擎、玩傢服務、雲托管專用服務器等方麵深入介紹瞭網絡多人遊戲開發的知識,既全麵又詳盡地剖析瞭眾多核心概念。
本書的多數示例基於C++編寫,適閤對C++有一定瞭解的讀者閱讀。本書既可以作為大學計算機相關專業的指導教程,也可以作為普通讀者學習網絡遊戲編程的參考指南。
作者簡介
Joshua Glazer,是Naked Sky Entertainment的CTO和創始人之一。Naked Sky Entertainment是一個遊戲開發工作室,開發瞭很多遊戲,如RoboBlitz、MicroBot、Twister Mania和手機端遊戲Max Axe、Scrap Force。他為許多項目提供谘詢,包括Epic Games公司的《虛幻引擎》(Unreal Engine)、Riot Games公司的《英雄聯盟》(League of Legends)、THQ公司《毀滅全人類》(Destroy All Humans),還包括藝電(Electronic Arts)、Midway、微軟(Microsoft)和派拉濛電影公司(Paramount Pictures)等公司的很多項目。Joshua也是南加州大學(USC)的兼職講師,講授多人遊戲編程和遊戲引擎開發。
Sanjay Madhav,是南加州大學(USC)的gao級講師,講授遊戲編程、遊戲引擎、數據結構和編譯器知識。他在藝電(Electronic Arts)、Neversoft和Pandemic Studio做過開發zhe,涉足的遊戲有《榮譽勛章:血戰太平洋》(Medal of Honor: Pacific Assault)、《托尼霍剋極限滑闆8》(Tony Hawk’s Project 8)、《指環王:徵服》(Lord of the Rings: Conquest)和《破壞者》(The Saboteur)等。他也是《Game Programming Algorithms and Techniques》的作者之一。
目錄
第1章 網絡遊戲概述 1
1.1 多人遊戲的簡要曆程 1
1.1.1 本地多人遊戲 1
1.1.2 早期網絡多人遊戲 1
1.1.3 多用戶網絡遊戲 2
1.1.4 局域網遊戲 3
1.1.5 在綫遊戲 3
1.1.6 大規模多人在綫遊戲 4
1.1.7 移動網絡遊戲 4
1.2 星際圍攻:部落 5
1.2.1 平颱數據包模塊 7
1.2.2 連接管理器 7
1.2.3 流管理器 8
1.2.4 事件管理器 8
1.2.5 ghost管理器 8
1.2.6 移動管理器 9
1.2.7 其他係統 9
1.3 帝國時代 10
1.3.1 輪班計時器 11
1.3.2 同步 12
1.4 總結 13
1.5 復習題 13
1.6 延伸的閱讀資料 14
第2章 互聯網 15
2.1 起源:分組交換 15
2.2 TCP/IP模型 17
2.3 物理層 18
2.4 鏈路層 18
2.5 網絡層 22
2.5.1 IPv4 23
2.5.2 IPv6 36
2.6 傳輸層 37
2.6.1 UDP 38
2.6.2 TCP 39
2.7 應用層 48
2.7.1 DHCP 49
2.7.2 DNS 49
2.8 NAT 50
2.9 總結 56
2.10 復習題 57
2.11 延伸的閱讀資料 58
第3章 伯剋利套接字 61
3.1 創建Socket 61
3.2 API操作係統差異 63
3.3 socket地址 66
3.3.1 類型安全 68
3.3.2 用字符串初始化sockaddr 70
3.3.3 綁定socket 73
3.4 UDP Socket 74
3.5 TCP Socket 79
3.5.1 通過連接的socket實現發送和接收 80
3.5.2 類型安全的TCP Socket 82
3.6 阻塞和非阻塞I/O 84
3.6.1 多綫程 85
3.6.2 非阻塞I/O 86
3.6.3 Select 88
3.7 其他Socket選項 92
3.8 總結 94
3.9 復習題 94
3.10 延伸的閱讀資料 95
第4章 對象序列化 97
4.1 序列化的需求 97
4.2 流 100
4.2.1 內存流 101
4.2.2 字節存儲次序的兼容性 105
4.2.3 比特流 109
4.3 引用數據 115
4.3.1 內聯或嵌入 116
4.3.2 鏈接 117
4.4 壓縮 119
4.4.1 稀疏數組壓縮 120
4.4.2 熵編碼 121
4.4.3 定點 123
4.4.4 幾何壓縮 125
4.5 可維護性 127
4.5.1 抽象序列化方嚮 127
4.5.2 數據驅動的序列化 129
4.6 總結 132
4.7 復習題 133
4.8 延伸的閱讀資料 134
第5章 對象復製 135
5.1 世界狀態 135
5.2 復製對象 135
5.2.1 對象創建注冊錶 139
5.2.2 一個數據包中的多個對象 143
5.3 樸素的世界狀態復製方法 144
5.4 世界狀態中的變化 148
5.5 RPC作為序列化對象 155
5.6 自定義解決方案 158
5.7 總結 159
5.8 復習題 160
5.9 延伸的閱讀資料 160
第6章 網絡拓撲和遊戲案例 161
6.1 網絡拓撲 161
6.1.1 客戶端-服務器 161
6.1.2 對等網絡 163
6.2 客戶端-服務器的實現 165
6.2.1 服務器和客戶端的代碼分離 166
6.2.2 網絡管理器和歡迎新客戶端 167
6.2.3 輸入共享和客戶端代理 172
6.3 對等網絡的實現 177
6.3.1 歡迎新對等體和開始遊戲 179
6.3.2 命令共享和鎖步迴閤製 181
6.3.3 保持同步 187
6.4 總結 192
6.5 復習題 192
6.6 延伸的閱讀資料 193
第7章 延遲、抖動和可靠性 195
7.1 延遲 195
7.1.1 非網絡延遲 195
7.1.2 網絡延遲 198
7.2 抖動 199
7.3 數據包丟失 201
7.4 可靠性:TCP還是UDP 202
7.5 數據包傳遞通知 204
7.5.1 標記傳齣的數據包 205
7.5.2 接收數據包並發送確認 206
7.5.3 接收確認並傳遞狀態 211
7.6 對象復製可靠性 216
7.7 模擬真實世界的條件 224
7.8 總結 226
7.9 復習題 227
7.10 延伸的閱讀資料 228
第8章 改進的延遲處理 229
8.1 沉默的客戶終端 229
8.2 客戶端插值 231
8.3 客戶端預測 233
8.3.1 航位推測法 236
8.3.2 客戶端移動預測和重放 238
8.3.3 通過技巧和優化隱藏延遲 243
8.4 服務器端迴退 244
8.5 總結 245
8.6 復習題 246
8.7 延伸的閱讀資料 246
第9章 可擴展性 247
9.1 對象範圍和相關性 247
9.1.1 靜態區域 248
9.1.2 使用視錐 249
9.1.3 其他可見性技術 250
9.1.4 不可見時的相關性 252
9.2 服務器分區 253
9.3 實例化 255
9.4 優先級和頻率 255
9.5 總結 256
9.6 復習題 257
9.7 延伸的閱讀資料 257
第10章 安全性 259
10.1 數據包嗅探 259
10.1.1 中間人攻擊 259
10.1.2 在主機上的數據包嗅探 262
10.2 輸入驗證 263
10.3 軟件作弊檢測 264
10.3.1 維爾福反作弊係統 265
10.3.2 典獄長反作弊係統 266
10.4 保護服務器 267
10.4.1 分布式拒絕服務攻擊 267
10.4.2 壞數據 267
10.4.3 時序攻擊 268
10.4.4 入侵 269
10.5 總結 270
10.6 復習題 271
10.7 延伸的閱讀資料 271
第11章 真實世界的引擎 273
11.1 虛幻引擎4 273
11.1.1 套接字和基本的網絡體係 273
11.1.2 遊戲對象和拓撲 274
11.1.3 Actor復製 275
11.1.4 遠程過程調用 276
11.2 Unity 277
11.2.1 傳輸層API 278
11.2.2 遊戲對象和拓撲 278
11.2.3 生成對象和復製 279
11.2.4 遠程過程調用 279
11.2.5 比賽安排 280
11.3 總結 280
11.4 復習題 281
11.5 延伸的閱讀資料 281
第12章 玩傢服務 283
12.1 選擇一種玩傢服務 283
12.2 基本設置 283
12.2.1 初始化、運行和關閉 285
12.2.2 用戶ID和名稱 286
12.3 遊戲大廳和比賽安排 287
12.4 網絡 291
12.5 玩傢統計 294
12.6 玩傢成就 299
12.7 排行榜 300
12.8 其他服務 302
12.9 總結 303
12.10 復習題 303
12.11 延伸的閱讀資料 304
第13章 雲托管專用服務器 305
13.1 托管或不托管 305
13.2 行業工具 306
13.2.1 REST 307
13.2.2 JSON 307
13.2.3 Node.JS 308
13.3 概述和術語 308
13.3.1 服務器遊戲實例 309
13.3.2 遊戲服務器進程 309
13.3.3 遊戲服務器 310
13.3.4 硬件 311
13.4 本地服務器進程管理器 311
13.5 虛擬機管理器 318
13.6 總結 327
13.7 復習題 328
13.8 延伸的閱讀資料 328
附錄A 現代C++基礎 329
網絡多人遊戲架構與編程 epub pdf mobi txt 電子書 下載 2024
網絡多人遊戲架構與編程 下載 epub mobi pdf txt 電子書