遊戲開發的最新發展趨勢分析

gamesoftboy發表於2007-04-06

遊戲開發的最新發展趨勢分析 

這幾年遊戲產業的發展可以說是一波接著一波,呈現一片欣欣向榮,百家爭鳴的景象。遊戲產業發展至今雖然只有 30 年左右的時間,卻已經成為全球娛樂市場的主流,遊戲軟體的銷售量更是與日俱增,甚至超過悠久歷史的電影與音樂產業。此外,三大遊戲主機廠商 – Sony 的 PlayStation2、任天堂的 Game Cube以及微軟的XBOX之間競爭趨於白熱化,更使得整個遊戲產業成為眾所矚目的焦點。

就國內的發展來看,最近這兩三年內國內的遊戲公司如雨後春筍般的成立,所開發或代理的網路遊戲更是不勝列舉。以全球遊戲業界的發展來看,這幾年韓國的表現最為突出,特別是在網路遊戲的技術研發與遊戲製作,其所發行的網路遊戲更成為全球遊戲產業重要的指標之一。去年在美國洛杉磯所舉行的 E3(Electronic Entertainment Exposition)展中,已經有幾家的韓國廠商擠入世界第一線的遊戲開發廠商之列。

近幾年來,由於 3D 硬體繪圖技術的突破,使得實時描繪的畫面越來越精緻,而且3D遊戲性更多元化更逼近真實世界,因此在遊戲產業中,3D 遊戲已經逐漸取代2D遊戲而成為遊戲市場的主流,即使是網路遊戲,也慢慢趨向3D化。然而遊戲3D化將會帶來的遊戲開發上的困難與問題,之後的章節我們將分析這些問題及解決之道。

遊戲開發的現況

 早期的遊戲開發,由於硬體上的限制,如:運算速度慢,記憶空間小,使得程式設計師必須藉由一些特殊的技巧以提高效率或是擠出夠用的記憶空間,所以每一個遊戲最好是從頭寫起,以便針對各個不同的遊戲程式做最佳化,讓硬體的效能發揮到極致,由於這些限制使得當時的遊戲畫面只能以簡單的線條或是圖形來呈現,所以早期遊戲強調的是遊戲性而不是視覺的感受(例如:華麗的畫面、驚人的視覺特效…等)。而遊戲開發小組可能只需要一個程式設計師、一個美術師及一個的音樂作家,甚至可能一個全能的程式設計師包辦所有的工作。

隨著硬體效能的提升,遊戲開始變得複雜而且多樣化,而遊戲的視覺的感受(如:華麗的畫面)逐漸成為玩家是否接受這個遊戲的首要條件,所以遊戲在製作上日趨複雜,尤其是進入3D時代之後,遊戲製作的難度更是陡升。3D 遊戲的開發之所以困難複雜,有很多原因,各個廠商的困擾也不盡相同,底下我們將列出一些在3D遊戲開發上比較常面臨的問題:

1. 程式開發的困難

要在一個實時的遊戲畫面呈現複雜的場景與視覺特效,程式必須能夠處理繁雜的空間幾何資料、物件的材質以及光源的照明等資訊,然而要駕馭這些元素,程式設計師必須具備數學與物理的相關知識。此外,程式效能的好壞,將直接影響遊戲的流暢度和畫面的精細度,這又牽涉到程式設計師本身的程式撰寫功力,種種因素的影響,連帶地提高了開發 3D 遊戲的困難度。

2. 技術的更新

由於3D描繪技術以及演算法的不斷地更新,所以常常發生遊戲開發到一半,就面臨汰舊換新的窘境,而更換程式底層雖然可以讓遊戲的畫面更漂亮或效能更好,但相對也會因此而延長遊戲的開發時程。

3. 程式跟美術間的溝通

在3D遊戲的開發過程中,程式設計師跟美術人員之間的溝通是非常重要的。一般的情況,3D場景越複雜意味著畫面越精緻,相對地,遊戲的流暢度就越低。所以如何在遊戲的流暢度以及畫面的精緻度之間取得一個平衡點就成為遊戲開發中一個很重要的關鍵,而程式跟美術小組之間的溝通和協調扮演舉足輕重的角色。然而由於這兩個團隊的立場和知識背景均不同,所以溝通不易且容易發生互相牽制的情況,讓遊戲的開發更為困難。 

4. 硬體的影響

由於各家3D加速晶片的製造商所推出的晶片在效能、特性和規格都不盡相同,而3D遊戲又相當倚賴3D加速晶片,所以在開發遊戲時必須考慮到該遊戲是否能與各家顯示晶片的相容,遊戲是否夠流暢…等問題。

5. 團隊的擴編

由於遊戲越做越龐大,加上程式開發不易、複雜程度高等特性,使得開發一個遊戲需要更多人員的參與。人員的擴編使得人事費用的大幅增加,而且團隊合作也更為重要,而團隊合作本身就是一個困難點。
 
6. 失敗率增高

由於3D遊戲在操控及鏡頭設計上的多元化,使得遊戲在設計上的變數變多,設計得宜可以讓遊戲更為出色,但是如果設計不當,則會使得整個遊戲毀於一旦,因此在投入大量人力之前,製作一個遊戲雛形來測試遊戲設計者的創意是否可行是一個必要的方式。

這些開發3D遊戲時所可能會面臨的問題,都會造成開發成本的增加,因此為了解決這些問題降低所需耗費的開發成本,便產生一種新的遊戲開發趨勢—使用現有的(或是自行研發)3D遊戲引擎,所謂的3D遊戲引擎,可以看成是遊戲製作的核心,它主要目的是將遊戲開發過程中一些常用的模組或是複雜的運算抽離出來,簡化遊戲設計的難度讓遊戲設計人員可以將心力放在遊戲設計上,至於3D描繪的相關技術就交由開發3D遊戲引擎的開發小組或廠商負責研究開發。

目前大部分的遊戲廠商都是利用遊戲引擎開發遊戲,但由於遊戲引擎的開發不易,因此開始出現專門負責開發遊戲引擎的廠商提供良好、穩定的遊戲引擎給遊戲開發商使用,以縮短開發的時程和成本。關於3D遊戲引擎所扮演的角色及所能提供的功能我們將在下一節做詳細的探討。

3D遊戲引擎所涵蓋的功能

當初由於FPS型別遊戲的盛行,所以不少遊戲廠商競相開發類似的遊戲,由於型別一樣,因此很多遊戲元件都可以重複使用,而不需重新制作。在id Software所開發的Quake造成遊戲風潮之後,id Software便開始授權Quake引擎給其它廠商開發不同題材但型別相同的遊戲,目的主要是縮短相同型別遊戲開發的時程,重複利用以前所開發過的功能。伴隨著遊戲的複雜度與精緻度的提高,其製作難度也逐漸攀升,因此善用遊戲引擎以縮短遊戲開發的時程便慢慢形成一股趨勢。而每一個3D遊戲引擎所提供的功能和特性都不盡相同,不過,大致上來說大部分的3D遊戲引擎都會包含底下的功能:

1. 跨平臺

由於三大主機的興起,所以現在的遊戲開發廠商不在侷限於單一主機上,因此跨平臺的趨勢慢慢興起,由於各個主機的硬體設計不盡相同所以若是沒有將這些平臺相關的程式程式碼抽離,當該遊戲要跨平臺時,其所耗費的工幾乎等同於開發一款新的遊戲,因此必須設法將這些平臺相關的程式程式碼抽離出來,而這一部份是引擎的核心,所以3D遊戲引擎必須負起跨平臺的功能,一個具有跨平臺的3D遊戲引擎,可以使得開發單一遊戲卻可以平行地在各個主機上發行。
2. 平行發展

一個好的3D遊戲引擎,應該將各個模組如:3D描繪(3D rendering)模組、動畫模組、AI模組、遊戲內容(game content)模組、聲音(sound)模組、特效(special effect)模組、鏡頭控制(camera control)模組…等獨立開來。如此一來在遊戲開發的過程中,每個小組便可以平行開發,藉由這種方式降低各個小組之間的溝通隔閡。此外,由於3D的描繪技術不斷地翻新,因此若要使用最新的技術提高遊戲的效能或是讓畫面更精緻就必須實時更新底層的程式技術,由於引擎所提供的是介面,所以當引擎的底層技術更新時,上層的遊戲相關的程式程式碼並不需要大幅的更動便可以運用新的描繪技術或效果以達到降低更新技術時困難度。 

3. 提供工具程式

3D場景的建構方式和複雜度都會影響遊戲的流暢度,因此在建構場景時,美術與程式之間必須互相協調配合,但一般來說,美術人員並不瞭解程式人員的設計理念,而程式人員也不清楚美術人員在場景製作上的困難點,也就造成了溝通上的隔閡,甚至出現互相牽制的情況,進而拉長遊戲製作的時程。要降低這些情況的發生,工具程式是一個很好的解決方式,藉由這些工具程式,美術人員可以瞭解自己所製作的場景在程式端的顯示結果及效能,而程式端也可以藉由這些工具程式讓美術人員知道場景該如何建構才能提高遊戲的效能。

4. 易於製作遊戲雛形

由於3D遊戲在操控及鏡頭設計上的多元化,配合不同的主題,藉由操控上或是運鏡上的變化,可以使得整個遊戲效果更為突出,更容易將整個遊戲所想要表達的情境呈現出來;但相對來說,由於這些自由度也使得遊戲更難設計,如果設計不當,便無法順利將遊戲的情境傳達給玩家因而成為一個失敗的作品。所以在遊戲正式製作之前,應該先製作一個雛形測試設計者的設計理念是否可行。因此3D遊戲引擎應該提供方便的工具和函式讓遊戲設計者在不需要撰寫複雜程式程式碼的情況下,可以在短時間內實作出遊戲的雛形,以瞭解該設計理念是否可行。
 
5. 縮短開發時程

3D遊戲引擎的另一個重要目的,就是縮短開發時程,由於3D遊戲引擎已經具備一些常用的3D特殊效果及運算函式,因此遊戲開發者便可將心力放在遊戲設計本身上,而不用將心力花在這些瑣碎而複雜的元件上,自然可以提高開發速率而達到縮短時程的目的。

開發3D遊戲引擎的困難點

運用3D遊戲引擎開發遊戲儼然成為現今遊戲開發的趨勢,但是開發一個3D遊戲引擎並不是一件容易的事,開發一個3D遊戲引擎將會面臨許多的問題:

1. 開發成本

由於3D遊戲引擎的功能包羅永珍,不僅要考慮底層程式的效能、繪圖技術,更要能夠提供良好的程式介面和編輯工具,因此要開發一個3D遊戲引擎所花費的成本和時間人力頗高。

2. 技術層面

一個3D遊戲引擎所提供的功能通常會超過20個以上先進的計算機繪圖技術及動畫功能(如bump mapping、environment mapping、shadow volume、mipmap….等),若工程師沒有相當的實力,要在時間內開發出所需的功能供遊戲製作用是一件很不容易的事情。

3. 工具是否齊全

在前一節有提及,遊戲引擎扮演著一個重要的角色:程式設計師與美術人員之間的溝通橋樑,這一個角色扮演是否得當,端賴該引擎所提供的工具是否齊全、是否易用而定,例如:level editor、character editor、sound editor…等工具供設計人員設計並測試遊戲用。而這些工具的設計也是一個相當困難的挑戰。

4. 穩定度

最後,還有很重要的一點是:遊戲引擎的穩定度及開發度,一個遊戲引擎是否穩定將直接影響到該遊戲的穩定度。然而一個新的遊戲引擎需要更長的時間測試和除錯,而這些都會影響到遊戲的開發時程。
另外,人員的流動、新的硬體平臺測試、新的繪圖技術更新、不同平臺的移植等,都使得維護自有的3D遊戲引擎變得困難萬分。
綜合以上所言,我們可以瞭解到運用3D引擎開發遊戲是一股新的趨勢。然而由於引擎的開發和維護都具有相當的難度,因此開始出現專門開發和維護3D遊戲引擎的廠商,這些廠商提供穩定且效能良好的引擎供遊戲廠商開發遊戲,如此一來遊戲廠商便能將重心放在遊戲的開發及設計上,至於受底層的3D描繪技術及工具設計就交給引擎開發商或開發小組去煩惱吧。

結論

由於3D描繪的技術更新越來越快,使得遊戲的開發難度日漸升高,因此將常用的部分慢慢地抽離出來以提高重用性是一個降低開發成本的好方法,這些模組集合起來之後便形成3D遊戲引擎的雛形。3D遊戲引擎的優點就在於提供穩定的遊戲開發平臺、最新的動畫或繪圖功能、與遊戲引擎互相搭配的遊戲製作工具及跨平臺…等強大功能,因此利用3D遊戲引擎來開發遊戲已經成為一股新的遊戲開發的趨勢。

然而開發並維護一個功能強大的3D遊戲引擎並不是件容易的事,因此慢慢出現以開發及維護3D遊戲引擎為主的公司。3D遊戲引擎的發展會日趨成熟,因此遊戲開發的困難度也將隨著3D遊戲引擎的成熟而逐日降低。由於這些3D遊戲引擎的成熟發展,將使得遊戲開發廠商可以將其開發的重心放在遊戲內容及遊戲設計上,因此未來遊戲廠商將可以擺脫複雜的3D繪圖技術的程式設計、溝通不易、跨平臺…等困擾,而更容易地設計出畫面華麗、內容充實的遊戲。
 
 
 

相關文章