【遊戲引擎架構】數組
一、第14章介紹的對遊戲性相關係統的設計很是有價值。各個開發人員幾乎都是憑經驗設計,不多見有書籍對這些作總結。架構
五、經過此書以知悉一些知名遊戲做品實際上所採用的方案。性能
六、書名中的架構二字,並不單是給出一個系統結構圖,而是描述每一個子系統的需求、相關技術及與其餘子系統的關係。動畫
七、本書的第11章(動畫系統)及第14章(運行時遊戲性基礎系統)是本書特別精彩之處。人工智能
八、此書翻譯歷時3年半。spa
【Note1】線程
一、遊戲有多個種類(category)和類型(genre)。此處genre譯爲體裁更爲合適。翻譯
二、不少遊戲工做室並不隸屬於個別發行商,這些工做室把他們製做的遊戲,賣給出最好條件的發行商。還有一些工做室讓單一發行商獨家代理他們的遊戲,其形式能夠是簽署長期發行合同,或是成爲發行商全資擁有的子公司。設計
三、物理模擬可能須要每秒更新120次以保持穩定。一個遊戲角色的人工智能系統可能每秒最少要「最一次」才能顯得不呆。另外,也可能須要每1/60秒調用一次聲音程序庫,以確保音頻緩衝有足夠的聲音數據,避免發出一些短暫失靈聲音。代理
四、遊戲引擎或中間件組件越通用,在特定平臺運行特定遊戲的性能就越通常。
五、OGRE是一個架構優良,又易學易用的三維渲染引擎。
六、軟件層的構建一般上層依賴下層,下層不依賴上層。
七、PhysX是一個流行的工做級物理及碰撞引擎,NVIDIA提供免費下載。沒有碰撞檢測,物體會互相穿透。
八、當用微軟的編譯器編譯代碼時,編譯器會定義_MSC_VER宏;當使用GNU編譯器,則會定義__GNUC__宏。
九、小端:最低有效字節存儲於最低位,大端:最高有效字節存儲於最低位。
十、解決字節序的其中一個方案爲全部數據以文字方式寫入文件。
十一、字節對齊的其中一個緣由是,內存控制器對於非對齊的內存須要2次存儲才能取出。例如:0x6a341173開始的4字節數據,須要分別從0x6a341170和0x6a341174中2個4個節塊中取出數據組裝後才能被使用。有些平臺下非對齊會致使程序崩潰(PS2)。
十二、__FILE__、__LINE__這2個宏能夠獲取文件名和行號信息。
1三、除了笛卡兒座標系外還有圓柱座標系,球座標系。
1四、當向一物體施加力(force),當且駐當其施力方向離開中心點,該力會對物體的旋轉運動產生影響。由此產生的旋轉力稱爲力矩(torque),其計算方法以下:給定力F,從質心(center of mass)至施力點的矢量r,則產生的力矩爲N=r x F。
1五、線性插值(linear intepolation)LERP。
1六、存取主系統內存是緩慢的操做,一般須要幾千個處理週期才能完成。存取寄存器只需數十個週期,甚至有時只須要一個週期。
1七、當使用斷點時,須要使用如下代碼來避免每幀間隔過長問題。
1 if (dt > 1.0f / 30.0f) 2 { 3 dt = 1.0f / 30.0f 4 }
1八、利用多核優點的模型有:
1)「分叉及匯合」
2)「每一個子系統運行於獨立線程」
3)做業模型,工做被拆分爲小顆粒度的做業,這些做業可於任何閒置的處理器運行。
1九、當玩家嘗試轉方向盤時,方向盤會產生阻力,以模擬困難的行車條件或急轉彎。這叫力反饋(force-feedback)。
20、OutputDebugString()不支持格式化輸出,它只能打印char數組形式的字符串。
2一、經常使用的調試方法包括調試繪圖,遊戲內置菜單,遊戲內置控制檯
2二、玩家角色(player character, PC),非玩家角色(non-player character,NPC)