第1章 通用編程技術(shù)
簡介 2
Kim Pallister
1.1 調(diào)度游戲中的事件 4
Michael Harvey, Carl S. Marshall
1.1.1 調(diào)度器的組成 5
1.1.2 一個(gè)簡單的調(diào)度器 8
1.1.3 高級概念 10
1.1.4 結(jié)論 11
1.1.5 參考文獻(xiàn) 12
1.2 一個(gè)基于對象組合的游戲架構(gòu) 13
Scott Patterson
1.2.1 游戲開發(fā)的各個(gè)階段 13
1.2.2 游戲架構(gòu)設(shè)計(jì) 14
1.2.3 游戲架構(gòu)實(shí)現(xiàn) 17
1.2.4 源代碼 20
1.2.5 參考文獻(xiàn) 21
1.3 讓C中的宏重現(xiàn)光輝 23
1.3.1 聲明 23
1.3.2 第1個(gè)宏技巧: 把枚舉值轉(zhuǎn)化為字符串 23
1.3.3 第2個(gè)宏技巧: 利用二進(jìn)制表達(dá)式得到編譯期常量 25
1.3.4 第3個(gè)宏技巧:給標(biāo)準(zhǔn)斷言添加描述性注釋 26
1.3.5 第4個(gè)宏技巧:編譯期斷言 26
1.3.6 第5個(gè)宏技巧:得到一個(gè)數(shù)組里面的元素個(gè)數(shù) 27
1.3.7 第6個(gè)宏技巧: 在一個(gè)字符串中間加入__LINE__ 27
1.3.8 第7個(gè)宏技巧:防止進(jìn)入無限循環(huán) 28
1.3.9 第8個(gè)宏技巧:小型的特制語言 29
1.3.10 第9個(gè)宏技巧:簡化類接口 30
1.3.11 結(jié)論 33
1.3.12 參考文獻(xiàn) 33
1.4 平臺無關(guān)的函數(shù)綁定代碼生成器 34
Allen Pouratian
1.4.1 年輕與智慧 34
1.4.2 概要 35
1.4.3 細(xì)節(jié) 36
1.4.4 腳本 38
1.4.5 網(wǎng)絡(luò) 38
1.4.6 結(jié)論 39
1.4.7 參考文獻(xiàn) 39
1.5 基于句柄的智能指針 40
Brian Hawkins
1.5.1 用法 40
1.5.2 句柄 41
1.5.3 智能指針 42
1.5.4 結(jié)論 43
1.5.5 參考文獻(xiàn) 43
1.6 定制STL分配器 44
Pete Isensee
1.6.1 一個(gè)范例 44
1.6.2 分配器的基礎(chǔ) 45
1.6.3 分配器的要求 45
1.6.4 缺省的分配器對象 49
1.6.5 編寫自己的分配器 49
1.6.6 潛在的用途 51
1.6.7 分配器狀態(tài)數(shù)據(jù) 51
1.6.8 一些建議 52
1.6.9 實(shí)現(xiàn)細(xì)節(jié) 52
1.6.10 結(jié)論 52
1.6.11 參考文獻(xiàn) 53
1.7 立即存盤 54
Martin Brownlow
1.7.1 為何如此困難 54
1.7.2 SAVEMGR類 55
1.7.3 SAVEOBJ類 55
1.7.4 數(shù)據(jù)類型與擴(kuò)展 56
1.7.5 重載缺省函數(shù) 56
1.7.6 一個(gè)簡單的例子 57
1.7.7 結(jié)論 58
1.8 自動列表設(shè)計(jì)模式 59
Ben Board
1.8.1 實(shí)現(xiàn) 59
1.8.2 實(shí)現(xiàn)時(shí)的注意事項(xiàng) 61
1.8.3 結(jié)論 63
1.9 浮點(diǎn)異常處理 64
Soren Hannibal
1.9.1 為什么要崩潰 64
1.9.2 你的程序處理浮點(diǎn)異常么 65
1.9.3 異常的類型 65
1.9.4 代碼 65
1.9.5 調(diào)試浮點(diǎn)錯(cuò)誤 66
1.9.6 結(jié)論 66
1.10 使用UML開發(fā)一個(gè)配合設(shè)計(jì)的游戲引擎 67
Thomas Demachy
1.10.1 對象就在游戲之中 67
1.10.2 動態(tài)的類--正如動態(tài)的棋子 70
1.10.3 協(xié)作與迭代 72
1.10.4 實(shí)現(xiàn)上的問題 73
1.10.5 結(jié)論 74
1.10.6 參考文獻(xiàn) 75
1.11 使用Lex和Yacc分析自定義數(shù)據(jù)文件 76
Paul Kelly
1.11.1 Lex 77
1.11.2 Yacc 77
1.11.3 優(yōu)點(diǎn)與缺陷 77
1.11.4 Yacc和Lex中的交互 78
1.11.5 針對游戲子系統(tǒng)的自定義數(shù)據(jù)文件 79
1.11.6 把數(shù)據(jù)輸出工具與Lex和Yacc結(jié)合起來 80
1.11.7 一個(gè)完整的例子 80
1.11.8 結(jié)論 84
1.11.9 如何得到Flex和Bison 84
1.11.10 參考文獻(xiàn) 84
1.12 為世界市場開發(fā)游戲 85
Aaron Nicholls
1.12.1 市場潛力 85
1.12.2 門面事, 先處理--顯示和輸入 86
1.12.3 字符集 88
1.12.4 界面和設(shè)計(jì)方面的考慮 90
1.12.5 本地化 93
1.12.6 設(shè)計(jì)和規(guī)劃中的考慮 94
1.12.7 測試 95
1.12.8 結(jié)論 98
1.12.9 參考文獻(xiàn) 98
1.13 3D游戲中的實(shí)時(shí)輸入和用戶界面 99
Greg Seegert
1.13.1 實(shí)現(xiàn)用戶界面 99
1.13.2 指定用戶界面元素 100
1.13.3 本地化問題 101
1.13.4 輸入系統(tǒng) 102
1.13.5 鼠標(biāo)與操縱桿 103
1.13.6 在處理延遲方面用戶界面的作用 104
1.13.7 結(jié)論 105
1.13.8 參考文獻(xiàn) 105
1.14 自然的選擇:餅狀菜單的演化 106
Don Hopkins
1.14.1 Feng GUI的餅狀菜單 106
1.14.2 對餅狀菜單的研究與評估 107
1.14.3 餅狀菜單插件 108
1.14.4 未來發(fā)展方向 112
1.14.5 走進(jìn)SimCity中的城鎮(zhèn) 112
1.14.6 Sims中的起居室 114
1.14.7 結(jié)論 115
1.14.8 參考文獻(xiàn) 115
1.15 輕量級的. 基于規(guī)則的日志記錄 117
Brian Hawkins
1.15.1 規(guī)則 117
1.15.2 調(diào)試標(biāo)志 117
1.15.3 配置文件 118
1.15.4 可配置的標(biāo)志值 119
1.15.5 日志記錄 119
1.15.6 用法 121
1.15.7 結(jié)論 122
1.15.8 參考文獻(xiàn) 122
1.16 日志服務(wù) 123
Eric Robert
1.16.1 管理信息 123
1.16.2 系統(tǒng)層次 124
1.16.3 Journal接口 127
1.16.4 創(chuàng)建日志服務(wù) 129
1.16.5 結(jié)論 132
1.16.6 參考文獻(xiàn) 132
1.17 實(shí)時(shí)的層次化性能評測 133
Greg Hjeistrom, Byon Garrabrant
1.17.1 性能評測樹 134
1.17.2 用法 134
1.17.3 實(shí)現(xiàn) 136
1.17.4 結(jié)論 139
1.17.5 參考文獻(xiàn) 139
第2章 數(shù)學(xué)技巧
簡介 141
John Byrd
2.1 對數(shù)與隨機(jī)數(shù)生成的2基快速函數(shù) 143
James McNeill
2.1.1 整數(shù)的2基對數(shù) 143
2.1.2 位掩碼與隨機(jī)數(shù)生成 143
2.1.3 函數(shù)是如何工作的 145
2.1.4 參考文獻(xiàn) 145
2.2 使用分?jǐn)?shù)矢量得到更精確的幾何圖形 146
Thomas Young
2.2.1 問題 146
2.2.2 一個(gè)解決方法:分?jǐn)?shù)矢量 149
2.2.3 使用分?jǐn)?shù)矢量 150
2.2.4 數(shù)字的范圍 151
2.2.5 實(shí)現(xiàn)上的細(xì)節(jié) 152
2.2.6 結(jié)論 153
2.2.7 參考文獻(xiàn) 153
2.3 三角函數(shù)的更多近似計(jì)算方法 154
Robin Green
2.3.1 衡量誤差 154
2.3.2 正弦與余弦函數(shù) 155
2.3.3 多項(xiàng)式逼近 162
2.3.4 有關(guān)收斂性的注意事項(xiàng) 166
2.3.5 結(jié)論 167
2.3.6 參考文獻(xiàn) 167
2.4 四元數(shù)的壓縮 168
Mark Zarb-Adami
2.4.1 四元數(shù) 168
2.4.2 三個(gè)最小數(shù)方法 168
2.4.3 極點(diǎn)方法 169
2.4.4 實(shí)現(xiàn) 169
2.4.5 性能 170
2.4.6 結(jié)論 171
2.4.7 答謝 171
2.4.8 參考文獻(xiàn) 171
2.5 受限的逆向運(yùn)動學(xué) 172
Jason Weber
2.5.1 骨節(jié)層次 172
2.5.2 循環(huán)坐標(biāo)推演 173
2.5.3 旋轉(zhuǎn)限制 174
2.5.4 調(diào)整每個(gè)骨節(jié), 同時(shí)保持限制 175
2.5.5 結(jié)論 177
2.5.6 參考文獻(xiàn) 177
2.6 針對物理建模的單元自動機(jī) 179
Tom Forsyth
2.6.1 CA基礎(chǔ) 179
2.6.2 八叉樹 182
2.6.3 實(shí)際的物理 182
2.6.4 核心處理模型 183
2.6.5 氣體 184
2.6.6 水流 184
2.6.7 流速 185
2.6.8 熱量 186
2.6.9 火焰 188
2.6.10 動態(tài)更新速率 189
2.6.11 結(jié)論 190
2.6.12 參考文獻(xiàn) 191
2.7 在動態(tài)仿真中處理摩擦 192
Miguel Gomez
2.7.1 庫侖摩擦力 192
2.7.2 數(shù)值方法 196
2.7.3 一個(gè)三維公式 199
2.7.4 幾何圖形問題 200
2.7.5 結(jié)論 201
2.7.6 參考文獻(xiàn) 201
第3章 人工智能
簡介 203
Steven WoodCock
3.1 經(jīng)GoCap優(yōu)化過的機(jī)器學(xué)習(xí) 205
Thor Alexander
3.1.1 GoCap架構(gòu)一覽 205
3.1.2 訓(xùn)練開車 207
3.1.3 學(xué)習(xí)規(guī)則 208
3.1.4 結(jié)論 212
3.1.5 參考文獻(xiàn) 212
3.2 區(qū)域游覽:對尋徑模式的擴(kuò)展 213
Ben Board, Mike Ducker
3.2.1 辭舊 214
3.2.2 迎新 215
3.2.3 分而治之 218
3.2.4 路徑遍歷 220
3.2.5 對此模式的擴(kuò)展 224
3.2.6 結(jié)論 224
3.2.7 參考文獻(xiàn) 224
3.3 基于函數(shù)指針的內(nèi)嵌式有限狀態(tài)機(jī) 225
Charles Farris
3.3.1 什么是有限狀態(tài)機(jī) 225
3.3.2 FSM的實(shí)現(xiàn) 226
3.3.3 實(shí)現(xiàn)CFSM 228
3.3.4 使用CFSM 232
3.3.5 結(jié)論 234
3.3.6 參考文獻(xiàn) 235
3.4 在RTS中的地形分析--一個(gè)隱藏的重要因素
Daniel Higgins
3.4.1 區(qū)域 236
3.4.2 凸包 240
3.4.3 重要的匹配器 243
3.4.4 關(guān)隘 246
3.4.5 進(jìn)行地形分析 249
3.4.6 結(jié)論 250
3.4.7 參考文獻(xiàn) 250
3.5 一個(gè)針對AI代理. 對象, 以及任務(wù)的可擴(kuò)展觸發(fā)器系統(tǒng) 251
Steve Rabin
3.5.1 觸發(fā)器系統(tǒng)簡介 251
3.5.2 對象自有的觸發(fā)器系統(tǒng) 252
3.5.3 定義條件 252
3.5.4 使用布爾邏輯組合條件 252
3.5.5 定義響應(yīng) 254
3.5.6 求取觸發(fā)器的值 254
3.5.7 一次性觸發(fā)與載入次數(shù) 255
3.5.8 使用標(biāo)志和計(jì)數(shù)器將觸發(fā)器結(jié)合起來 256
3.5.9 觸發(fā)器系統(tǒng)與腳本語言的對比 257
3.5.10 局限性 258
3.5.11 結(jié)論 258
3.5.12 參考文獻(xiàn) 258
3.6 基于A*算法的戰(zhàn)術(shù)式尋徑 259
William van der Sterren
3.6.1 有風(fēng)險(xiǎn)的A* 260
3.6.2 對于有缺陷路徑的戰(zhàn)術(shù)式改良 262
3.6.3 暴露時(shí)間與對敵人建?!?62
3.6.4 威脅并不僅僅是靜態(tài)的 264
3.6.5 更戰(zhàn)術(shù)化的改進(jìn) 265
3.6.6 性能 265
3.6.7 有效的火力線以及視野的探測 266
3.6.8 擴(kuò)展的A*算法的代價(jià) 267
3.6.9 ASE程序 268
3.6.10 結(jié)論 268
3.6.11 參考文獻(xiàn) 269
3.7 快速游覽網(wǎng)格的方法 270
Stephen White, Christopher Christensen
3.7.1 靜態(tài)障礙與動態(tài)障礙 270
3.7.2 游覽網(wǎng)格 270
3.7.3 門戶 272
3.7.4 建表 274
3.7.5 其他的門戶相關(guān)問題 275
3.7.6 表示生物 276
3.7.7 動態(tài)障礙 277
3.7.8 在靜態(tài)障礙與動態(tài)障礙之間進(jìn)行游覽 279
3.7.9 有關(guān)游覽網(wǎng)格的其他想法 279
3.7.10 結(jié)論 280
3.8 在尋徑與碰撞之間選擇一種關(guān)系 281
Thomas Young
3.8.1 在碰撞控制下的運(yùn)動 281
3.8.2 對于尋徑的碰撞模型 281
3.8.3 方法1:具有容錯(cuò)性的AI 282
3.8.4 方法2:在無障礙空間一個(gè)子集內(nèi)的尋徑 284
3.8.5 方法3:使用尋徑器本身處理人物碰撞 286
3.8.6 實(shí)現(xiàn)沿路的運(yùn)動 288
3.8.7 結(jié)論 289
3.8.8 參考文獻(xiàn) 289
第4章 圖形
簡介 292
Jeff Lander
4.1 消除T形連接與重新三角化 295
Eric Lengyel
4.1.1 T形連接的消除 296
4.1.2 重新三角化 297
4.1.3 實(shí)現(xiàn) 298
4.1.4 結(jié)論 299
4.2 快速高程場法線的計(jì)算 300
Jason Shankel
4.2.1 一個(gè)任意網(wǎng)格上的法線 300
4.2.2 高程場法線 301
4.2.3 結(jié)論 303
4.2.4 例子程序 303
4.2.5 參考文獻(xiàn) 304
4.3 快速計(jì)算面片法線 305
Martin Brownlow
4.3.1 定義 305
4.3.2 傳統(tǒng)方法 305
4.3.3 相關(guān)問題 306
4.3.4 一個(gè)更簡單的方法 306
4.3.5 其他的優(yōu)點(diǎn) 306
4.3.6 此方法的精確度有多大 307
4.3.7 結(jié)論 307
4.3.8 參考文獻(xiàn) 307
4.4 快速. 簡單的遮蔽剪裁 308
Wagner T. Corrêa, Princeton University
4.4.1 可見性問題 308
4.4.2 PLP算法 309
4.4.3 cPLP算法 310
4.4.4 討論 310
4.4.5 實(shí)驗(yàn)結(jié)果 311
4.4.6 結(jié)論 312
4.4.7 參考文獻(xiàn) 312
4.5 三角形條帶的創(chuàng)建. 優(yōu)化以及渲染 314
Carl S. Marshall
4.5.1 三角形條帶 314
4.5.2 三角形條帶的創(chuàng)建 315
4.5.3 優(yōu)化 318
4.5.4 渲染 319
4.5.5 傾向于緩存的三角形條帶 319
4.5.6 連續(xù)分層細(xì)節(jié)的三角形條帶 319
4.5.7 結(jié)論 320
4.5.8 參考文獻(xiàn) 320
4.6 針對復(fù)雜數(shù)據(jù)集計(jì)算優(yōu)化陰影體 321
Alex Vlachos, Drew Card
4.6.1 前期工作 321
4.6.2 算法 321
4.6.3 優(yōu)化算法 323
4.6.4 參考文獻(xiàn) 324
4.7 針對人物運(yùn)動的表面細(xì)分 325
William Leeson
4.7.1 各種細(xì)分模式 325
4.7.2 骨節(jié)的層次化結(jié)構(gòu)以及頂點(diǎn)積累緩沖 329
4.7.3 優(yōu)化 330
4.7.4 系統(tǒng)集成 332
4.7.5 源代碼 333
4.7.6 結(jié)論 334
4.7.7 參考文獻(xiàn) 334
4.8 改良的骨節(jié)變換計(jì)算 335
Jason Weber
4.8.1 背景知識 335
4.8.2 簡單的方法 336
4.8.3 添加骨節(jié) 337
4.8.4 改變權(quán)重 338
4.8.5 系統(tǒng)集成與優(yōu)化 340
4.8.6 結(jié)論 342
4.8.7 參考文獻(xiàn) 342
4.9 針對真實(shí)人物運(yùn)動的架構(gòu) 343
Thomas Young
4.9.1 問題:針對任意目標(biāo)的運(yùn)動 343
4.9.2 問題:運(yùn)動之間的平滑過渡 345
4.9.3 解決問題的一個(gè)架構(gòu):局部修正器與獨(dú)立的插值系數(shù) 346
4.9.4 應(yīng)用:處理任意目標(biāo)的運(yùn)動 347
4.9.5 位移修正器 348
4.9.6 應(yīng)用:變換 349
4.9.7 其他細(xì)節(jié) 349
4.9.8 結(jié)論 350
4.9.9 參考文獻(xiàn) 350
4.10 可編程頂點(diǎn)著色器的編譯器 351
Adam Lake
4.10.1 可編程頂點(diǎn)著色器 351
4.10.2 編譯器 353
4.10.3 編譯器的組成部分 353
4.10.4 結(jié)論 357
4.10.5 致謝 357
4.10.6 參考文獻(xiàn) 357
4.11 畫板光束 359
Brian Hawkins
4.11.1 矩陣 359
4.11.2 頂點(diǎn) 360
4.11.3 UV映射 361
4.11.4 結(jié)論 361
4.12 針對等測引擎的3D技術(shù) 362
Greg Snook
4.12.1 進(jìn)入第三個(gè)維度 363
4.12.2 方法1:畫板越多, 效果越好 363
4.12.3 方法2:變換紋理 364
4.12.4 方法3:垂直插值的紋理 366
4.12.5 結(jié)論 367
4.12.6 參考文獻(xiàn) 367
4.13 使用法向地圖進(jìn)行曲面模擬 368
Oscar Blasco
4.13.1 法向地圖 368
4.13.2 整個(gè)過程的縱覽 369
4.13.3 數(shù)據(jù)準(zhǔn)備 369
4.13.4 投影線 370
4.13.5 得到細(xì)節(jié)信息 371
4.13.6 后處理 372
4.13.7 已知的問題 372
4.13.8 其他方法 373
4.13.9 結(jié)論 373
4.13.10 致謝 374
4.13.11 參考文獻(xiàn) 374
4.14 動態(tài)的. 具有照片效果的地形光照 375
Naty Hoffman, Kenny Mitchell
4.14.1 背景知識 375
4.14.2 解的分類 377
4.14.3 日照:地平角. 橢圓陰影以及PTM 377
4.14.4 天空光照:輻射透過量的近似與分塊 379
4.14.5 活動的云層陰影 380
4.14.6 基于視頻的解決方案 382
4.14.7 非地形對象 383
4.14.8 結(jié)論 383
4.14.9 參考文獻(xiàn) 383
4.15 立體圖光照技術(shù) 385
Kenneth L. Hurley
4.15.1 立體圖的物理屬性 385
4.15.2 如何與立體圖進(jìn)行數(shù)據(jù)交換 386
4.15.3 使用立體圖進(jìn)行渲染 386
4.15.4 對云層進(jìn)行編碼 387
4.15.5 在一個(gè)立體圖中對光源進(jìn)行編碼 390
4.15.6 在立體圖中渲染散射光照 390
4.15.7 將日夜循環(huán)編碼進(jìn)立體圖中 391
4.15.8 結(jié)論 391
4.15.9 參考文獻(xiàn) 391
4.16 程序紋理 392
Mike Milliger
4.16.1 參數(shù)與函數(shù) 392
4.16.2 進(jìn)入游戲世界 393
4.16.3 硬件加速 395
4.16.4 結(jié)論 396
4.16.5 致謝 397
4.16.6 參考文獻(xiàn) 397
4.17 獨(dú)一無二的紋理 398
Tom Forsyth
4.17.1 程序紋理 398
4.17.2 智能紋理緩存 399
4.17.3 合成模型 399
4.17.4 層的映射與變換 399
4.17.5 層的源與過濾器 400
4.17.6 合成方法 400
4.17.7 對數(shù)字的控制 401
4.17.8 動態(tài)紋理 401
4.17.9 可擴(kuò)展性 402
4.17.10 使用CPU還是圖形芯片進(jìn)行合成運(yùn)算 403
4.17.11 演示程序 403
4.17.12 結(jié)論 404
4.17.13 參考文獻(xiàn) 404
4.18 使用紋理作為查找表進(jìn)行逐像素光照計(jì)算 405
Alex Vlachos, John Isidoro, Chris Oat
4.18.1 不使用立體圖進(jìn)行h歸一化(n.h/h.h映射)的鏡面逐像素光照 405
4.18.2 使用一個(gè)(n.h)k圖的逐像素鏡面指數(shù) 407
4.18.3 色彩偏移的光暈 409
4.18.4 擁有正確的逐像素衰減的逐像素點(diǎn)光照 410
4.18.5 擁有正確的逐像素衰減的逐像素聚光燈與方向性光照 411
4.18.6 結(jié)論 413
4.18.7 參考文獻(xiàn) 413
4.19 使用手工制作的著色模型進(jìn)行渲染 414
Jan Kautz
4.19.1 著色模型 414
4.19.2 基于微表面的著色模型 415
4.19.3 NDF著色 415
4.19.4 使用NDF的凸凹貼圖 417
4.19.5 擴(kuò)展 418
4.19.6 結(jié)論 418
4.19.7 參考文獻(xiàn) 418
第5章 網(wǎng)絡(luò)和多玩家游戲
簡介 421
Andrew Kirmse
5.1 將實(shí)時(shí)策略游戲中的延遲最小化 422
Jim Greer, EA.com, Zachary Booth Simpson, Mine Control
5.1.1 幀鎖定與事件鎖定 422
5.1.2 時(shí)間同步 426
5.1.3 結(jié)論 428
5.1.4 參考文獻(xiàn) 428
5.2 實(shí)時(shí)策略網(wǎng)絡(luò)協(xié)議 429
Jan Svarovsky
5.2.1 其他的協(xié)議 429
5.2.2 我們的協(xié)議 430
5.2.3 精煉 432
5.2.4 有用的模塊 434
5.2.5 在StarTopia中容易犯的錯(cuò)誤 435
5.2.6 示例游戲 436
5.2.7 結(jié)論 436
5.2.8 參考文獻(xiàn) 436
5.3 一個(gè)針對巨量多玩家游戲的靈活的仿真架構(gòu) 437
Thor Alexander
5.3.1 架構(gòu)一覽 437
5.3.2 支持類 438
5.3.3 核心類 440
5.3.4 管理器與工廠 443
5.3.5 把它們都組合起來 445
5.3.6 結(jié)論 448
5.3.7 參考文獻(xiàn) 448
5.4 對多玩家游戲進(jìn)行擴(kuò)展 449
Justin Randall
5.4.1 改善游戲公平度的策略 449
5.4.2 設(shè)計(jì)可擴(kuò)展的服務(wù)器 451
5.4.3 分布負(fù)載 456
5.4.4 優(yōu)化 458
5.4.5 結(jié)論 460
5.4.6 參考文獻(xiàn) 461
5.5 基于模板的對象序列化 462
Jason Beardsley
5.5.1 現(xiàn)存的解決方案 462
5.5.2 可移植性 464
5.5.3 Serializer 類 465
5.5.4 擴(kuò)展與優(yōu)化 470
5.5.5 未來的工作 472
5.5.6 結(jié)論 472
5.5.7 參考文獻(xiàn) 472
5.6 安全套接字 473
Pete Isensee
5.6.1 IPSec 473
5.6.2 警告 474
5.6.3 安全連接 474
5.6.4 包格式 475
5.6.5 發(fā)送數(shù)據(jù) 476
5.6.6 接收數(shù)據(jù) 477
5.6.7 示例實(shí)現(xiàn) 478
5.6.8 CryptoAPI 480
5.6.9 性能 480
5.6.10 安全性 481
5.6.11 結(jié)論 481
5.6.12 參考文獻(xiàn) 482
5.7 一個(gè)網(wǎng)絡(luò)監(jiān)控與模擬工具 483
Andrew Kirmse
5.7.1 界面 483
5.7.2 網(wǎng)絡(luò)監(jiān)控 484
5.7.3 TCP模擬 484
5.7.4 UDP模擬 484
5.7.5 主機(jī)帶寬模擬 485
5.7.6 結(jié)論 485
5.8 使用DirectPlay8.1創(chuàng)建多玩家游戲 486
Gabriel Rohweder
5.8.1 DirectPlay內(nèi)幕 486
5.8.2 數(shù)據(jù)傳輸 487
5.8.3 可重入的回調(diào)函數(shù) 490
5.8.4 使用DirectPlay發(fā)送語音 493
5.8.5 相關(guān)資源 496
5.9 使用Java微型版開發(fā)無線游戲 497
David Fox
5.9.1 網(wǎng)絡(luò)特性 497
5.9.2 Java微型版 498
5.9.3 J2ME網(wǎng)絡(luò)精髓 499
5.9.4 HTTP的限制 500
5.9.5 優(yōu)化數(shù)據(jù)包 501
5.9.6 從服務(wù)器獲取圖像 502
5.9.7 結(jié)論 503
5.9.8 參考文獻(xiàn) 504
第6章 音頻處理
簡介 506
Scott Patterson
6.1 使用Ogg Vorbis進(jìn)行音頻壓縮 508
Jack Moffitt
6.1.1 心理聲學(xué)壓縮 508
6.1.2 使用壓縮的情況 510
6.1.3 使用Ogg的代碼示例 511
6.1.4 結(jié)論 514
6.1.5 參考文獻(xiàn) 514
6.2 創(chuàng)建一個(gè)美妙的3D音頻環(huán)境 515
Garin Hiebert
6.2.1 3D音頻的核心概念 515
6.2.2 有效地使用你的音頻引擎 516
6.2.3 實(shí)現(xiàn) 517
6.2.4 結(jié)論 518
6.2.5 參考文獻(xiàn) 518
6.3 使用軸對齊的邊界框設(shè)置音障 520
Carlo Vogelsang
6.3.1 問題 520
6.3.2 解決方法 521
6.3.3 實(shí)現(xiàn) 524
6.3.4 結(jié)論 524
6.3.5 參考文獻(xiàn) 524
6.4 使用雙二次共振濾波器 525
Phil Burk
6.4.1 數(shù)字濾波器的工作原理 525
6.4.2 IIR與FIR濾波器 526
6.4.3 雙二次濾波器的實(shí)現(xiàn) 526
6.4.4 改變變量 527
6.4.5 避免異常情況 527
6.4.6 控制濾波器 528
6.4.7 計(jì)算此濾波器的系數(shù) 528
6.4.8 低通濾波器 529
6.4.9 高通濾波器 529
6.4.10 帶通濾波器 529
6.4.11 將濾波器進(jìn)行串聯(lián) 530
6.4.12 將濾波器進(jìn)行并聯(lián) 530
6.4.13 軟件 530
6.4.14 結(jié)論 530
6.4.15 參考文獻(xiàn) 530
6.5 語音壓縮與音效的線性預(yù)測編碼 531
Eddie Edwards
6.5.1 對語音建模 532
6.5.2 軟件仿真 533
6.5.3 取代聲帶 535
6.5.4 控制重新合成器 536
6.5.5 增加揚(yáng)聲器的深度 537
6.5.6 對數(shù)據(jù)編碼 537
6.5.7 速度 538
6.5.8 實(shí)驗(yàn) 538
6.5.9 參考文獻(xiàn) 538
6.6 復(fù)雜聲音的隨機(jī)合成方法 539
Phil Burk
6.6.1 線性同余算法 539
6.6.2 噪聲種類 540
6.6.3 軟件示例 541
6.6.4 軟件 545
6.6.5 結(jié)論 545
6.6.6 參考文獻(xiàn) 545
6.7 針對游戲的實(shí)時(shí)模塊化音頻處理 546
Frank Luchs
6.7.1 模塊化音頻處理 546
6.7.2 通過程序生成聲音 547
6.7.3 Sphinx MMOS系統(tǒng) 547
6.7.4 處理器 548
6.7.5 模塊文件簡介 548
6.7.6 模塊文件的應(yīng)用 550
6.7.7 源代碼 552
6.7.8 結(jié)論 553
6.7.9 參考文獻(xiàn) 553
索引 554