Unity3D網絡遊戲實戰(第2版)(簡體書)
商品資訊
系列名:遊戲開發與設計技術叢書
ISBN13:9787111612179
出版社:機械工業出版社
作者:羅培羽
出版日:2019/01/01
裝訂/頁數:平裝/432頁
規格:24cm*18.6cm (高/寬)
版次:二版
商品簡介
目次
相關商品
商品簡介
本書針對第1版進行改版,將“單機遊戲”融入到網絡部分的實例中,在講解網絡通信原理的同時,給出各個知識點的案例,並開發客戶端的網絡模塊和服務端程序框架。然後將一部分的坦克遊戲改造成聯網對戰的多人遊戲。本書基於Unity3D*新版本編寫,書中例子為商業遊戲簡化版本,讀者可以從中瞭解商業遊戲的設計思路和實現方法。讀者看完本書,初步擁有開發一款完整網絡遊戲的能力。
目次
前言
第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 消息
第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 消息
主題書展
更多
主題書展
更多書展今日66折
您曾經瀏覽過的商品
購物須知
大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。
特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。
無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。
為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。
若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。