發文作者:wekon | 十一月 21, 2008

[20081119 seminar 筆記] 遊戲引擎技術的歷史及全球遊戲產業的未來發展

e69caae591bde5908d-16

今天的 seminar 是 XPEC (樂陞科技) 的張銘光經理主講
樂陞這家公司主要是做遊戲的
特別的是他們的遊戲遍布各種遊戲平台
諸如 PC, XBOX 360, PS3, Wii, PS2, PSP, NDS, Game Cube 等
今天張經理來分享在多平台上開發遊戲及遊戲引擎的經驗


首先他對遊戲引擎進行定義:
“遊戲軟體或其他需要及時圖像顯示效果的互動式應用軟體的核心軟體元件"
這裡的遊戲引擎不單只繪圖引擎,而是包括了其他如檔案管理、網路連線、AI 等功能
遊戲引擎的特色是可以在不同遊戲中重複使用,
甚至是不同類型的遊戲
藉此降低遊戲開發的時間

由於現在遊戲平台的趨勢是多平台
並且很多平台都有足夠的市場
加上現在的玩家比較不會為了某款遊戲而買新平台
這代表遊戲如果不能在不同平台上有相對應的版本
將會失去這些平台背後的商機

因此,一個跨平台的 Game Engine 是相當重要的
其架構如下
e69caae591bde5908d-22
最底層是不同的遊戲平台
在不同的遊戲平台上面,有一層 platform abstraction
提供不同平台的抽象化介面
在上面就是 cross platform game engine
最後就是不同類型的遊戲

然而,張經理提到
理想上當然是開發一次就能在所有平台上跑
但是這是不可能的
因為不同平台的硬體能力差異很大,強項又不一樣
所以會有 performance 的問題
往往還是需要針對不同平台進行最佳化
不過有了這樣的開發環境,還是可以讓所需要的修改減到最少

接下來談到的是遊戲中與 data 有關的概念
很多 3D 的影像模型是由 Maya or Max 這類的標準環境所建立的
但是這種標準的格式可能會造成某些平台的負荷過重
所以通常在引入遊戲前
會藉由 tool pipeline 對這些 data 做一些轉換

除此之外,還提到了現在遊戲的開發多是以 data driven 的方式進行
再搭配相對應的編輯器來調整
所謂 data driven,是指在遊戲中的所有美術、game play,等元素
由 data 及參數來表達,而不是 hard code
例如怪物的位置、怪物類型、特效程度、或角色動作等
這樣才可以讓不同的開發人員間平行開發,不用互相等待
並且讓經常發生的微調可以很方便,很快速的進行

接下來的部分提到了一些遊戲引擎的歷史
因為以前硬體不夠強大
所以用到的影像處理技術包括了 Ray casting, BSP, PVS, ligh map 等

現在遊戲常使用的影像處理技術則包括
Vertex Pixcel Shader, HDR, per-pixcel lighting normal map, … 等

未來的影像處理技術重點則在於
global illumination, HDR, BRDF, PRT, Soft Shadow, facial animation & lip-sync, procedural sky/tree, dynamic LOD, large data streaming 等
在這裡特別說明了一下什麼是 large data streaming
傳統遊戲會把場景切成很多塊
然後在切換不同場景時作 loading
這樣很不真實
所以建議使用 streaming 的方式將地圖資訊 streaming 進來
如此就不需要切換場景了

除了影像處理技術外
未來的遊戲平台應該可以夠強大到支援一些額外的運算
例如物理引擎以及 AI
物理引擎技術包括了 rigid body dynamics, rag-doll character animation, motion synthesis by biomechanics 等
而 AI 則包括了 path-finding, group/team behavior, script driven design, machine learning 等

(說真的,除了 AI 之外的專有名詞之外其他的都不知道是啥意思)

未來的網路重點包括了
distributed game server system, high security message encryption, voice communication, distributed database system  等

而最後,列舉了一些可能是未來的代表性 game engine
– CryENGINE2
– X-Ray Engine
– Unreal Engine 4
– id Tech 5
– OGRE (open source)
其中 OGRE 是 open source,其他則是要錢的

再來,提到了一個迷思
到底是花錢買別人的 game engine 好呢?還是自己開發好呢?
張經理的建議是
因為通常一個 game engine 要花很久時間來開發
但是遊戲開發時程要越短越好
所以通常是直接用別人開發好的引擎
但是這裡要特別注意的是
雖然是別人的引擎,還是要深入瞭解引擎的運作原理
這樣才能將引擎的效能發揮到極致
如果真的有時間可以開發引擎當然是最好
因為這是長遠之計
不然每款遊戲都用別人的,就要每次花一筆錢來買

最後,張經理提出了一個 ASGE 引擎的概念
意思是以通用引擎為基礎,再針對不同類型的遊戲做出客製化的遊戲引擎及編輯器
因為每種類型遊戲強調的重點不同
所以一不同需求開發的特殊引擎
將可以讓以往同類型遊戲的開發更加節省時間


發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s

分類

%d 位部落客按了讚: