遊戲團隊:工程師、藝術家、遊戲設計師、製作人
平臺遊戲(platformer)
是指基於人物角色的第三人稱遊戲。
主要的遊戲機制是在平臺之間跳躍。
第三人稱遊戲
比較看重主角的能力及運動模式。
需要逼真的全身動畫。
複雜的攝像機碰撞系統,以保證視點不會穿過背景幾何物體或動態的前景物體。
格鬥遊戲
豐富的格鬥動畫
準確的攻擊判定
能偵測複雜按鈕及搖桿組合的玩家輸入系統
競速遊戲
使用許多竅門渲染遙遠背景,比如二維紙板形式的樹木、山脈
賽道通常切開成較簡單的二維區域,稱爲分區(sector)。用於實現渲染優化、可見性判斷。
實時策略遊戲(Real-time strategy, RTS)
通常不允許玩家改變視角以觀看不同距離的景物,這個限制使開發者能在RTS引擎上採用各種優化。
譯註:等角投影 屏幕上3個軸的夾角均爲或接近120度。
較低解析度的模型以支持大量單元。
CryEngine
CryTek公司把部分研究成果公開:
http://www.crytek.com/cryengine/presentations
開源引擎:
OGRE
Panda3D 基於腳本的引擎、
Yake 基於OGRE開發的全功能引擎
Crystal Space
Torque
Irrlicht
Boost的在線文檔是一個學習計算機科學的好地方。
Loki 是強大的泛型編程模板庫。它尤其擅長絞盡你的腦汁。
《C++設計新思維》
有關STL標準在遊戲應用的問題及解決方案
EASTL 29頁
libgcm是索尼提供給PlayStation3的低階直接接口,比OpenGL更高效。
Edge 頑皮狗和索尼爲PlayStation3製作的強大高效渲染及動畫引擎。
物理引擎
Havok
PhysX
Open Dynamics Engine ODE
角色動畫工具
Granny
Havok Animation
Edge
人工智能工具
Kynapse
內存管理 內存碎片問題
渲染系統 分層從低到高
1. 低階渲染器 只負責渲染
圖形設備接口 使用DirectX或OpenGL
2. 場景圖/剔除優化
3. 視覺效果
粒子系統
貼花系統 decal system 彈孔、腳印等
光照貼圖、環境貼圖
動態陰影
全屏後期處理效果
HDR光照、敷霜效果bloom
全屏抗鋸齒FSAA
4. 前端 UI等
剖析和調試工具
intel VTune
IBM Quantity, Purify
Compuware Bounds Checker
時至今日,很少有公司編寫自己的碰撞及物理引擎。取而代之,通常使用第三方的物理SDK。
剛體動力學
軟體動力學
流體動力學
動畫
精靈/紋理動畫
剛體層次結構動畫
骨骼動畫
頂點動畫
變形目標動畫
微軟音頻工具包 XACT
多人遊戲
單屏多人
切割屏多人
網絡多人
A*尋路算法
粒子系統工具 Houdini
剖析器(Profiler)
統計式剖析器 - 計算出某函數佔整體執行時間的近似百分比,
不影響遊戲運行
Intel VTune
測控式剖析器 - 爲每個函數安插特殊的初構代碼
程序會變得很慢
IBM Rational Quantify (Rational Purify Plus工具套裝之一)
混合式剖析器
微軟 LOP (Low Overhead Profiler)
檢測內存泄露
IBM Rational Purify
Compuware Bounds Checker
合成和聚合
has-a 合成
uses-a 聚合
編碼規範
接口爲王 保持接口整潔、簡單、有良好註釋
良好的命名
Effective C++ , Effective STL , Large-Scale C++ Software Design
推薦閱讀
http://www.joelonsoftware.com/articles/Wrong.html
Ogre的基本數據類型
uint8 uint16 uint32
Real OGRE_DOUBLE_PRECISION 1 double 0 float
uchar ushort uint ulong
Radian Degree Angle
多字節值及字節序
小端 Intel
大端 Wii Xbox360 PlayStation3
字節序的解決方案:
1. 所有數據以文本方式寫入文件
2. 轉換字節序,就像網絡通信一樣