Sunday, September 28, 2008

程式語言及遊戲引擎的定位

其實我已經一段時間,沒有接觸 Game Engine 的 Low-Level 層面的開發 ( 例如:Vertex Buffer 或是 Skeleton Animation 等的資料管理 ) 。

在 OGRE 還是在 1.2.X 的階段時,她使用了不小的外加元件 ( Dependencies ),有很多個不同的 DLL 檔案。我一向都不喜歡這樣的遊戲引擎,那時候我還不太清楚為什麼不喜歡,只是直覺的想「 這樣會變得很麻煩 」,就和我以前說過頗類似的感覺:「小寫一些 code,Bug 的出現也會減少」。但是近來有了一點點啟發,明白到一些減少用外加元件的好處。主要的啟發是來自 Microsoft Windows,那個 VC runtime distribution,可以說是 DLL 的災難。

那些惱人的外加元件,因為它們各自用的 Runtime 版本可能不一樣,為了歸一化,很多時候也要由 Source code 開始從新 Build 一次。這些問題雖然可以解決,但也不是一件容易事。而最大的一個問題,就是要從一個開發平台,轉到另一個時 ( 例如:從 Windows 轉到 Linux ) ,這下可不是說笑的。

但是說了這麼多問題,那究竟要怎樣做才可以呢?說實話,我不是資深的軟件工程師,不太適合處理這種複雜的情況。但我一直堅持著用 C Language 的主要原因,或多或少也是因為上面所說的問題。

p.s. 回想 Ngan-GINE'3D,其實也是一個全 C Language ( + DirectX ) 的遊戲引擎。如果我能力夠的話,亦希望繼續用 C Language 做一個全面的 Game Engine。可惜的是,自己的能力不太夠罷了。

No comments: