商業或自製,引擎大不同!

在前篇文章「遊戲引擎的層級架構 」中,有位訪客的迴響提到一個很關鍵的問題:

國外的某些商業繪圖引擎並沒有提供 Game 相關的編輯器,為何還是有很多公司購買商業繪圖引擎?

一言以蔽之,就是 Robust 與否的問題。

Robust:堅固的、剛健的、結實的、強壯的。

什麼樣的引擎才能稱得上是堅固結實呢?所謂的引擎技術,不僅只是在最新的顯示卡與最好的配備上展現出炫麗奪目的效果,就能夠稱得上是優秀的引擎。除了一般的運行狀況之外,更需要周全地考量各種邊界狀況 (Boundary Condition) 的情形,以及如何進行例外處理 (Exception Handling) 的程序。檔案不存在的情形如何處理?記憶體不足無法配置如何處理?檔案讀取當中發生毀損狀況怎麼辦?有沒有可能傳入空指標 (Pointer) 而造成系統當機?還有很多很多不同面向的問題。

真正夠格使用這個字的引擎技術,才能夠成為一個成功的商業引擎。這些動輒數十萬美金至上百萬美金授權費的商業引擎,為何能夠設定這樣高昂的價格?就是因為他們的工程技術,是經過嚴苛的市場檢驗證明過的。多數製作商業引擎的公司大多有七、八年甚至十年以上的歷史了,其間已經有不計其數的作品與專案面市,如果引擎製作出來的成果,不能夠經得起玩家與消費者的考驗,早就消失在歷史的洪流中了。

在個人電腦平台上開發遊戲,最大的關鍵困難點,相容性 (Compatibility) 的問題就佔了極大的部分。很多的顯示卡,加上不同的顯示卡驅動程式設定,還有其他無數的硬體設備組合,甚至使用者安裝的其他軟體,都可能與遊戲程式發生的衝突。平時開發引擎或遊戲程式,總認為不可能會發生的情形,上市後到了玩家的電腦裡,就是有意想不到的場合,會發生這些百分之一、千分之一,甚至萬分之一機率才會出現的臭蟲與當機問題。

而這些商業引擎,已經製作出非常多的商業遊戲作品,經過數以萬計的玩家操作使用,引擎開發公司本身不斷地接受遊戲開發者與玩家兩個面向的反饋,一步步地改良與加強原有的技術,能夠稱得上是真正千錘百鍊的實做技術。因此,即使這些引擎缺少便利的編輯器或工具,仍然不減他們「很硬」的事實。就如同是一種信譽般,他就是可以拍胸脯掛保證來捍衛遊戲程式,把問題發生的可能性減至最低。這就是商業引擎能夠屹立不搖的原因。

當然,沒有足夠的編輯器與工具,對於遊戲開發來說,真的是會令人吐血不止。通常在這樣的狀況下,至少需要一個有經驗的能手,在熟悉引擎的使用之後,再專注於製作相關工具的工作上。反面來想,如果這些引擎能夠具備完善強大的編輯器與輔助工具,那麼可預想的,這些繪圖引擎很快地就會「轉職」成為遊戲引擎了。原來數十萬美金的身價,也會跟著扶搖直上,擠身百萬引擎之列。果真如此,開發者能不能負擔得起這樣的投資,就是另一個層面的問題了。

我從學生時代起就開始關注 3D 繪圖引擎的發展,找過也看過不論是國內或國外許多的自製引擎,發現一個很有趣的奇妙現象:不管是繪圖引擎還是聲稱的遊戲引擎,常常都搞得像各國間的軍備競賽一樣。其他引擎實做出的功能,自己也不能落人後,於是洋洋灑灑列出引擎所有大大小小的 Feature(特點),展示很多看起來不賴的 Screenshot(截圖),然後這樣那樣,請來點掌聲、請付錢買我,啪啦啪啦啪啦。當然其中也有看起來非常不錯的引擎,因為沒有親身使用過,真的只是看起來不錯而已;但是,心裡一樣有著大大的疑問句油然而生。

相較之下,許多著名的開放原始碼 (Open Source) 引擎,如 OgreIrrlicht 已經行之有年,也逐漸從原本的小嫩嫩成長茁壯起來了。與自製引擎不同的是,這些開放原始碼的引擎,雖然離商業引擎的程度還有段不短的距離,但是他們擁有許多的開發者與使用者,已經經歷過許多的問題、建議與改進。透過這些活躍的開發者社群與使用者社群相輔相成地投注心力,也能夠逐漸地將引擎拉拔長大。

以上所提的內容,用意不是在貶低引擎技術的發展;事實上,技術的進步與發展對於遊戲開發來說,仍然相當重要而不可忽視。另外,3D 繪圖理論 (3D Graphics) 與相關程式設計,也的確是相當令人著迷的事物。自己也是從第一本 OpenGL 紅皮書開始,就已經深深迷上而不可自拔了。技術與理論,都是非常令人入迷的事物,而能夠將這些書本上的理論,轉化成為酷炫精彩的畫面,更是許多程式設計者投身遊戲業界的動力之一。然而對於遊戲開發製作來說,以遊戲為名,切勿忘記引擎技術僅僅是眾多的環節其中之一而已。

經過三年多的商業引擎使用經驗後,以台灣遊戲界的現況來說,我並不贊成自行開發 3D 引擎。當然這是以業界發展與商業現實的角度來看的。多數用來開發大型遊戲的商業引擎,背後都是一個完整團隊的運作;具有龐大完備的架構、各式開發工具,研發成員幾乎都是專業資深的碩博士,還要有厲害的行銷團隊等等。在製作出賣座的好遊戲這個前提之下,自行開發引擎這個選項,幾乎可以說是不合乎理性與成本的做法。漂亮的畫面很多人都會做,儘管把 Shader 用得天花亂墜、胡說八道,如果沒有真正有趣的內容 (Content) 存在,展現出來的也不過是許多華麗而無意義的三角形堆砌而已。

唯有真切瞭解我們自己的核心優勢而善用之,才有機會能夠打破現狀,發展出我們自己的遊戲產業的路

11 Replies to “商業或自製,引擎大不同!”

  1. 此文看似有理,但評評方法太過草率,
    就1顆引擎層級,以板主個人身份,Robust或許就能決定1顆引擎,
    但是以公司角度,購買引擎的成本很高,風險也不低,
    硬體相容性只能當作評估引擎,最後面選項之一,
    我們公司是採全方位驗證,包括:
    價格成本,適用性,技術性,功能性,維護性,上手度,
    額外費用,人員訓練,成熟度,相容性,後續額外支出費用等等…
    還得評估有無支援:
    遊戲互動,物理運算,紙娃娃換裝系統,搜尋路徑,
    編輯事件功能,角色互動,音樂音效統統,
    動畫系統,戰鬥系統,特效系統,美術外掛工具,
    場景編輯器,角色編輯器,戰鬥編輯器,事件編輯器等等…
    非常多項目,必須一一實際檢驗和操作,
    至少不是只看硬體相容性而已.
    基本上一顆引擎費用少者數百萬,多者數仟萬,
    評估項目要多方面的.

    半路:
    您所提到種種因素,的的確確是購買引擎之前,所必須仔細研究評估的項目。
    我這篇文章的內容,僅是以 Robust 與否的角度來強調商業非商業引擎的分別。
    正如您列出的詳細項目,實際上在購買引擎之前,絕對是要用心做很多功課,並且考量種種不同面向的因素,才有辦法做出正確的決定,購買適合公司、適合遊戲使用的引擎。否則,可是用大把的鈔票去換來彆扭難用的引擎,賠上了金錢與時間,遊戲也可能淪落到做不出來的窘境。 Orz

    非常感謝您的指教!

  2. Engine有多強,大部份都先看它技術功能,
    如最近出現的Crysis Engine,強調的不就是技術?
    台灣業界近期流傳著一套國外引擎 Hero Engine,
    價格也是以數百萬美金在計價,相對它的技術和功能,
    一定是比其它3D引擎強.

    半路:
    技術的確很重要,而不管是用來製作 Far CryCryENGINE 或是製作 CrysisCryENGINE 2,呈現出來的畫面效果都相當驚人。

    但是,請到 CryENGINE 的連結裡,看看使用它所製作出來的遊戲列表:除了自家的 Far Cry 系列之外,只有另外兩款遊戲是使用 CryENGINE 製作的。到了 CryENGINE 2,引擎授權就變多了一些;不過目前市面上仍然只有 Crysis 是已發售的遊戲。

    從這個例子可以很明顯看到市場驗證的重要性。CryENGINE 的確擁有非常強大的技術力,是遊戲界中 AAA 級的引擎;不過在沒有成功遊戲作品的情況下,大部分公司也不會貿然付出龐大的金額購買引擎。在通過消費者與開發者的考驗之後,CryENGINE 2 也才能夠逐漸建立信譽而得到遊戲公司的信任。其實,可以說 Far Cry 與 Crysis 本來就是為了證明引擎的能耐與可靠性而誕生的作品啊。

    Hero Engine 我倒是第一次聽過,稍微看了一下網站介紹而已,有機會再來研究看看。 XD
    感謝您的回應!

  3. 講了一大堆.
    喜歡用哪顆引擎,都嘛是個人主觀喜好,
    看到這種次要論點,也能當重點,就知道這裡程度,
    現在3d技術己經很成熟,寫出來嘛都大同小異,
    國外引擎技術一堆,看要不要花時間下去學,
    沒時間沒能力,付錢去買現成不就得了,
    要買現成的就去買,還在嘰哩瓜啦說一堆,
    嘴皮子說這麼多,有什麼用,
    說句不中聽的,沒能力就花錢去買技術,
    免的案子作出來丟臉,不就這回事,
    看看美國魔獸online和大陸完美世界,花個幾年,
    自己也作出個引擎技術,也成功上市,
    一大堆公司自行開發引擎,是有遠見的,
    不是你眼前的短視近利,而是讓投資人,
    知道公司核心價值,循著經濟學理論法則,
    為了求取成功,保持公司競爭力,避免同業同質化,
    避免隨時被取代掉,才會投入自行開發關鍵技術,
    此點去看哪些申請專利公司就了解其中道理,
    再看日本韓國和現在的大陸,成功的背後,
    花了多少時間心力,在保持公司核心價值,
    就算沒讀過經濟學,也聽過競爭力,
    當每家都是同顆引擎技術時,還有競爭力嗎?
    法人投資人跑來看,啊,貴公司用的技術是買的,
    哪投資你們,和投資別人有差嗎?
    研發公司格局定位在速食店層次,
    連個核心技術都沒有,就等著被取代,
    公司價值在哪?產品嗎?台灣遊戲產品有名嗎?
    好玩嗎?台灣作遊戲的都說自己最好玩,
    也都說最重視遊戲性,結果呢?到國際上了嗎?
    這幾年下來,台灣每套遊戲性都不行,
    連核心技術也沒發展起來,哪到底強項在哪?
    沒事多去看點經濟學,想辦法讓公司強化起來,
    不要一直玩別人技術玩過頭,
    還不知道自己沒競爭力了,就等著被大陸取代吧.

    半路:
    謝謝您提出的見解,受教了。
    您所闡述的這些層面,的確是我沒有考量到的部分。
    自己有些想法,待整理後明天再行回覆。感謝。

  4. 看來慢慢出現挑戰者了:P 在這邊想回應一下Jack兄的留言。

    競爭力可以放在引擎上(低階),也可以放在使用引擎上(中階),也可以放在遊戲內容的設計上(高階)。而一個遊戲公司是要做遊戲而不是做引擎,自行開發一個往往不是最好的決定呀(請見”人月神話”)。舉個例子,就算是Blizzard這樣有”競爭力”的公司也不是用自家開發的sound engine。他們在某次改板後換成FMOD,原因是這個只有不到十個人小組寫出來的東西真是太強大了,跨各平台、又有很好的線上技術支援,何苦在自家公司裡再花錢花時間養一個小組呢?

    我覺得,台灣遊戲公司有沒有競爭力、跟能不能自己開發引擎沒有很絕對的關係,此篇文章主要在介紹的方向跟這個問題也沒直接關係。Jack兄用的語氣亦不像是要來討論的,希望不要把板主這樣的好站搞得像是巴哈一樣。

    BTW我不認識板主,我也不是他的分身。:PPP

    半路:
    FMOD 真的是很強大。謝謝你的回應。
    歡迎來挑戰~ XD

  5. 本人主要點醒板主,
    不要用基層人員的思考模式,高分貝談論是非,
    開發技術和花時間作遊戲,都是要花心血下去,
    即然板主己投入使用商業引擎開發遊戲之列,
    就好好把遊戲作出來,幫公司成功後,
    再來批評願意投入發展關鍵技術公司.
    板主原文嘲諷別人心血時,可否先證明自己強在哪?
    台灣自製遊戲產業己經小到不行,研發者還在
    批評來批評去,不如轉型代理遊戲,風險小產品現成,
    不必花幾佰幾仟萬買技術,也不用請一堆研發人員花
    個幾年,讓你們學習商業引擎後,還不保證弄出產品時,
    等資金燒完後,頂著用過xx商業引擎,找新東家去上班,
    把公司當補習班一樣,跟大陸人有兩樣嗎?
    建議板主好好想一想,如何幫公司成功,
    再來談論個人選擇是對是錯.
    有網友支持是好事,但也不能因此隨便亂說.
    這只會讓人這裡水平只有如此.

    半路:
    謝謝你的建議。 ^^

  6. 個人是覺得版主所言還蠻有道理的,看不出哪裡是隨便亂說,還請Jack兄指明一下。
    此外我也同意Isk兄說的,遊戲的競爭力不只是在引擎上,
    有好的引擎只是能幫助開發者更方便的做出東西來,
    但是遊戲並不單純只是技術力的展現,藝術層面的展現也是相對重要的一點,
    兩者相互搭配才會有佳作出現。

    再者,每個人都有發表自己意見的權利,版主在文中並無情緒化或是惡意中傷他人的發言,
    希望批評是針對文章內容,而不是針對人。

    半路:
    大家討論沒關係,火氣別升起來就好。
    還是因為最近天氣太冷了,需要一點火來升升溫度比較好? XD
    謝謝你的回應。 ^^

  7. 首先感謝各位的迴響。

    這裡沒有分支持者反對者這種東西啊,文章內容主要都是我個人的學習經驗與心得分享,是屬於超級不客觀的主觀意識與想法,不過每段字句都是經過認真審慎的思考,小心仔細地打出來後再重覆校稿過才會發佈的。有時候字句與形容詞語氣會重了點,但是我可以接受各種不同的聲音與觀點,如果文章內容有錯誤或者您有不同的想法都歡迎提出。

    我很認可自製引擎可以做為一間公司的核心競爭力。沒有自製引擎這件事,對於投資者觀點會比較不利的情形我也經歷過。只是,以 3D MMORPG 的例子來看,現在市場上多數的遊戲畫面品質的水準皆相去不遠。如果要能以自行開發的引擎做為核心競爭力,肯定需要勝過這些遊戲所呈現的平均水準。以我有限的經歷來看,還沒有看過比較成功的例子。

    3D 相關技術發展至今,相對來說已經成為成熟的技術;除了幾個百萬美金等級的引擎,各家遊戲使用商業或自製引擎所呈現出來的效果,差距已經越來越小、越來越同質化。如果自製引擎能夠跳脫這種巢臼,開發出不同的面貌,並且隨著繪圖技術的演進不斷地進步,我會非常非常敬佩這樣有遠見的公司與有能力的開發者。

    當然我很清楚開發引擎的辛勞與付出,不是單純使用現成的引擎可以比擬的。要能夠同時兼顧起開發引擎製作遊戲兩件事並且達到良好的成果,比起只專心做一件事來得困難兩倍以上。工程技術與遊戲設計是不可分的一體兩面,只是在我的經驗中,搞工程的都會很強調、甚至過度強調技術的重要性,反而會忘記我們的目標是在於遊戲。以我個人的喜好來說,與其鑽研最新最漂亮的繪圖成象與引擎技術,我更願意將時間花費在使企畫與美術操作更便利、工作更順利的項目上。

    真的要說我所認為的「我們的核心競爭優勢」是什麼?我想這個問題,還是需要依據不同競爭對象的前提來回答;真要講起來又很大一坨,以後再談。我有認識自己一個人開發引擎的真強者,技術相當強,我也很佩服他的能力與堅持。本文主題真的不是在批評開發技術這件事啦。

    雖然我的資歷尚淺,不過也看到也經歷過不少同行相輕的情況,只能說真的是很不必要啊。大家都是為遊戲業在盡一份心力或是對遊戲界抱持興趣與熱誠的人,不能彼此交換分享經驗而私下冷嘲熱諷,只是會不斷地耗損業界的人才與個人的熱情而已。

    還是要謝謝各位的意見。以上所提的言論我都能夠虛心接受,特別是 Jack_Li 願意給予指點,很感謝你。

  8. 網站是個公開場所,我也是很高興,
    板主願意開站分享心得出來,
    讓大家都有個地方取材,但也因為如此,
    板主的一言一句之間,都代表其重要性,
    在此才會給予板主其它方向的指教,
    用字之間,如有不雅,請多多見諒.

    半路:
    這裡不是一言堂,各位有各種意見都可以盡量提,
    我也非常期待聽到不同角度不同觀點的心得與經驗分享啊。
    謝謝你的指教。 ^^

  9. 智冠花三年、一億五千萬做了一個出來了,在巴哈的新聞看到的。不論遊戲如何,這個成就真的很不錯!莫非Jack兄是這小組的一員嗎 ^^ 王總說的跟Jack兄提到的很類似呢~

    “智冠集團董事長王俊博表示,以往遊戲公司購買國外的3D引擎研發,結果因為對引擎無法快速熟悉,導致遊戲做出來太陽春,等到熟悉後,引擎開發公司又已經研發出更好的引擎,因此他深刻體認遊戲公司應該要擁有自己的遊戲引擎、才能依照市場的變化來隨時做修正…”

    半路:
    今天看到這個消息,著實嚇了很大很大一跳阿~~~ XD
    看了內文的兩段展示影片,繪圖技術與呈現出來的成果的確是頗具水準!
    搞代理,再強也只能在台灣稱王;我們需要有自主研發的能力,才能夠跨出台灣、走向世界的舞台與市場!
    總之我是非常期待後續的發展阿。遊戲出來後,我也會去玩看看的~ :D

  10. 穩固性 (Robustness) 的定義為何?如何打造出更穩固的程式碼?在 Qing 大的這篇文章裡,給出了最佳的闡釋。

    「未慮對,先慮錯。」做為時時提醒自己的警句。

Leave a Reply