-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

騰訊游戲開發精粹

( 簡體 字)
作者:騰訊游戲類別:1. -> 遊戲 -> 遊戲程式
譯者:
出版社:電子工業出版社騰訊游戲開發精粹 3dWoo書號: 51659
詢問書籍請說出此書號!

缺書
NT售價: 395

出版日:8/1/2019
頁數:292
光碟數:0
站長推薦:
印刷:語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787121366024
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

推薦序
前不久,一位高中生物老師,也是我小孩同班同學的媽媽,主動問我這幾年新開設的游戲設計和電子競技專業是否值得報考,她的孩子對制作游戲非常有興趣。聽到這個咨詢,我長舒了一口氣:游戲正逐漸被越來越多的人認可。
我們知道,電子游戲是“第九藝術”,是各種藝術和技術能力的集大成者。記得在10 多年前,我參與開發騰訊第一款自研游戲《QQ 幻想》的時候,隨著項目的進展,我深深體會到,開發出一款高質量的MMORPG 游戲需要很強的、綜合的技術能力。比如一些技術細節:如何在最大限度限制瞬移外掛的情況下,處理弱網絡環境下角色的移動拉扯和同步?怎樣高效地實現基于決策樹的各種NPC 的AI,使得NPC 的行為更貼近自然和有趣?游戲內經濟系統的平衡,各種角色之間能力的平衡,還有上百萬用戶同時在線時的穩定性、熱更新、熱切換……諸如此類,在當時的技術背景下,是頗為嚴峻的挑戰。
我們也知道,知識只有分享才更有價值。站在巨人的肩膀上,會看得更遠;有了前輩的經驗加持,也會成長得更快。《騰訊游戲開發精粹》這本書匯集了騰訊游戲在游戲開發中的部分精華,從客戶端到服務器端,從物理引擎到工具鏈,從圖形學到AI,各領域均有被驗證過的解決方案呈現。騰訊是一家具有高度社會責任感的企業,它愿意將這些能力和經驗無私奉獻給大家,為行業的發展貢獻自己的一點力量。互相學習,一起進步,是我們的希望。
我們還知道,電子游戲的特征之一是互動,在飯桌、在房間、在地鐵……我們都可以看到各種玩游戲情景的開心愉快,它已經融入我們的日常生活之中。娛樂是人的天性,但讓生活更美好,是我們每一個游戲從業者的使命。從虛擬世界到現實生活,再從現實生活到虛擬世界,用技術的手段來改變生活,未來就靠你了!
——崔曉春 騰訊互動娛樂 公共研發運營體系負責人

編者序
游戲開發對于一般軟件開發者來說,總像蒙上了一層神秘面紗。這可能是由多個原因造成的。首先,游戲開發的技術范疇比較廣,一些技術如計算機圖形學、物理模擬、實時網絡同步等比較少應用在一般軟件開發中。其次,游戲開發屬于創意工業,對各類型游戲的需求有很多區別,不少技術沒有形成標準,各家的技術方案、工作流程等也會有不少差異。最后,公司之間甚至公司之內也可能有技術壁壘,影響知識和技術的流通。這些情況不利于有興趣的朋友進入此行業,從業者的進步也會受限,長遠影響行業的發展,難以面對全球的激烈競爭。
編者在20 世紀90 年代的香港,互聯網未普及之前,只能通過BBS收集一些國外“漂流”過來的游戲開發技術文檔,例如《德軍總部3D》的三維室內場景渲染及紋理貼圖技術、如何使用非標準的 Mode X 去做 VGA 256 色雙緩沖區渲染等。在那個資訊匱乏的年代,每次遇到新技術的解密文檔,編者都興奮得如獲至寶。
而在國內做游戲開發的“老鳥”,大概都會翻過千禧年代的《游戲編程精粹(Game Programming Gems)》系列叢書。這套叢書影響了一整代的開發者,讓我們能一窺世界各地游戲開發者的各種秘技,解決在游戲開發中遇到的各種共同問題,同時可以激發靈感,研發比書中更好的解決方案。
進入互聯網信息爆炸的年代,我們能在網上接觸無數的博客、問答等信息,可以更快速地知悉各種新技術。但同時,網上信息相對于傳統出版來說,通常較為零散,品質參差不齊。從業者也基于保密原因,不會隨便公開一些游戲開發中使用到的新技術。
本書受《游戲編程精粹》系列叢書的啟發,希望鼓勵騰訊游戲的工程師與業界同行分享一些實際應用在游戲里的技術,與行業共享。通過內部審核及編輯等機制,盡量篩選可對外公開、品質的文章,也保證技術具有一定的通用性及時效性。對國內業界而言,希望這本書能成為一小步,促進更開放的未來,提升整體技術水平。
本書從提案到出版長達一年半的時間,除了依靠各位作者在忙碌的開發任務中抽空撰文,還必須感謝騰訊游戲學院院長夏琳女士的大力支持,也要感謝騰訊游戲學院的董磊、劉雅和陳若毅使項目成功推進。我也衷心感謝本書的編委郭智、劉安健、匡西尼、安柏霖、王楊軍和沙鷹(排名不分先后),他們都是騰訊游戲各個部門的技術專家,悉心為文章的內容把關。也非常感謝電子工業出版社的張春雨和葛娜協助出版事宜。
最后,希望本書能對讀者有所幫助,如有任何意見請不吝通過郵件反饋給我們:tencentgamesgems@tencent.com,期望在續篇再見。
——葉勁峰 《騰訊游戲開發精粹》主編 騰訊互動娛樂 魔方工作室群技術總監
內容簡介:

《騰訊游戲開發精粹》是騰訊游戲研發團隊的技術結晶,由10 多名騰訊游戲資深技術專家撰寫而成,整理了團隊在自主游戲研發的道路上積累沉淀的技術方案,具有較強的通用性及時效性,內容涵蓋游戲腳本系統及開發工具、數學和物理、計算機圖形、人工智能與后臺架構等。
目錄:

第一部分 游戲數學
第1 章 基于SDF的搖桿移動 2
摘要 2
1.1 引言 3
1.2 有號距離場(SDF 3
1.3 利用柵格數據預計算SDF 4
1.4 SDF 的碰撞檢測與碰撞響應 5
1.5 避免往返 8
1.6 利用多邊形數據預計算SDF 9
1.7 其他需求 10
1.7.1 如何將角色從障礙區域中移出 10
1.7.2 角色不能越過障礙物的遠距離移動 11
1.8 動態障礙物 12
1.9 AI尋路 14
1.10 動態地圖 14
1.11 總結 17
參考文獻 17

第2 章 高性能的定點數實現方案 18
摘要 18
2.1 引言 18
2.1.1 浮點數簡介 18
2.1.2 32 位浮點數(單精度)表示原理 19
2.2 基于整數的二進制表示的定點數原理 19
2.2.1 32 位定點數表示原理 19
2.2.2 64 位定點數表示原理 20
2.3 定點數的四則運算 21
2.3.1 加法與減法 22
2.3.2 乘法 22
2.3.3 除法 23
2.4 定點數開方與超越函數實現方法 23
2.4.1 多項式擬合 24
2.4.2 正弦/余弦函數 25
2.4.3 指數函數 26
2.4.4 對數函數 27
2.4.5 開方運算 27
2.4.6 開方求倒數 28
2.4.7 為什么不用查表法 30
2.5 定點數的誤差對比與性能測試 30
2.5.1 超越函數及開方的誤差測試 30
2.5.2 性能測試 30
2.6 總結 31
參考文獻 31

第二部分 游戲物理
第3 章 一種高效的弧長參數化路徑系統 34
摘要 34
3.1 引言 34
3.2 端點間二次樣條的構建 35
3.3 路徑的構建 38
3.4 曲線的弧長參數化 39
3.5 曲線上的簡單運動 42
3.5.1 跑動 42
3.5.2 跳躍 43
3.5.3 相鄰路徑的切換 44
3.5.4 曲線上的旋轉插值 45
3.6 總結 46
參考文獻 46

第4 章 船的物理模擬及同步設計 47
摘要 47
4.1 浮力系統 48
4.1.1 浮力 48
4.1.2 升力 52
4.1.3 拉力 52
4.1.4 拍擊力 53
4.1.5 阻力上限 54
4.2 引擎系統 55
4.2.1 移動、轉向模擬 55
4.2.2 向心力計算 56
4.3 Entity-Component 及同步概覽 56
4.4 浮力系統物理更新機制 57
4.5 總結 59
參考文獻 59

第5 章 3D 游戲碰撞之體素內存、效率優化 60
摘要 60
5.1 背景介紹 60
5.2 體素生成 62
5.3 體素內存優化 62
5.3.1 體素合并的原理 62
5.3.2 體素合并的算法 64
5.3.3 地面處理 65
5.3.4 水的處理 66
5.3.5 范圍控制 67
5.3.6 內存自管理 67
5.3.7 體素內存優化算法的效果 68
5.3.8 體素效率優化 69
5.4 NavMesh 生成 69
5.4.1 體素生成NavMesh 69
5.4.2 獲取地面高度 70
5.4.3 后臺阻擋圖 71
5.4.4 前臺優先級NavMesh 71
5.4.5 鋸齒 72
5.5 行走、輕功、攝像機碰撞 73
5.5.1 行走 73
5.5.2 輕功 75
5.5.3 攝像機碰撞 75
參考文獻 76

第三部分 計算機圖形
第6 章 移動端體育類寫實模型優化 78
摘要 78
6.1 引言 79
6.2 方案設計思路 79
6.2.1 角色統一與差異元素分析 79
6.2.2 角色表現=人體+服飾 80
6.2.3 角色資源整理 83
6.2.4 資源制作與實現 84
6.3 具體實現 92
6.3.1 實現流程 92
6.3.2 CPU 邏輯 93
6.3.3 GPU 渲染 97
6.4 效果收益、性能分析和結語 97
6.4.1 方案優劣勢 98
6.4.2 方案補充 99
6.4.3 應用場景 99
參考文獻 100

第7 章 大規模3D 模型數據的優化壓縮與精細漸進加載 101
摘要 101
7.1 引言 102
7.2 頂點數據優化 102
7.2.1 頂點數據合并去重 103
7.2.2 索引數據合并 104
7.2.3 頂點數據排序 104
7.2.4 子網格的拆分與合并 105
7.2.5 頂點數據編碼壓縮 105
7.3 有利于漸進加載的數據組織方式 112
7.4 總結 113
參考文獻 114

第四部分 人工智能及后臺架構
第8 章 游戲AI 開發框架組件behaviac 和元編程 116
摘要 116
8.1 behaviac 的工作原理 117
8.1.1 類型信息 117
8.1.2 什么是行為樹 118
8.1.3 例子1 119
8.1.4 執行說明 119
8.1.5 進階 120
8.1.6 例子2 120
8.1.7 再進階 123
8.1.8 總結 123
8.2 元編程在behaviac中的應用 125
8.2.1 模板特化 126
8.2.2 加載中的特例化 126
8.2.3 運行中的特例化 129
第9 章 跳點搜索算法的效率、內存、路徑優化方法 131
摘要 131
9.1 引言 132
9.2 JPS算法 133
9.2.1 算法介紹 133
9.2.2 A*算法流程 133
9.2.3 JPS算法流程 135
9.2.4 JPS算法的“兩個定義、三個規則 135
9.2.5 算法舉例 137
9.3 JPS算法優化 138
9.3.1 JPS效率優化算法 138
9.3.2 JPS內存優化 144
9.3.3 路徑優化 145
9.4 GPPC 比賽解讀 146
9.4.1 GPPC 比賽與地圖數據集 146
9.4.2 GPPC 的評價體系 148
9.4.3 GPPC 參賽算法及其比較 150
參考文獻 151
第10 章 優化MMORPG開發效率及性能的有限多線程模型 152
摘要 152
10.1 引言 152
10.1.1 多進程單線程模型 153
10.1.2 單進程多線程模型 153
10.1.3 單進程單線程模型 153
10.2 有限多線程模型 154
10.3 使用OpenMP框架快速實現有限多線程模型 156
10.4 控制多線程邏輯代碼 158
10.5 異步化解決數據安全問題 159
10.6 對“不安全”訪問的防范 160
10.7 拆解大鎖 161
10.8 其他建議 163
參考文獻 164

第五部分 游戲腳本系統
第11 章 Lua翻譯工具——C#轉Lua 166
摘要 166
11.1 設計初衷 166
11.2 實現原理 167
11.2.1 參考對比行業內類似的解決方案 167
11.2.2 翻譯原理 168
11.2.3 翻譯流程 168
11.3 翻譯示例 170
11.4 實現細節 174
11.4.1 連續賦值 175
11.4.2 switch 175
11.4.3 continue 176
11.4.4 不定參數 177
11.4.5 條件表達式 178
11.5 運行性能 179
11.6 TKLua 翻譯藍圖 179
11.6.1 類關系 180
11.6.2 類成員 180
11.6.3 方法體 181
11.7 發展方向 182
11.8 總結 184
參考文獻 185

第12 章 Unreal Engine 4集成Lua 186
摘要 186
12.1 引言 186
12.2 UE4 元信息 187
12.2.1 介紹 187
12.2.2 Lua 通過元信息與UE4交互 189
12.2.3 讀寫成員變量 189
12.2.4 函數調用 190
12.2.5 C++調用Lua 191
12.2.6 小結 192
12.3 通過模板元編程生成“膠水”代碼 192
12.3.1 接口設計 193
12.3.2 實現 195
12.3.3 讀寫成員變量 197
12.3.4 引用類型 198
12.3.5 導出函數 199
12.3.6 默認實參 200
12.3.7 默認生成的函數 202
12.3.8 C++調用Lua 203
12.3.9 小結 203
12.4 優化 203
12.4.1 UObject 指針與Table 203
12.4.2 結構體 204
12.4.3 運行時熱加載 205

第六部分 開發工具
第13 章 使用FASTBuild助力Unreal Engine 4 208
摘要 208
13.1 引言 209
13.2 UE4 分布式工具 209
13.2.1 Derived Data Cache(DDC 209
13.2.2 Swarm 210
13.2.3 IncrediBuild 210
13.2.4 FASTBuild 211
13.3 在Windows系統下搭建FASTBuild 工作環境 213
13.3.1 網絡架構 213
13.3.2 搭建基本環境 214
13.3.3 可用性驗證 215
13.4 使用FASTBuild 分布式編譯UE4代碼和項目代碼 219
13.4.1 準備工作 219
13.4.2 部署多機FASTBuild 環境 220
13.4.3 編譯UE4 代碼及對比測試 220
13.4.4 優化FASTBuild 224
13.4.5 再次測試分布式編譯UE4代碼 227
13.5 “秒”編UE4著色器 228
13.5.1 準備工作 229
13.5.2 大規模著色器編譯測試 237
13.5.3 材質編輯器內著色器編譯測試 240
13.6 總結 243
第14 章 一種高效的幀同步全過程日志輸出方案 244
摘要 244
14.1 引言 244
14.2 幀同步的基礎理論 245
14.2.1 基本原理 245
14.2.2 系統抽象 246
14.3 本方案最終解決的問題 247
14.4 全日志的自動插入 250
14.4.1 在函數第一行代碼之前自動插入日志代碼 250
14.4.2 處理手動插入的日志代碼 251
14.4.3 對每行日志代碼進行唯一編碼 251
14.4.4 構建版本 252
14.4.5 整體工具流程及代碼清單 252
14.4.6 為什么不采用IL 注入 256
14.5 運行時的日志收集 256
14.5.1 整體業務流程 256
14.5.2 高效的存儲格式 258
14.5.3 高性能的日志輸出 259
14.5.4 正確選擇合適的校驗算法 259
14.6 導出可讀性日志信息 260
14.7 本方案思路的可移植性 260
14.8 總結 261

第15 章 基于解析符號表,使用注入的方式進行Profiler采樣的技術 262
摘要 262
15.1 進行測量之前的準備工作 263
15.1.1 注入的簡單例子 263
15.1.2 注入額外的代碼 264
15.1.3 注入的注意事項 265
15.2 性能的測量 267
15.2.1 時間的統計方法 267
15.2.2 針對函數的采樣 268
15.2.3 測量實戰 273
15.3 總結 276
序: