一、2020年的Unity或Unreal程序員
在當下遊戲開發中,使用遊戲引擎來建立遊戲或者AR、VR應用已變得愈來愈廣泛。現在,有大量的遊戲引擎可供開發人員選擇,但目前有兩個最受歡迎的兩個遊戲引擎,非Unity和Unreal莫屬了。今天,咱們將着眼於二者的優缺點進行討論,以幫助你們肯定哪個最適合你。web
在開始以前,我須要聲明,咱們並非非要比出哪一個更好,由於這是兩個大相徑庭的很是好的引擎,它們各有千秋。哪一個更合適一般取決於你的我的喜愛或所建立的遊戲類型。此外,Unity和Unreal毫不是惟一的選擇,它們只是最受歡迎的兩個。編程
關於更多機器學習、人工智能、加強現實、Unity、Unreal資源和技術乾貨,能夠關注公衆號:三次方AIRXmarkdown
二、兩個引擎的簡單概述網絡
Unity Engine架構
Unity於2005年第一次做爲一種商業產品開始銷售。當時,它與咱們大多數人並無什麼特別的關係……由於那是當時的Mac獨有的產品。但在2007年,Unity被帶到了Windows平臺,並真正開始發展起來。第二年,蘋果應用商店(Apple App Store)和隨之而來的手機遊戲《淘金熱》(goldrush)問世。機器學習
Unity一開始的定位就是:讓遊戲開發更易於上手,並向更普遍的受衆開放。毋庸置疑他們是成功的。隨後,他們還推出了一個很是成功的廣告平臺(Unity Ads),打造了一個面向Unity,iOS和Android開發人員的獲利平臺。編程語言
從那之後,Unity繼續添加了許多新功能,更重要的是,Unity幾乎能夠面向你聽過的任意一個平臺發佈遊戲。最近幾年,Unity更多地聚焦於提高引擎的性能和渲染技術,這使Unity成爲一個真正的3A引擎。DOTS和可腳本化渲染管道之類的功能極大地提升了視覺質量。編輯器
若是你們對Unity的發展歷史感興趣,能夠看看這篇文章。模塊化
Unreal Engine
Unreal的歷史要古老得多——它早在1998年就發佈了。在當時,有幾家公司將他們的引擎技術許可給其餘開發人員(如NetInvent、Renderware、LithTech,尤爲是idTech)。在id Tech引擎中,開發者能夠得到代碼和工具,用來建立像id software公司的《雷神之錘》/《毀滅戰士》之類的遊戲。與id Tech不一樣,Epic Games將更多資源放在在「產品化」他們的引擎上,並提供完善的工具和支持。值得注意的是,在當時,遊戲引擎的許可費用是6-7位數。至此,Epic成爲了一家遊戲和遊戲技術公司,一直到如今仍是這樣。
若是你看看二十幾年來用各類版本的Unral引擎製做的遊戲,就知道誰是遊戲宗師了。諸如《虛幻競技場》,《殺出重圍》,《生化奇兵1/2/3》,《細胞分裂》,《蝙蝠俠》阿甘系列,《無主之地》系列,《戰爭機器》系列,《質量效應》,《真人格鬥》,《絕地求生》,《堡壘之夜》,固然還有《山羊模擬》等!這些大預算遊戲沒有使用內部技術來建立,這讓Unreal輕鬆成爲A-AAA遊戲之王。然而你會注意到這其中少有手機遊戲。直到《無限刀鋒》,Unreal在移動端仍是一個相對未知的領域,但隨着時間的推移這種狀況正在改善,《堡壘之夜》的巨大成功更是讓他們專一於改善Unreal對移動端的支持。
隨着Unreal4的發佈,Unreal的許可制度發生了很大變化。不像UDK 3(虛幻3引擎開發工具包)那樣須要幾十萬美圓的前期投入,Unreal4改變了最初的小訂閱+版稅的結構,最終進入了直接版稅制。
三、來自程序員的經驗
兩個遊戲引擎對開發者(特別是程序員)來講有不一樣的使用方法。一個主要的區別是Unreal的源代碼能夠在GitHub上得到(雖然在技術上不是開源的),這意味着你能夠本身改變引擎的任何方面,包括從頭開始構建整個東西。另外一方面,Unity是封閉源碼的,除非你爲源碼許可證支付鉅額現金(據說是6位數)。以後,Unity慢慢地發佈愈來愈多的東西,許多包是開源的,可是大部分只是爲了參考而開放的(你仍然不能本身編譯引擎,也不能修復錯誤)。
在遊戲編程方面,Unreal有兩種主要的編程語言:C++和Blueprints。C++有一個完整的垃圾收集系統,如今有一個由Live++支持的實時重裝系統,這使得C++很像一種腳本語言。Blueprints是一個基於圖形的可視化編程系統,它多是最好的可視化編程選項。它還可以編譯成C++代碼,從而下降使用它的性能成本。Unreal的build時間不算太好。
在Unity中,曾經有幾種支持的腳本語言,C#,Boo(相似Python),UnityScript(相似JavaScript/ECMAScript)。最近幾年Boo和UnityScript支持都不怎麼用了,剩下C#做爲開發主要語言。從好的方面來看,自從Mono免費以來,Unity如今有了C#的當前實現,而不是落後於語言開發近十年。Unity目前正在向DOTS或面向數據的技術堆棧遷移,這是C#、ECS或 Entity Component System的高性能子集與並行計算的結合,側重於Jobs系統,有望實現C++級別的性能。Unity中的Build時間很是快。
這兩個遊戲引擎都有應用商店,爲第三方提供額外的遊戲編程方式。
四、特色
在特色上,人們一般會作一個巨大的清單來羅列各自的特色,從而比較每一個遊戲引擎之間可用的功能。事實是,對Unity和Unreal來講,這可能徹底是浪費時間。若是一個新的平臺推出,兩個引擎都將在一個版本中支持它。兩個引擎都包含了各類工具和功能…動畫工具,profilers,DCC導入工具,地形,物理,音頻,VR,過場動畫,版本控制集成等。就功能規格而言,Unity和Unreal無疑是目前功能最豐富和第二豐富的遊戲引擎。
然而,有兩個方面Unity比Unreal強——2D和Web。在上一個版本中,Unreal中的HTML平臺被剝離出來,成爲一個社區項目。就2D而言,Unity在這方面投入了不少關注。Unreal有Paper2D,但Paper2D的發展彷佛在幾年前就中止了。2D製做能夠在任何一個引擎中完成,但在這方面Unity彷佛是更好的選擇。
Unreal最有優點的特色仍然是視覺質量……它目前在渲染3A質量的圖形方面具備更好的性能。Unity正試圖迅速縮小這一差距,如轉向DOTS和引入可編程的高畫質渲染管線HDRP,它們目前正處於測試中。
Unity平臺:
Unreal平臺:
Unreal4讓開發者能夠將項目部署到Windows PC,PlayStation 4,Xbox One,Mac OS X,iOS,Android,AR,VR,Linux,SteamOS和HTML5。咱們能夠在Windows,OS X和Linux上運行Unreal編輯器。
五、社區
Unity和Unreal都有充滿活力的社區,除此以外,社區了還有大量的書籍、教程和其餘資源。此外,Unity的社區要大得多,可能會有3-4倍的出版書籍,以及大量的社區內的各類教程。然而,這兩個引擎在提供學習材料方面都作得很好,因此學習任何一個引擎都不會有太大的問題。這兩個社區都足夠大,通常來講,咱們能夠很容易地找到一個技術問題的解答,儘管僱傭一個有經驗的Unity開發人員比僱傭一個Uneral開發人員更容易。
社區的另外一個方面是可用的開發商市場。Unity應用商店是這一律唸的先驅,擁有免費或商用的腳本、模型、級別、圖形等的巨大資源。Unreal也有一個開發人員商店,但它的規模只有Unity的一小部分。此外,Unreal會在每月的第一天贈送商店的東西給開發者,給開發者提供大量高質量的免費資產。
六、發行遊戲
兩種遊戲引擎都有大量已發佈的遊戲。虛幻引擎主導着大預算的3A領域,並試圖愈來愈多地進軍獨立和移動領域。Unity則相反,發佈了大量的手機遊戲,是中小型開發者的首選引擎,尤爲是幾個備受矚目的專業KickStarter遊戲。
有名的Unreal遊戲:
• 堡壘之夜
• 真人快打系列(UE3衍生引擎)
• 王牌實戰7
• 方舟:生存進化
• 蝙蝠俠:阿卡姆城/庇護
• 戰爭機器4/5
• 王國之心3
• PUBG
• 盜賊之海
• 街頭霸王V
• 無主之地3
• 染血:夜晚的儀式
有名的Unity遊戲:
• 爐石傳說
• 杯頭
• 永恆之柱1和2
• 火警
• 暗影奔跑
• 戰技
• 奧裏和盲人森林
• 喀布爾太空計劃
• 複覈
• 城市:天際線
能夠確定地說,發佈的Unity遊戲比Unreal遊戲要多,可是Unreal在大預算大市場3A遊戲方面處於領先地位。
七、價格
Unity和Unreal採用了很是不一樣的方法來賺錢,每種方法都有優點和劣勢,這取決於遊戲的最終規模、範圍和總銷售額。
Unreal
咱們將從Unreal的訂價方案開始,由於它是最直接的。在你得到必定的收入後,Unreal的做品採用了直接的版稅方案:
UE4是無償使用的,在每一個季度每場遊戲從商業產品中得到首筆3000美圓收入後,才須要支付收入中的 5% 版權費用給 Epic Games。若是你預計你的遊戲會有絕對驚人的銷量,你也能夠和Epic協商固定的前期許可費。
Unity
Unity有一種更傳統的訂閱的方法,有多種計劃可供選擇。Unity剛剛在2020年1月1日提價,並取消了年度計劃訂價。
對於年收入或資金不超過10萬美圓的開發商來講,有我的或免費層。接下來是PLUS層,每個月40美圓。這一層爲用戶提供了額外的功能,如訪問他們的高級學習、分析、雲託管等。最大的不一樣是你能夠用這個許可證每一年賺20萬以上。
而後是專業層,每一個開發人員每個月150美圓。一樣,這款產品附帶了許多附加功能,但徹底消除了收入限制。
最後,還有一個選項是與Unity協商源代碼許可證,其條款不公開。
八、利弊
如下是每一個引擎的主要優勢和缺點的簡要概述:
Unity –優勢
• 支持每一個主要平臺
• 龐大的社區和支持網絡(書籍教程等)
• 迄今爲止最大的開發商市場
• 最容易找工做,且易於得到的認證和培訓課程
• 更好地支持2D遊戲開發
• 與引擎無關的類型,很是適合策略類遊戲,RPG等。
• 更快的開發週期,更快的構建時間
• 廣告網絡,Unity廣告對於移動開發人員而言意義重大。
• 開放且快速的開發迭代,對於常規的alpha和beta版本很是透明
• 引擎的模塊化從新設計加快了發行新版本的速度
Unity–缺點
• 視覺效果不如Unreal
• 性能問題
• 沒法從源代碼構建或修復錯誤
• 沒有用Unity製做的表明性的3A遊戲證實「咱們能夠作到!」
• 剛開始支持可視化腳本
• 模塊化的開發方法使項目更容易遭到破壞
• 引擎還處於中間狀態……新的UI慢慢推出,新的代碼架構慢慢推出,一些新功能取決於尚不可用的其餘新功能。
• 新的編程架構(DOTS / ECS)將須要現有開發人員從新學習,而且目前比GameObject / MonoBehaviour工做流程複雜得多
• C#…C#或C#。想使用C#嗎hhh?
Unreal–優勢
• 支持每一個主要平臺
• 提供源代碼,徹底公開的開發週期
• 極佳的圖形渲染效果
• 更現代的編輯器,更少的遺留問題
• 出色的性能,常常開箱即用
• 非凡的戰績。事實上,已經有數百種專業遊戲使用虛幻引擎在各類流派和風格中發佈。
• 每個月贈送免費資產
• 若是遊戲在Epic Game商店上發佈,則能夠無償使用
虛幻引擎–缺點
• 2D已幾乎被遺棄
• 引擎的設計很是關注第三人稱和第一人稱的遊戲。
• 極慢的構建時間
• 資產導入可能會很是緩慢
• 買賣雙方的資產交易市場較小
• 不支持C#
• 較小的開發人員社區,很難找到經驗豐富的開發人員
九、結論
Unreal和Unity是兩種產品,隨着時間的推移,它們在許多方面變得愈來愈類似,而不是愈來愈不一樣。二者最大的區別是它們的起點。Unity最初針對業餘愛好者市場的生活,並在那裏取得了巨大的成功。如今,圍繞Unity的許多發展都是圍繞着將其升級到3A級別進行的。好比支持更大的項目、更高的圖形保真度和更嚴格的性能控制。
然而,Unreal從它啓動的第一天起,就是一個3A遊戲引擎,專一於高性能和圖形保真度。隨着Unreal4的發佈,人們更關注讓它更易於使用、更好地記錄和更容易上手。
每當一個新功能發佈出來,你能夠很快看到另外一個引擎也緊跟着發佈。他們背後都有鉅額資金支持,並且兩家公司都不太可能倒閉。二者都在以驚人的速度增長功能,儘管這些功能一般還須要幾年才能穩定到足以在生產環境中工做。兩家公司都在大舉進軍服務市場。目前,Unity提供的一個Unreal沒有的主要功能是廣告貨幣化服務,該功能在移動領域很重要,但在桌面和控制檯平臺上不過重要。
關於更多機器學習、人工智能、加強現實、Unity、Unreal資源和技術乾貨,能夠關注公衆號:三次方AIRX,共同窗習,一塊兒進步!AIRX三次方:超酷的開發者學習服務與交流平臺(專一ARVR、Unity、Unreal、CV、AI領域)學ARVR開發,來AIRX三次方!!!