《Unity3D網絡遊戲實戰(第2版)》

《Unity3D網絡遊戲實戰(第2版)》 pdf epub mobi txt 電子書 下載2025

出版者:機械工業齣版社
作者:羅培羽
出品人:
頁數:432
译者:
出版時間:2019-1-1
價格:89.00元
裝幀:平裝
isbn號碼:9787111612179
叢書系列:
圖書標籤:
  • 遊戲開發
  • 網絡編程
  • 遊戲編程
  • 編程
  • unity3D
  • 遊戲
  • game
  • Unity3D
  • Unity3D
  • 網絡遊戲
  • 實戰
  • C#
  • 遊戲開發
  • 服務器
  • 客戶端
  • 多人遊戲
  • 第二版
  • 編程
想要找書就要到 本本書屋
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

具體描述

詳解Socket編程,搭建穩健的網絡框架;解決網遊中常見的卡頓、頻繁掉綫等問題;探求適宜的實時同步算法。完整的多人對戰遊戲案例,揭秘登錄注冊、遊戲大廳、戰鬥係統等模塊的實現細節。

想要製作當今熱門的網絡遊戲,特彆是開發手機網絡遊戲,或者想要到遊戲公司求職,都需要深入瞭解網絡遊戲的開發技術。本書分為三大部分,揭示網絡遊戲開發的細節。

第一部分“紮基礎”(1-5章)

介紹TCP網絡遊戲開發的必備知識。包括TCP異步連接、多路復用技術;處理粘包分包的方法;設置正確的網絡參數、完整的發送數據、安全的關閉連接等方法。第三章《實踐齣真知:大亂鬥遊戲》會介紹一款簡單網絡遊戲開發的全過程。

第二部分“搭框架”(6-7章)

介紹瞭商業級客戶端網絡框架的實現方法。這套框架具有較高的通用性,解決瞭網絡遊戲開發中常遇到的問題,且達到極緻的性能要求,可以運用在多種遊戲上。書中還實現瞭一套c#服務端框架,使用select多路復用,做到底層與邏輯分離,具有消息分發,事件處理等模塊。

第三部分“做遊戲”(8-12章)

通過一個完整的實例,講解網絡遊戲的設計思路。包括遊戲實體的類設計、怎樣組織代碼、怎樣實現遊戲大廳(房間係統)、怎樣實現實體的同步。這一部分會使用第二部分搭好的框架,一步步做齣完整的遊戲。

作者簡介

羅培羽,正在創作好玩遊戲的程序員。參與多個項目研發工作,擁有豐富的實戰經驗。

自2009年發布第一部視頻教程《教你用vb製作rpg遊戲》以來,先後發布和齣版《教你製作3DRPG遊戲》、《手把手教你用c#製作rpg遊戲》、《Unity3D網絡遊戲實戰(第1版)》等教材;目前關注手機遊戲、AI技術等領域;還采訪和記錄一些普通開發者的心路曆程。

目錄資訊

前言
第1章 網絡遊戲的開端:Echo 1
1.1 藏在幕後的服務端 1
1.2 網絡連接的端點:Socket 3
1.2.1 Socket 3
1.2.2 IP地址 3
1.2.3 端口 4
1.2.4 Socket通信的流程 6
1.2.5 TCP和UDP協議 7
1.3 開始網絡編程:Echo 8
1.3.1 什麼是Echo程序 8
1.3.2 編寫客戶端程序 8
1.3.3 客戶端代碼知識點 10
1.3.4 完成客戶端 11
1.3.5 創建服務端程序 12
1.3.6 編寫服務端程序 14
1.3.7 服務端知識點 15
1.3.8 測試Echo程序 15
1.4 更多API 16
1.5 公網和局域網 17
第2章 分身有術:異步和多路復用 19
2.1 什麼樣的代碼是異步代碼 19
2.2 異步客戶端 20
2.2.1 異步Connect 21
2.2.2 Show Me The Code 22
2.2.3 異步Receive 23
2.2.4 異步Send 26
2.3 異步服務端 29
2.3.1 管理客戶端 29
2.3.2 異步Accept 30
2.3.3 程序結構 31
2.3.4 代碼展示 31
2.4 實踐:做個聊天室 35
2.4.1 服務端 35
2.4.2 客戶端 35
2.4.3 測試 36
2.5 狀態檢測Poll 36
2.5.1 什麼是Poll 36
2.5.2 Poll客戶端 37
2.5.3 Poll服務端 38
2.6 多路復用Select 41
2.6.1 什麼是多路復用 41
2.6.2 Select服務端 42
2.6.3 Select客戶端 44
第3章 實踐齣真知:大亂鬥遊戲 45
3.1 什麼是大亂鬥遊戲 45
3.2 搭建場景 46
3.3 角色類Human 49
3.3.1 類結構設計 49
3.3.2 BaseHuman 49
3.3.3 角色預設 51
3.3.4 CtrlHuman 54
3.3.5 SyncHuman 57
3.4 如何使用網絡模塊 57
3.4.1 委托 57
3.4.2 通信協議 59
3.4.3 消息隊列 60
3.4.4 NetManager類 60
3.4.5 測試網絡模塊 64
3.5 進入遊戲:Enter協議 66
3.5.1 創建角色 67
3.5.2 接收Enter協議 70
3.5.3 測試Enter協議 70
3.6 服務端如何處理消息 72
3.6.1 反射機製 72
3.6.2 消息處理函數 73
3.6.3 事件處理 74
3.6.4 玩傢數據 76
3.6.5 處理Enter協議 77
3.7 玩傢列錶:List協議 77
3.7.1 客戶端處理 78
3.7.2 服務端處理 79
3.7.3 測試 79
3.8 移動同步:Move協議 80
3.8.1 客戶端處理 80
3.8.2 服務端處理 81
3.8.3 測試 81
3.9 玩傢離開:Leave協議 82
3.9.1 客戶端處理 82
3.9.2 服務端處理 82
3.9.3 測試 82
3.10 攻擊動作:Attack協議 83
3.10.1 播放攻擊動作 83
3.10.2 客戶端處理 87
3.10.3 服務端處理 88
3.10.4 測試 88
3.11 攻擊傷害:Hit協議 89
3.11.1 客戶端處理 89
3.11.2 服務端處理 91
3.12 角色死亡:Die協議 91
3.12.1 客戶端處理 91
3.12.2 測試 92
第4章 正確收發數據流 94
4.1 TCP數據流 94
4.1.1 係統緩衝區 94
4.1.2 粘包半包現象 96
4.1.3 人工重現粘包現象 97
4.2 解決粘包問題的方法 97
4.2.1 長度信息法 97
4.2.2 固定長度法 98
4.2.3 結束符號法 98
4.3 解決粘包的代碼實現 99
4.3.1 發送數據 99
4.3.2 接收數據 99
4.3.3 處理數據 101
4.3.4 完整的示例 104
4.3.5 測試程序 106
4.4 大端小端問題 109
4.4.1 為什麼會有大端小端之分 110
4.4.2 使用Reverse()兼容大小端編碼 111
4.4.3 手動還原數值 111
4.5 完整發送數據 112
4.5.1 不完整發送示例 113
4.5.2 如何解決發送不完整問題 113
4.5.3 ByteArray和Queue 117
4.5.4 解決綫程衝突 120
4.5.5 為什麼要使用隊列 121
4.6 高效的接收數據 122
4.6.1 不足之處 122
4.6.2 完整的ByteArray 123
4.6.3 將ByteArray應用到異步程序 129
第5章 深入瞭解TCP,解決暗藏問題 133
5.1 從TCP到銅綫 133
5.1.1 應用層 133
5.1.2 傳輸層 134
5.1.3 網絡層 135
5.1.4 網絡接口 135
5.2 數據傳輸流程 136
5.2.1 TCP連接的建立 136
5.2.2 TCP的數據傳輸 137
5.2.3 TCP連接的終止 138
5.3 常用TCP參數 138
5.3.1 ReceiveBufferSize 138
5.3.2 SendBufferSize 139
5.3.3 NoDelay 139
5.3.4 TTL 140
5.3.5 ReuseAddress 141
5.3.6 LingerState 142
5.4 Close的恰當時機 144
5.5 異常處理 146
5.6 心跳機製 147
第6章 通用客戶端網絡模塊 148
6.1 網絡模塊設計 148
6.1.1 對外接口 148
6.1.2 內部設計 149
6.2 網絡事件 150
6.2.1 事件類型 151
6.2.2 監聽列錶 151
6.2.3 分發事件 152
6.3 連接服務端 152
6.3.1 Connect 152
6.3.2 ConnectCallback 154
6.3.3 測試程序 155
6.4 關閉連接 156
6.4.1 isClosing? 157
6.4.2 Close 157
6.4.3 測試 158
6.5 Json協議 158
6.5.1 為什麼會有協議類 158
6.5.2 使用JsonUtility 159
6.5.3 協議格式 160
6.5.4 協議文件 161
6.5.5 協議體的編碼解碼 162
6.5.6 協議名的編碼解碼 163
6.6 發送數據 165
6.6.1 Send 165
6.6.2 SendCallback 166
6.6.3 測試 167
6.7 消息事件 168
6.8 接收數據 170
6.8.1 新的成員 171
6.8.2 ConnectCallback 171
6.8.3 ReceiveCallback 172
6.8.4 OnReceiveData 172
6.8.5 Update 174
6.8.6 測試 175
6.9 心跳機製 176
6.9.1 PING和PONG協議 176
6.9.2 成員變量 177
6.9.3 發送PING協議 178
6.9.4 監聽PONG協議 178
6.9.5 測試 179
6.10 Protobuf協議 179
6.10.1 什麼是Protobuf 179
6.10.2 編寫proto文件 180
6.10.3 生成協議類 181
6.10.4 導入protobuf-net.dll 183
6.10.5 編碼解碼 183
第7章 通用服務端框架 186
7.1 服務端架構 187
7.1.1 總體架構 187
7.1.2 模塊劃分 187
7.1.3 遊戲流程 188
7.2 Json編碼解碼 189
7.2.1 添加協議文件 189
7.2.2 引用System.web.Extensions 190
7.2.3 修改MsgBase類 191
7.2.4 測試 192
7.3 網絡模塊 193
7.3.1 整體結構 193
7.3.2 ClientState 194
7.3.3 開啓監聽和多路復用 194
7.3.4 處理監聽消息 196
7.3.5 處理客戶端消息 197
7.3.6 關閉連接 198
7.3.7 處理協議 199
7.3.8 Timer 200
7.3.9 發送協議 201
7.3.10 測試 202
7.4 心跳機製 204
7.4.1 lastPingTime? 204
7.4.2 時間戳 204
7.4.3 迴應MsgPing協議 205
7.4.4 超時處理 205
7.4.5 測試程序 206
7.5 玩傢的數據結構 206
7.5.1 完整的ClientState 206
7.5.2 PlayerData 208
7.5.3 Player 208
7.5.4 PlayerManager 209
7.6 配置MySQL數據庫 211
7.6.1 安裝並啓動MySQL數據庫 211
7.6.2 安裝Navicat for MySQL 213
7.6.3 配置數據錶 214
7.6.4 安裝connector 215
7.6.5 MySQL基礎知識 216
7.7 數據庫模塊 217
7.7.1 連接數據庫 218
7.7.2 防止SQL注入 220
7.7.3 IsAccountExist 220
7.7.4 Register 221
7.7.5 CreatePlayer 223
7.7.6 CheckPassword 224
7.7.7 GetPlayerData 225
7.7.8 UpdatePlayerData 226
7.8 登錄注冊功能 226
7.8.1 注冊登錄協議 227
7.8.2 記事本協議 228
7.8.3 注冊功能 229
7.8.4 登錄功能 229
7.8.5 退齣功能 231
7.8.6 獲取文本功能 231
7.8.7 保存文本功能 231
7.8.8 客戶端界麵 232
7.8.9 客戶端監聽 233
7.8.10 客戶端注冊功能 235
7.8.11 客戶端登錄功能 235
7.8.12 客戶端記事本功能 236
7.8.13 測試 236
第8章 完整大項目《坦剋大戰》 239
8.1 《坦剋大戰》遊戲功能 239
8.1.1 登錄注冊 239
8.1.2 房間係統 240
8.1.3 戰鬥係統 241
8.2 坦剋模型 242
8.2.1 導入模型 242
8.2.2 模型結構 243
8.3 資源管理器 245
8.3.1 設計構想 245
8.3.2 代碼實現 245
8.3.3 測試 246
8.4 坦剋類 246
8.4.1 設計構想 246
8.4.2 代碼實現 246
8.4.3 測試 247
8.5 行走控製 248
8.5.1 速度參數 249
8.5.2 移動控製 249
8.5.3 測試 250
8.5.4 走在地形上 251
8.6 坦剋爬坡 253
8.6.1 Unity的物理係統 253
8.6.2 添加物理組件 253
8.6.3 測試 254
8.7 相機跟隨 255
8.7.1 功能需求 255
8.7.2 數學原理 255
8.7.3 編寫代碼 257
8.7.4 測試 258
8.8 鏇轉炮塔 260
8.8.1 炮塔元素 260
8.8.2 鏇轉控製 261
8.8.3 測試 262
8.9 發射炮彈 262
8.9.1 製作炮彈預設 262
8.9.2 製作爆炸效果 263
8.9.3 炮彈組件 264
8.9.4 坦剋開炮 266
8.9.5 測試 268
8.10 摧毀敵人 269
8.10.1 坦剋的生命值 269
8.10.2 焚燒特效 270
8.10.3 坦剋被擊中處理 271
8.10.4 炮彈的攻擊處理 272
8.10.5 測試 272
第9章 UI界麵模塊 274
9.1 界麵模塊的設計 274
9.1.1 簡單的界麵調用 274
9.1.2 通用界麵模塊 275
9.2 場景結構 277
9.3 麵闆基類BasePanel 278
9.3.1 設計要點 278
9.3.2 代碼實現 278
9.3.3 知識點 279
9.4 界麵管理器PanelManager 281
9.4.1 層級管理 281
9.4.2 打開麵闆 282
9.4.3 關閉麵闆 284
9.5 登錄麵闆LoginPanel 284
9.5.1 導入資源 284
9.5.2 UI組件 286
9.5.3 製作麵闆預設 286
9.5.4 登錄麵闆類 289
9.5.5 打開麵闆 289
9.5.6 引用UI組件 290
9.5.7 網絡監聽 291
9.5.8 登錄和注冊按鈕 293
9.5.9 收到登錄協議 293
9.6 注冊麵闆RegisterPanel 294
9.6.1 製作麵闆預設 294
9.6.2 注冊麵闆類 296
9.6.3 按鈕事件 298
9.6.4 收到注冊協議 299
9.7 提示麵闆TipPanel 300
9.7.1 製作麵闆預設 300
9.7.2 提示麵闆類 301
9.7.3 測試麵闆 302
9.8 遊戲入口GameMain 303
9.8.1 設計要點 303
9.8.2 代碼實現 304
9.8.3 緩存用戶名 305
9.9 功能測試 306
9.9.1 登錄 306
9.9.2 注冊 307
9.9.3 下綫 309
第10章 遊戲大廳和房間 310
10.1 列錶麵闆預設 311
10.1.1 整體結構 311
10.1.2 個人信息欄 312
10.1.3 操作欄 312
10.1.4 房間列錶欄 313
10.1.5 Scroll View 315
10.1.6 列錶項Room 316
10.2 房間麵闆預設 318
10.2.1 整體結構 318
10.2.2 列錶欄 319
10.2.3 列錶項Player 320
10.2.4 控製欄 322
10.3 協議設計 322
10.3.1 查詢戰績MsgGetAchieve協議 323
10.3.2 查詢房間列錶MsgGetRoom--List協議 323
10.3.3 創建房間MsgCreateRoom協議 324
10.3.4 進入房間MsgEnterRoom協議 324
10.3.5 查詢房間信息MsgGetRoom-Info協議 324
10.3.6 退齣房間MsgLeaveRoom協議 325
10.3.7 開始戰鬥MsgStartBattle協議 325
10.4 列錶麵闆邏輯 326
10.4.1 麵闆類 326
10.4.2 獲取部件 326
10.4.3 網絡監聽 328
10.4.4 刷新戰績 329
10.4.5 刷新房間列錶 329
10.4.6 加入房間 330
10.4.7 創建房間 331
10.4.8 刷新按鈕 332
10.5 房間麵闆邏輯 332
10.5.1 麵闆類 332
10.5.2 獲取部件 333
10.5.3 網絡監聽 334
10.5.4 刷新玩傢列錶 334
10.5.5 退齣房間 336
10.5.6 開始戰鬥 336
10.6 打開列錶麵闆 337
10.7 服務端玩傢數據 337
10.7.1 存儲數據 338
10.7.2 臨時數據 338
10.8 服務端房間類 339
10.8.1 管理器和房間類的關係 339
10.8.2 房間類的設計要點 340
10.8.3 添加玩傢 341
10.8.4 選擇陣營 343
10.8.5 刪除玩傢 343
10.8.6 選擇新房主 345
10.8.7 廣播消息 345
10.8.8 生成房間信息 345
10.9 服務端房間管理器 347
10.9.1 數據結構 347
10.9.2 獲取房間 347
10.9.3 添加房間 348
10.9.4 刪除房間 348
10.9.5 生成列錶信息 348
10.10 服務端消息處理 349
10.10.1 查詢戰績MsgGet-Achieve 350
10.10.2 查詢房間列錶MsgGetRoom-List 350
10.10.3 創建房間MsgCreate-Room 351
10.10.4 進入房間MsgEnterRoom 351
10.10.5 查詢房間信息MsgGet-RoomInfo 352
10.10.6 離開房間MsgLeave-Room 352
10.11 玩傢事件處理 353
10.12 測試 354
第11章 戰鬥和勝負判定 358
11.1 協議設計 358
11.1.1 進入戰鬥MsgEnterBattle 359
11.1.2 戰鬥結果MsgBattleResult 359
11.1.3 退齣戰鬥MsgLeaveBattle 360
11.2 坦剋 360
11.2.1 不同陣營的坦剋預設 360
11.2.2 戰鬥模塊 361
11.2.3 同步坦剋SyncTank 362
11.2.4 坦剋的屬性 362
11.3 戰鬥管理器 363
11.3.1 設計要點 363
11.3.2 管理器類 363
11.3.3 坦剋管理 364
11.3.4 重置戰場 365
11.3.5 開始戰鬥 366
11.3.6 産生坦剋 367
11.3.7 戰鬥結束 369
11.3.8 玩傢離開 369
11.4 戰鬥結果麵闆 369
11.4.1 麵闆預設 369
11.4.2 麵闆邏輯 371
11.5 服務端開啓戰鬥 373
11.5.1 能否開始戰鬥 373
11.5.2 定義齣生點 373
11.5.3 坦剋信息 376
11.5.4 開啓戰鬥 377
11.5.5 消息處理 377
11.6 服務端勝負判斷 378
11.6.1 是否死亡 379
11.6.2 勝負決斷函數 379
11.6.3 定時器 380
11.6.4 Room::Update 380
11.7 服務端斷綫處理 381
11.8 測試 382
11.8.1 進入戰場 382
11.8.2 離開戰場 384
第12章 同步戰鬥信息 386
12.1 同步理論 387
12.1.1 同步的過程 387
12.1.2 同步的難題 387
12.2 狀態同步 389
12.2.1 直接狀態同步 389
12.2.2 跟隨算法 390
12.2.3 預測算法 390
12.3 幀同步 391
12.3.1 指令同步 391
12.3.2 從Update說起 392
12.3.3 什麼是同步幀 393
12.3.4 指令 394
12.3.5 指令的執行 394
12.4 協議設計 395
12.4.1 位置同步MsgSyncTank 396
12.4.2 開火MsgFire 396
12.4.3 擊中MsgHit 397
12.5 發送同步信息 397
12.5.1 發送位置信息 397
12.5.2 發送開火信息 398
12.5.3 發送擊中信息 399
12.6 處理同步信息 400
12.6.1 協議監聽 400
12.6.2 OnMsgSyncTank 401
12.6.3 OnMsgFire 401
12.6.4 OnMsgHit 402
12.7 同步坦剋SyncTank 402
12.7.1 預測算法的成員變量 402
12.7.2 移動到預測位置 403
12.7.3 初始化 404
12.7.4 更新預測位置 405
12.7.5 炮彈同步 406
12.8 服務端消息處理 406
12.8.1 位置同步MsgSyncTank 407
12.8.2 開火MsgFire 408
12.8.3 擊中MsgHit 409
12.8.4 調試 410
12.9 完善細節 412
12.9.1 滾動的輪子和履帶 412
12.9.2 靈活操作 413
12.9.3 準心 413
12.9.4 自動瞄準 414
12.9.5 界麵和場景優化 414
12.9.6 戰鬥麵闆 415
12.9.7 擊殺提示 416
12.10 結語 416
· · · · · · (收起)

讀後感

評分

評分

評分

評分

評分

用戶評價

评分

作者引導著編寫瞭一個Socket網絡庫,並用其製作瞭一個坦剋大戰項目。市麵上講遊戲服務器開發的書籍不多,這本書讓我打瞭些基礎。四星的原因是內容仍然太囉嗦,第九章的 UI 代碼完全沒有存在的必要,還有其他的UI 邏輯、C#語法等等,都可以考慮讓讀者通過腳注或者讀源碼來學習,我希望這本書能更純粹,能專注於一些基礎教程不會提及的內容。

评分

作者引導著編寫瞭一個Socket網絡庫,並用其製作瞭一個坦剋大戰項目。市麵上講遊戲服務器開發的書籍不多,這本書讓我打瞭些基礎。四星的原因是內容仍然太囉嗦,第九章的 UI 代碼完全沒有存在的必要,還有其他的UI 邏輯、C#語法等等,都可以考慮讓讀者通過腳注或者讀源碼來學習,我希望這本書能更純粹,能專注於一些基礎教程不會提及的內容。

评分

體驗不好,資源也老。新版都取消自帶瞭。

评分

作者引導著編寫瞭一個Socket網絡庫,並用其製作瞭一個坦剋大戰項目。市麵上講遊戲服務器開發的書籍不多,這本書讓我打瞭些基礎。四星的原因是內容仍然太囉嗦,第九章的 UI 代碼完全沒有存在的必要,還有其他的UI 邏輯、C#語法等等,都可以考慮讓讀者通過腳注或者讀源碼來學習,我希望這本書能更純粹,能專注於一些基礎教程不會提及的內容。

评分

實例有價值,網遊的基礎開發講得還算細緻。 章節編排有的顯得比較冗餘,可以稱得上囉嗦瞭;很多圖片不知所雲。

本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 onlinetoolsland.com All Rights Reserved. 本本书屋 版权所有