當今遊戲產業格局下,自己開發3D引擎還是否有必要?有的話有那些意義?

我想在irrlicht的基礎上開發一個相對獨立的3D引擎,希望能通過不斷的完善成為一個體系相對完善的三維引擎。但是相比市場上U3D這些成熟產品獨立開發無疑要付出更多更多,那麼現在開發一個獨立3D引擎還有沒有意義呢?有的話是那些?


作為曾經的引擎開發者及受益者,我想談一談這個題。

我要說三件事:

1.收益。

2.意義。

3.如何做。


先需要面向事實,我曾憑藉引擎拿過授權金,但是我不認為在當今國內的大環境,商業引擎的成熟度,以及相應的商業模式運作里,自研引擎還能產生經濟價值。自
研引擎並非簡單的造輪子,你需要面臨地是花費巨量的時間成本,使用價值幾乎為零,賺錢的可能更是微乎其微。我說直白一點,如果你指望開發一個遊戲引擎來為
了給你帶來經濟收益,遠遠沒有你在自家門口擺紅薯攤賣紅薯來得實在。

為什麼?作為開發者,我要為一套解決方案買單,無非就是考慮三個問題:

1.它是否能滿足項目需求。對於遊戲引擎來說,如果不能滿足項目需求,是無法商業化的,而你要做到滿足大部分項目需求這一點,需要付出大量的時間和精力。

2.它是否能大量縮短開發周期。這一點取決於你的工具鏈,工具鏈雖然不是什麼技術活,但是是一個堆量的工作,個人是跟一個團隊有本質差距的。隨著時間的推移,這個差距會進一步拉大。

3.
它是否能節省人力成本。這點是根本性問題,遊戲研發成本幾乎就是人力成本。而人力成本就是合作(磨合)成本及學習成本。這些無不是基於對解決方案的熟悉程
度,也許你對自己的引擎很熟悉,但是其它人不是。使用你的引擎,開發團隊每個人都需要先學習再使用,這對企業,是不可承受之重;對個人,學習你的引
擎並不能帶來長期的技術儲備。而相反,商業引擎有大量的學習資料,掌握之後,在不同的企業都能運用。

而至於其他,比如性能,功能等,不能滿足以上3條,這些都只是幻影。

也許你好奇我是如何拿到授權金的,我的引擎在商業引擎早期,那時還沒有Unity,UE還要很貴的授權金,我也許是最後一批自研引擎的受益者。

如今,必須承認的是,這一頁已經翻過去了。

那麼如果開發引擎不能帶來經濟收益,這件事本身是否有意義?

我覺得還是有意義的。

到現在,引擎雖然不能再為我帶來金錢上的直接收入,但是帶給我的是:

1.規劃團隊開發,評估成本,設計架構得心應手,做全棧算是附送的技能。

2.更了解一個遊戲引擎的底層運作原理。我現在使用Unity,對於如何針對性為Unity項目做優化,提供解決方案有比較清晰的思路。想想如果我不知道有PIX調試這種東西,那得多可怕。

3.快速地上手並深入一個商業引擎。

4.很輕易地擴展商業引擎。(這裡做個廣告,我的Unity插件ZGStateMachine,一個可GUI編輯及輕易擴展的狀態機系統,即將上架Asset Store)

這些都是隱形的收益,對於個人來說,也許這是可以運用一輩子的經驗。

所以這些,不是所謂的「意義」嗎?

那麼,現在如果你有決心付出大量的時間成本做一個不會給你帶來直接經濟利益的引擎,如何去做?

我的建議是:

1.
避開競爭。一件有意義的事情,需要有其特點,造輪子也要分是否是技術活。針對某一個方向,或者需求點去做,效果會好很多。比如在頁游時代,Flash平台
做3D很難,商業引擎都還在觀望,僅有的幾個框架(如Away3D等)都無法在性能和工作流上很好地支持一個項目的研發,我引擎做了這個跨平台支持,很自
然從中受益(這跟Unity首先做對移動平台支持是一樣的策略)。

2.從實際項目需求里提煉架構。我認為沒有需求憑想像力去做是很多引擎程序員常犯的錯誤(我也是)。因為想像出來的框架通常無法適應真正的項目需求,常常是一個技術成果想得很好,真正用起來很糟糕。

3.先實現,再談架構。引擎很容易陷入設計陷阱,有時底層實現是比較複雜的,實現之前很難想清楚,經常在你花費大量的時間做好一個你認為完美的設計後開始信心滿滿地編碼,然後不得不為了性能或演算法實現推翻你的設計。

綜上,希望對你有幫助。


永遠有必要,

這一代的遊戲引擎沒有任何競爭的的餘地。但是如果你能夠做出下一代遊戲引擎,從根本上解決當下遊戲引擎存在的各種問題。還是很有必要的。


根據項目吧,國外很多工作室的IN-HOUSE引擎別看很厲害,其實說不定只能做這一種遊戲,完全按照需求來驅動開發的。也只有EA育碧AB玩得轉那種能照顧不同類型的in-house引擎。對於中小型公司,應該把大部分精力放在如何做出好玩的遊戲並實現它。誠然部分國外獨立遊戲開發商也有自己的引擎,但那是在實現過程中遇到難題後因為需求開發的,沒有多餘的高大上的功能,完全就是為了自己的這一種遊戲。好好掂量下自己遊戲的放方面面,做盡量多的準備。雖然U3D很完善了,但是很多資深人士認為這款引擎仍有很多不足,其中一點就是引擎開發商沒有自己用其來做過遊戲,沒有像ceunreal的開發商那樣實打實的進行過實戰,所以引擎有沒有照顧到開發者的地方。切記如果真是為了開發遊戲,就別為了引擎而去開發引擎……


有必要,做3a遊戲也有用自研引擎的。


拋開遊戲談引擎都是刷流氓……

如果題主有一個希望長期維護的遊戲需求,那麼這樣一個獨立引擎會是一個較好的選擇。

引擎堅決不能脫離遊戲!一個引擎,並不是傳統概念中理解的我眼前能看到的所謂的Unity,而是一個完完整整的工具鏈,這也就是為什麼真正屌炸天的引擎都雪藏在公司里的原因。

拋開遊戲,個人寫引擎,退一萬步講,這玩意可以證明你的實力。若是說到真正開發,你都寫過引擎了,還不會用?我不信。

但如若題主的想法僅僅是,我希望寫一個引擎,他能超過Unity或者說能給大眾使用的目的的話,個人並不建議。

一來是引擎太大,個人極難以完成。二是所有的引擎開發都是針對特定需求而不斷迭代演化出來的,而如果只是自己在電腦前yy,「我覺得這個需求可能有用」或者是「這個應該挺有用的」,那麼說真的除了鍛煉你的代碼組織能力以外……就是你的腦洞了。


推薦閱讀:

如何評價 TGA(The Game Awards)頒獎典禮 2016?
認真玩一款電子遊戲需要關注哪些方面內容?
國產頁游的吃相為什麼讓人感覺很難看?
如何評價《星際爭霸1》和《魔獸爭霸3》在世界遊戲史上的地位?

TAG:遊戲開發 | 遊戲引擎 | 遊戲產業 | 計算機圖形學 | 3D遊戲開發 |