Saturday, October 10, 2009

Generic Approach

其實,一個遊戲引擎 ( Game Engine ),究竟能否用「 Generic Approach 」為方向呢?

為什麼要用 Generic Approach 呢?用這方案的好處,是比較容易組合配件,擴展性高而且靈活 ( 同事說,編程弱的也可容易做到,但我卻不懂... )。那麼究竟實際上是怎樣的呢?我個人的意見是,Generic Approach 是不適合用來製作 Game Engine 的。

電腦遊戲有很多很多的種類,尤其是 3D,是不太適合 Generic 化 Game Engine 及製作流程 ( 文檔處理不計算在內 )。適合 Generic 化的,只是 Graphic Engine、Audio Engine、Physics Engine 或 Script Engine。當所有東西組合成一個 Game Engine 時,需要的不是 Generic Approach,而是類似 middleware 的 API 或工具,Game Engine 的出現,就是可以提供這類 API 或工具。如果每一個遊戲,都是從那些單一 Engine 組成,那麼 Game Engine 的存在是怎麼樣的價值?

3D 遊戲要適合的 Engine 工具來製作

2D 或小型遊戲可能比較適合 Generic Approach ( 左圖 ),而 3D 遊戲就要適合的 Game Engine 工具來製作 ( 右圖 )。

最後補充一些,我想說的是不適合,不是絕對不可以。其實,甚麼事情也可以 Generic 化,只是看看最終出來的結果會是怎樣而已。

2 comments:

Unknown said...

Generic Approach 是否適合game engine?如果討論這種問題我會希望知道什麼是Generic Approach跟什麼是game engine... 這樣的討論會沒完沒了~(但可能很有趣).

但我想舉一個有趣的例子: Gamebryo. 其特點是他跟很多不同的middle ware(e.g. speedtree) 已作intergration, cross-platform, 可作很多不同類型的遊戲(Client title.).而unreal engine 除了FTS, ACTION, RPG, 甚至MMORPG 也可以做到.

跟上文論點中, 因為遊戲種類型多而不可以Generic, 似乎關係不大. 反而這可能是game engine 開發者的經驗問題. 就好像讀書時的theory道理一樣. 一個初心者只會學習如何去做... 當有了很多經驗才可以變成theory.

就我個人的看法而言, Generic Approach 只是希望節省未來要重複寫同一樣的coding. 記得前些日子也有跟同事們討論過: xxx 項目應該放在game engine team 開發還是game play team 開發. 最後得出的結論還是game play team 先做, 做完了有了experience, 再納入game engine 內. 當時的感覺是 =.=.....

Ngan Lo ( 顏佬 ) said...

哈哈... 該話題確實係可以講好耐。

Gamebryo 我覺得佢個 design 係 generic, 我唔係話 generic 做唔到多種類型 games, 而係會做得好鬼辛苦, 同埋做得相當唔好, 呢方面我無講清楚, 下次我盡量講詳細 D... ;)

p.s. 我個人覺得, UNREAL engine 係唔可以做 Action game. ( 例如 Bayonetta :D )