本書的主頁
第一部分 基礎php
工程師;藝術家;遊戲設計師;製做人;其餘工做人員;發行商&工做室前端
1.2 遊戲是什麼程序員
軟實時模擬算法
1.3 遊戲引擎是什麼編程
1.4 不一樣遊戲類型中的引擎差別設計模式
第一人稱射擊;平臺及其餘第三人稱遊戲;格鬥遊戲;競速遊戲;實時策略遊戲;大型多人在線遊戲;其餘遊戲類型緩存
1.5 遊戲引擎概觀網絡
雷神之錘引擎家族;虛幻引擎;Source引擎;微軟XNA Game Studio;CryTek的 CryEngine 3;其餘商業引擎;專有內部引擎;開源引擎數據結構
注:
1.《雷神之錘》&《雷聲之錘2》源代碼能夠在id Software網站下載(404啦)。學習建議:源碼+遊戲資產(重遊戲中得到)----> 分析遊戲引擎的實際實現。如:搜索「Quake 源碼下載」。
2. Unreal Developer Network,UND;Unreal Development Kit,UDK;Beyond Unreal
3. CryTek公佈的研究成果
6. 開源引擎列表;常見開源引擎:OGRE,Panda3D,Yake,Crystal Space,Irrlicht
1.6 運行時引擎架構
目標硬件(PC,Xbox360,PS3);
設備驅動程序;
操做系統;
第三方軟件開發包和中間件:數據結構及算法(STL,STLport,Boost,Loki),圖形(Glide,OpenGL,DirectX,libgcm,Edge),碰撞和物理(Havok,PhysX,Open Dynamics Engine),角色動畫(Granny,Havok Animation,Edge),人工智能,生物力學角色模型;
平臺獨立層;
核心系統:斷言,內存管理,數學庫,自定義數據結構及算法 等;
資源管理;
渲染引擎:低階渲染器;場景圖/剔除優化,視覺效果,前端;
剖析和調試工具;
碰撞和物理:Open Dynamics Engine(ODE),I-Collide(學術性),V-Collide(學術性),RAPID(學術性);Bullet(具備工業強度的開源實時碰撞偵測系統,使用了GJK算法)
動畫;
人體學接口設備;
音頻;
在線多人/網絡;
遊戲性基礎系統:遊戲世界和遊戲對象模型,事件系統,腳本系統,人工智能基礎;
個別遊戲專用子系統;
1.7 工具及資產管道
數字內容創做工具;資產調節管道;三維模型/網格數據;骨骼動畫數據;音頻數據;粒子系統數據;遊戲世界數據及世界編輯器;一些構建工具的方法
第2章 專業工具
2.1 版本控制
2.2 微軟Visual Studio
2.3 剖析工具
2.4 內存泄漏和損壞檢測
2.5 其餘工具
第3章 遊戲軟件工程基礎
3.1 重溫C++及最佳實踐
扼要重溫面向對象編程:類和對象,封裝,繼承(多重繼承 & 其問題之菱形繼承問題diamond problem),多態,合成及聚合,設計模式;
編碼標準:爲何&須要多少。Making Wrong Code Look Wrong
推薦書籍:《冒號課堂:編程範式與OPP思想》《Effective C++》《Effective STL》《Large-Scale C++ Software Design》
3.2 C/C++的數據、代碼及內存
數值表達形式:數值底數,有符號及無符號整數,定點記法,浮點記法,基本數據類型,多字節及字節序;
聲明定義及連接規範:再談翻譯單元,聲明與定義,連接規範;
C/C++內存佈局:可執行映像,程序堆棧,動態分配的堆;
成員變量:類的靜態成員;
對象的內存佈局:對齊和包裹,C++中類的佈局;
3.3 捕捉及處理錯誤
錯誤類型;
錯誤處理:處理玩家錯誤;處理開發者錯誤;處理程序員錯誤;
實現錯誤檢查及處理:錯誤碼返回,異常,斷言;
第4章 遊戲所需的三維數學
4.1 在二維中解決三維問題
4.2 點和矢量
點和笛卡爾座標;
左手座標系與右手座標系的比較;
矢量;
矢量運算;
點和矢量的線性插值;
4.3 矩陣
矩陣乘法;
以矩陣表示點和矢量;
單位矩陣;
逆矩陣;
轉置矩陣;
齊次座標;
基礎變換矩陣;
4×3矩陣;
座標空間:模型空間,世界空間,觀察空間;
基的變動;
變換法矢量;
內存中存儲矩陣;
4.4 四元數
把單位四元數視爲三位旋轉;
四元數運算;
以四元數旋轉矢量;
等價的四元數和矩陣;
旋轉性的線性插值;
4.5 比較各類旋轉表達方式
歐拉角;
3×3矩陣;
軸角;
四元數;
SQT變換;
對偶四元數;
旋轉和自由度;
4.6 其餘數學對象
執行/光線/線段;
球體;
平面;
軸對齊包圍盒;
定向包圍盒;
平截頭體;
凸多面體區域;
4.7 硬件加速的SIMD運算
SEE寄存器;
_m128數據類型;
用SSE內部函數編碼;
用SSE實現矢量對矩陣想乘;
4.8 產生隨機數
線性同餘產生器;
梅森旋轉算法;
全部之母及Xorshift
第二部分 低階引擎系統
第5章 遊戲支持系統
5.1 子系統的啓動和終止
5.2 內存管理
優化動態內存分配;
內存碎片;
緩存一致性;
5.3 容器
容器操做;
迭代器;
算法複雜度;
創建自定義的容器類;
5.4 字符串
字符串的使用問題;
字符串類;
惟一標識符;
本地化;
5.5 引擎配置
讀/寫選項;
個別用戶選項;
第6章 資源及文件系統
6.1 文件系統
文件名和路徑;
基本文件I/O;
異步文件I/O;
6.2 資源管理器
離線資源管理及工具鏈;
運行時資源管理;
第7章 遊戲循環及實時模擬
7.1 渲染循環
7.2 遊戲循環
7.3 遊戲循環的架構風格
7.4 抽象時間線
真實時間;
遊戲時間;
局部及全局時間;
7.5 測量及處理時間
7.6 多處理器的遊戲循環
7.7 網絡多人遊戲循環
第8章 人體學接口設備(HID)
8.1 各類人體學接口設備
8.2 人體學接口設備的接口技術
8.3 輸入類型
8.4 輸出類型
8.5 遊戲引擎的人體學接口設備系統
8.6 人體學接口設備使用實踐
第9章 調試及開發工具
9.1 日誌及跟蹤
9.2 調試用的繪圖功能
9.3 遊戲內置菜單
9.4 遊戲內置主控臺
9.5 調試用攝像機和遊戲暫停
9.6 做弊
9.7 屏幕截圖及錄像
9.8 遊戲內置性能剖析
9.9 遊戲內置的內存統計和泄漏檢測
第三部分 圖形及動畫
第10章 渲染引擎
10.1 採用深度緩衝的三角形光柵化基礎
場景描述:高端渲染軟件所用的表示法,三角形網格,構造三角形網格,模型空間,世界空間及網格實例化;
描述表面的視覺特性:光&顏色,頂點屬性,頂點格式,屬性插值,紋理,材質;
光照基礎:局部及全局光照模型,phong氏光照模型,光源模型;
虛擬攝像機:觀察空間,投影,觀察體積及平截頭體,投影及齊次裁剪空間,屏幕空間及長寬比,幀緩衝,三角形光柵化及片斷,遮擋及深度緩衝
10.2 渲染管道
10.3 高級光照及全局光照 42610.4 視覺效果和覆蓋層 43810.5 延伸閱讀 446第11章 動畫系統 44711.1 角色動畫的類型 44711.2 骨骼 45211.3 姿式 45411.4 動畫片斷 45911.5 蒙皮及生成矩陣調色板 47111.6 動畫混合 47611.7 後期處理 49311.8 壓縮技術 49611.9 動畫系統架構 50111.10 動畫管道 50211.11 動做狀態機 51511.12 動畫控制器 535第12章 碰撞及剛體動力學 53712.1 你想在遊戲中加入物理嗎 53712.2 碰撞/物理中間件 54212.3 碰撞檢測系統 54412.4 剛體動力學 56912.5 整合物理引擎至遊戲 60112.6 展望:高級物理功能 616第四部分 遊戲性 617第13章 遊戲性系統簡介 61913.1 剖析遊戲世界 61913.2 實現動態元素:遊戲對象 62313.3 數據驅動遊戲引擎 62613.4 遊戲世界編輯器 627第14章 運行時遊戲性基礎系統 63714.1 遊戲性基礎系統的組件 63714.2 各類運行時對象模型架構 64014.3 世界組塊的數據格式 65714.4 遊戲世界的加載和串流 66314.5 對象引用與世界查詢 67014.6 實時更新遊戲對象 67614.7 事件與消息泵 69014.8 腳本 70714.9 高層次的遊戲流程 726第五部分 總結 727第15章 還有更多內容嗎 72915.1 一些未談及的引擎系統 72915.2 遊戲性系統 730參考文獻 733中文索引 737英文索引 755