Unity 這個 3D 引擎很厲害嗎?的確可以完成各種終端的遊戲研發嗎?


Unity 3D正在革命遊戲開發市場。

我從Unity1.0開始關注它,並且從1.5開始使用。我感覺Unity 3D是一款革命性的遊戲引擎,它(和一些同樣具有創新精神的引擎)正在改寫開發遊戲的歷史。

【高風險的大型遊戲開發】

傳統上來說,開發遊戲是一件費時費力的事情,而且80%的情況下開發遊戲這件事就是一個災難。因為遊戲是一個交互藝術,這個交互不僅體現在娛樂方式上,也體現在開發過程中。修修補補是開發遊戲的家常便飯。但是,由於傳統的遊戲開發至少涉及策劃、美術和程序,因此任何一點微小的調整都需要各個環節通力合作才能勉強達成。而遊戲的品質如何,往往要到最後開發出來一個版本才能看到。這時,項目往往已經開發到50%以上的進度了,無論做什麼調整,都意味著巨大的先期投入。

然而幸運的是。雖然開發遊戲的風險很高,但是傳統遊戲市場的回報也是豐厚的。次世代平台的遊戲動輒可以獲得幾千萬、甚至上億美元的回報;某些大型網遊也能達到近似的回報。為了拿到這麼高的回報,當然無論從技術還是資金上都可以玩命的冒險。

因此,遊戲開發的主要工具——引擎——就成了這個領域的一個關鍵性競爭要素。像Unreal、Cry這些超級引擎,在其發展的初期就確立了兩個指標,其一是貴;其二就是複雜。這些引擎有強悍的穩定性,但是調試過程和開發過程都相當複雜(我猜想是因為為了搶先實現一些視覺或功能上的效果,它們採用了很多層的技術來堆積引擎結構,導致引擎既龐大又難以駕馭),不過一開始他們不必擔心這些問題,因為他們的客戶都不差錢兒,而且有的是人手來「十年磨一劍」。

北京、上海、杭州每月都有幾百萬投資的新遊戲項目啟動,公司動輒4、50人,不少都能達到百人規模,購買昂貴引擎或者偷用昂貴工具的公司當然也不是少數。但其中大約七八成兒最終都沒有獲得預想的成功。足見遊戲開發的風險之大。

【小型遊戲、獨立遊戲開發】

當然,雖然每個做遊戲的人都希望能搞一款大作,但不是每個公司都有機會做大型遊戲的。因此幾乎從遊戲開發誕生那天起,小型遊戲(中型遊戲)開發就是這個領域的最主要項目形式。

中小型遊戲一般規格不大,大多每次遊戲時間都在1小時以內,也沒有複雜的多人聯線模式。因此開發起來相對有時間短、玩法鮮明的特點。在過去,中小型遊戲大部分都採用開源引擎、Flash或者Java駕馭的自編引擎。這些特色讓小型遊戲迅速擁有了數量上的優勢,佔有了巨大的玩家時間。但是,小型遊戲也有2個讓開發者躊躇的問題:

  1. 這些引擎和工具大部分是基於二維技術的,因此我們看到的90%以上的中小型遊戲都是二維的。視覺表現上越來越跟不上玩家的要求。
  2. 中小遊戲的營收模式長期缺少保證,越來越低的投入導致品質越做越差。

【Unity】

Unity3D在發展之初,給自己的定位主要是中小遊戲的開發。這個定位在一開始(Unity1.x時代)並不那麼一呼百應,因為前面提到的兩個問題里,Unity只能解決第一個,對第二個問題它開始也是束手無策的。

不過它有兩個與大型引擎相反的特性,第一是便宜,第二是簡單。它通過完善工具,解決了一些的確對遊戲開發流程非常非常重要的問題:

  • 容易上手。U3D有著與傳統3D軟體十分接近的界面,甚至某些方面比傳統3D軟體還要簡捷易用,因此很快吸引了那些有3D軟體使用經歷的人。容易上手對一個引擎的普及非常重要,沒人喜歡複雜難用的東西。
  • 多語言編程。兼容JavaScript和.Net(C#)這兩個比較主流的語種,方便程序開發。不過更重要的是,如果你對自己的邏輯和數學有信心,你也可以自己學這些語言來開發遊戲。沒你想的那麼難。
  • 節點堆積。U3D對所有場景物體「一視同仁」,通過堆積在上面的一條條功能來給它們添加各種屬性。這讓U3D成了世界上最容易理解的引擎結構之一。
  • 傻瓜式調試和編譯。只要點「播放」就可以馬上測試(這個功能與大型引擎看齊)。
  • 強大的擴展性。U3D有一個比較開放的結構,你可以自由添加一些自己編寫的工具和插件進去,進一步完善U3D的功能,並且這些功能也可以跨平台使用。

還有很多特性可以自己去網上了解。

此外,Unity很「幸運」。iPhone和iPad突然火了,FaceBook也爆炸式增長,這讓中小遊戲突然有了全新的營收保障。目前全球增長最快的遊戲領域是SNS遊戲和手機遊戲。而Unity正因為在這兩個領域的強悍和實用性而變得成長更為迅速。

因此,我認為Unity可能並不是最為「強大」的引擎,但它一定是目前世界上成長速度最快,也是最好用的遊戲引擎之一。


Unity 3D是我用過的3D引擎中最好的一個。功能強大,效果逼真,運行流暢。

它提供了一個整合的編輯器、跨平台發布、地形編輯、著色器,腳本,網路,物理,版本控制等特性。可以開發桌面版、WEB版、手機版的遊戲。據說將來還會支持發布到Flash,是一個非常理想的三維遊戲開發平台。

最近一直在用Unity3D進行開發,多少研究的又深入了一些,所以再補充一些吧。我覺得Unity3D的厲害主要體現在以下幾個方面:

1. 專業級的效果,傻瓜級的操作。連我這樣完全不懂3D的人,也可以輕鬆製作出很好的3D應用。

2. 同時支持JavaScript 和 C#,做開發的分為兩類,做前台的和做後台的,前者一定會js,後者一定會JAVA或者C#,Java程序員看C#,完全沒問題,所以任何人都能夠輕鬆的使用這個工具做開發。

3. 支持多平台,誰都想一次開發到處顯示,以前是JAVA後來是FLASH,現在是UNITY了,同樣的程序:桌面,瀏覽器,iOS,Android,Xbox,Wii,現在還添加了Flash導出,幾乎無所不能。

4. 做2D和做3D一樣強大,最近的一個項目里同時有2D和3D部分,在以前2D部分是用FLASH完成的,因為現在要放到IPAD上,所以在FLASH和UNITY中間做了一下抉擇,最終選擇了Unity,Unity很好的完成了2D部分的所有功能,可我覺得用Flash可能沒法實現Unity的3D效果。


有很多長回答,我就來短點的。如果「厲害」是指它是3D解決方案中的「悍馬」,那麼肯定不是,因為它支持的酷的東西和功能模塊,遠不及在PC時代就成名的UE(unreal engine)、CE(cryengine)等。它不是悍馬,但是的確是豐田,家家戶戶都用得起。

歷史的證明是,悍馬再厲害,最後會在市場中消失。豐田還會走下去。得民心者得天下。

Unity的架構和商業設計,很像當年年輕的微軟。


真實栗子證明療效

同樣是製作ACT類型的遊戲:

使用Cocos2dx

各種坑及編譯, 跨平台兼容性, 穩定性

寫一個遊戲, 始終要寫出一個遊戲編輯器. 費力還要被罵不好用

使用Unity3D後

腰不酸, 腿不痛 了, (跑錯片場)

集中精力寫GamePlay, 狀態機可以直接在面板上看狀態.

一小段代碼就可以馬上從面板上殺死角色用於測試邏輯

只用寫很小的面板代碼就是一個超級穩定好用的角色編輯器

再也不用寫平台相關代碼

終於因為閃電編譯沒時間刷知乎了

一天打無數個平台, 渠道包都是可以的

C#的各種語法糖和類庫, 周到的把老婆都哭暈在廁所

廣告語: Unity3D, 讓你站在巨人的肩膀上開發遊戲


一般吧 不過開始用之後 主要收入來源就是它了


刀進俗人手不如柴,柴進高人手也是刀。


Unity3D的優勢有以下幾項:

  • 部署簡單

    相比Cocos2d-x,OGRE等引擎,對於新手非常友好的一點就是其部署超簡單,並且還自帶了一個IDE:MonoDevelop,只要按下install,之後的創建新項目,多平台打包等等操作均可以在編輯器裡面直接完成。另外,Unity的中間件均可打包成unitypackage進行發布,插件的部署也是最簡便的。

  • 完整的技術棧

    相比其他遊戲引擎,Unity最大的特點就是形成了一個成規模的插件市場,在此基礎上,Unity具有相當多的中間件,可以大大加快獨立開發者和公司的開發進度,如下圖:

  • 活躍的社區和Wiki

    Unity的社區是當前各種遊戲開發社區中最活躍的,這點可以從知乎上的Unity3D話題的關注人數看出,也可以從百度指數的遊戲引擎對比看出。

  • C#作為腳本支持

    C#作為腳本可以在編程效率和運行效率之間取得比較好的平衡,如果你用過 C#的話,你一定很快就會喜歡上這門語言。況且使用C#也是報上了微軟的大腿,今後的微軟一系列新鮮技術也很有可能會和Unity搭配得當。(比如HoloLens)


說幾個比較著名點的例子

紀念碑谷 Monument Valley

Cities: Skyline

Kerbal Space Program


引擎的好壞並不是單純用分數就可以完全衡量,關鍵還是看它能否契合項目目標。如果考慮到公司長遠規劃,又是另一番考量。

儘管如此,unity還是適時地出現在開發者的視野中,這就是中國人講的「天時」。移動互聯網浪潮,頁遊興起,玩家在拋棄了泡菜又吃膩西式大餐之後,開始尋找一種輕鬆的小吃;unity很好的找到了它的定位。

從技術角度來看,動態資源載入,方便的多平台編譯,自定義shader,輕量級的可擴展的用戶界面,自定義數據文件以及Plugin方式接入dll,這些特性在快速開發的基礎上,同時也為擴展提供了相對的可能性。

做為一個技術人員,勢必需要一些前瞻性,我同意上面那位「魏景軍」的話「現在不用Unity3D做遊戲,我怕我五年後會後悔」,低成本、低技術門檻、快速迭代,將會為unity帶來一大批用戶。不是說它現在已經很好,而是需求將推動平台發展。

同時,我相信隨著unity的發展,它不會僅僅滿足為獨立開發者或者小工作室提供服務,至於能做到什麼地步,讓我們拭目以待吧。

不管怎樣,產業鏈上游企業的激烈競爭,對專註於內容本身的遊戲開發商來說總歸是一件好事。


很厲害,確實可以完成幾乎所有終端的開發。

Unity3D我覺得牛逼在這幾個方面:

首先就是跨平台——雖然好多引擎聲稱跨平台,但你看不到一個引擎可以支持這麼多平台並且支持的這麼好,並且你在開發過程中真的可以做到幾乎完全不用寫平台相關代碼。

強大的編輯器:所見即所得,資源拖拽即可用。

基於組件的開發模式:在Unity之前,很少甚至幾乎沒有這樣設計的遊戲引擎。在Unity里資源是第一位的。代碼既是資源也是組件。作為組件的代碼可以高度復用,也可以各種組合。甚至於你可能不知道這段代碼的意思,但只需要知道他的功能就可以使用它(掛載到相應的GameObject上就OK了)。

assetstore:過去你想做個3d遊戲,沒有美術肯定是不可能,這對於個人和小規模團隊開發造成很大的門檻。而assetstore讓你可以獲取大量廉價甚至免費的遊戲資源,小到一個模型,大到完整項目,你都可以買到。從這一點來看,unity是準備打造一個基於引擎的生態系統,無論是美術,還是程序都可以參與其中。


unity的偉大在於這是一款可以讓屌絲逆襲的開發工具,身邊很多人因為unity而有房有車。


其優勢在於web與移動設備。


對於可悲的不會建模和編程的策劃同學來說,這個軟體就是一個悲劇……只能看著眼饞


軟廣告不少嘛,HOHO。

U3D雖然五臟俱全,但其功能和架構還是更適合需要多平台(主要指跨PC、移動設備和WEB)的遊戲,尤其是在手游(包括平板遊戲)和高端頁遊方面目前可以算是一套比較完備和優秀的解決方案(和Blender整合得也不錯)。但目前U3D在大型網遊效率方面的適用性,據我了解還沒有得到驗證。

如果你要做的遊戲僅針對某一個平台,那就需要單獨拿這個平台的其他引擎來橫向比較了,未必是最優的,就像前面幾位提到的Unreal,幾乎跨全平台,功能無比強大、效果也是第一梯隊的,但你說它是最優的?Unreal相當複雜,並不適合一般的遊戲,更適合有實力研發AAAA級遊戲的團隊。

每個引擎,都有它擅長的一面。

Update:

Unity的優勢並不是它定位在了中小型遊戲/手游/頁游上,而是它提供了一整套完備的工具,同時使用多種腳本語言做邏輯驅動,讓大量非專業程序員以及初創公司都有能力完成遊戲的製作。

其實現在Unity主攻的手遊方向,它並不是最好的,但比它好的要麼是SDK形式發布,要麼工具做的沒它完善,加上已有的市場影響力,選擇它的用戶自然也就多。

其實做手游(就可見的這幾年來看),Unity提供的那些高級渲染功能,真有一個用的起來么。


是啊, 對於一個光會寫代碼的程序猿來說,這簡直是個「最難用」的工具啊, 看著那些不會寫代碼的美工們都能用的這麼嫻熟,嫉妒啊。


1.unity工具以及它暗示的工作流程,符合快速迭代的遊戲項目開發,所以受到吹捧。

2.如果unity能成為大多數開發者的選擇,對小公司有利。他們通常無法維護穩定的團隊,使用unity,團隊人員流動導致成本會低很多。

3.工具可以開發,流程可以制定,所以對於大型穩定團隊來說,還是使用功能更為強大的引擎為上。

4.畫面表現,決定因素是美術,不要太捧引擎了。。

5.一切都聽老闆的決定。


unity3D 據說確實不錯。

暫未用過。但是國產的我們的引擎 也不錯。只不過太難推廣了!%&>_&<%


沒有厲害的引擎,只有厲害的作品。 U3D面向低成本開發投入,具有優勢。 以次世代製作水平的遊戲而言,在開發流程上,U3D比起主流引擎,差距和效率是很明顯的。

建議用虛幻3的商業授權,現在很便宜了。對於2倍於U3D的價格,選擇看你的綜合條件了。


個人覺得:上面提到的1,性價比 2,上手容易 3,定位明確 等特點都是第一印象能感受到的,但是我覺得它的擴展性很強(例子,很快把kinect當成資源用來開發相關的體感遊戲)。


還不錯容易上手的引擎,跨系統、光影特效和模型渲染運動路徑各方面的支持都不錯。在ios平台上很容易做3d遊戲和場景。


推薦閱讀:

手游開發者在遊戲送審過程中遇到過怎樣的奇葩事?
手游獨代與手游聯運最大的區別是什麼?
COC部落衝突為什麼社交系統弱爆了?
遊戲運營的困惑!推廣有市場,產品有研發,那麼遊戲運營僅僅就是一個活動策劃嗎?
首次抽到ssr是一種什麼樣的體驗?

TAG:3D | 手機遊戲 | 遊戲引擎 | Unity遊戲引擎 |