Unity3D和UE4哪個才是未來的方向🔥
UE4 的工具鏈完善,框架也更合理;
Unity 提供輕量靈活的底層,二者各有各的側重點,并且在細分領域越來越穩固,
就目前的手游市場而言,Unity占比市場毋庸置疑是最大的,相比較UE4來說,Unity則更擅長輕量級多一些,但是對于大型游戲的端游而言,還是UE4用的更多一點,并不是Unity做不了高質量畫面或者大的程式,畢竟從歷史發展來看,UE的地位還是前輩級的,Unity作為后起之秀,做的效果也是無話可說,而且對于小眾游戲開發者和獨立開發者來說,Unity的使用成本也相對低一些,入門門檻比UE要低不少,
UE4??
UE發展史??
四年前的一個深夜,或者說是一個早晨,Unreal的傳奇開始了,它發生在馬里蘭州一個不起眼的市鎮Rockvill,在一套公寓大樓里回響起一支墨西哥流浪樂隊的曲子,那里住著Epic
MegaGames的游戲開發成員,清晨5點,三位游戲設計師還在聽著最后一首曲子,那墨西哥人特有的華美旋律直透墻壁傳至外間,畢竟,在游戲世界里,清晨5點,并不是指公雞打鳴天要亮了,而是意味著程式師們苦熬了一個夜晚后終于可以關燈睡覺了,
作一名游戲開發者從來就不是潮流,而在當時那個年代,它更是沒有什么迷人之處,Rockville市這家自詡“Epic
Apartment”(史詩部門)的公司其實也與其它的作業室一樣地乏味無奇,然而它卻是Epic MegaGames的創始人Tim Sweeney的重中之重,在那,有他的王牌制作人所組成的智囊團,正為了他們最新的游戲而通宵達旦地作業著,
就在前面所說的那個晚上,一位年輕的加拿大設計師James Schmalz作出了一個決定,他準備向他的同伴Cliff
Bleszinski展示他那新游戲的最初設計原型,那是他早期成就的繼續,赫赫有名的彈珠臺游戲“Extreme Pinball”便出自他手,盡管他的下一部游戲其時還僅僅停留在理論研究階段——也許比螢屏上飛舞的那些實線條要強上一點——但卻是朝向Schmalz的目標所邁出的第一步,他把這一目標稱之為“一個類似《魔毯》的可自由穿梭于地穴的游戲環境,”
Unreal的故事就是這樣展開的,雖說其間背景的設定從最初的地穴改為了后來的城堡,游戲影像也從粗糙變得華麗無比,但四年后,Schmalz與Bleszinski,連同Tim Sweeney一塊,最終無可爭議地親手造就了這一年度最偉大的游戲,

💬
從工具鏈的角度看,UE4 是完勝的,以影片控制為例:UE4 的影片控制,邏輯和狀態機是系結的,在較大的專案中,就不會出現找不到影片控制的觸發邏輯,或者想增加影片控制邏輯時不知道如何組織代碼結構的問題,Unity 的 AnimatorController 則將變數通過 Animator 暴露給 GameObject,由 MonoBehavior 操作,并且操作的程序是以硬編碼的方式做的,UE4 的工具鏈完善,框架也更合理;Unity 提供輕量靈活的底層,二者各有各的側重點,并且在細分領域越來越穩固,
- UE4
的影片控制,邏輯和狀態機是系結的,在較大的專案中,就不會出現找不到影片控制的觸發邏輯,或者想增加影片控制邏輯時不知道如何組織代碼結構的問題, - Unity 的 AnimatorController 則將變數通過 Animator 暴露給 GameObject,由
MonoBehavior 操作,并且操作的程序是以硬編碼的方式做的,
// AnimState 是 AnimatorController 中定義的變數
ator1.SetInteger("AnimState", mAnimIndex % mAnimTotal);
在引擎設計的思路上,UE4 采用 engine + framework 的模式,將框架定義的非常仔細,針對游戲開發進行了完善的抽象,圍繞它們做了完整的工具鏈,

UE 考慮到了主要工種的配合問題,藍圖的引入讓功能層的撰寫門檻降低了不少,在規模較大的專案中,由于完善的分層,總體上使用體驗比 unity 舒服很多(就引擎本體而言),
缺點就是學習程序中需要按著 UE 引擎所設計的思路去掌握各種概念,但因為這套抽象是相當合理的,所以理解起來也不算困難,只是引擎里藏了很多設定項,背后都是專業細致的領域知識,理解起來還是有門檻的,
還有一個問題是專案過大,做小東西往往顯得臃腫,大材小用,而且無論做什么,框架都是要遵守的,在與 unity 的競爭中,首先就失去了輕量化和兼顧低性能設備的陣地,因而 2D 部分得不到發展,此消彼長,現在 2D 組件已經遠遠比不上 unity 了,
Unity??
unity發展史??
游戲的起源是電子游戲,電子游戲于1952年面世,在真空管電腦的平臺上,開發出第一款電子游戲——井字棋游戲,并在1958年10月18日研發出游戲《雙人網球》,
ATARI時期在不久之后到來,標志著第一個游戲市場的出現,被稱為“雅達利時代”,在這個時代,玩家素質低、游戲概念不清、大量廠商渾水摸魚成為了這個時代最為鮮明的特征,而電子游戲《ET》也被研發出世,緊接著,在70年代,文字式游戲出現,并伴隨著日本另一大廠商——Taito加入,經典游戲《太空侵略者》被開發,《吃豆人》、《創世紀》等游戲也相繼出現,在80年代,世嘉,Atari,任天堂則開始將游戲界的戰火引向游戲機硬體方面,
80年代末期,電子游戲出現轉折,電腦得到顯卡,開始崛起,與此同時,任天堂推出Game Boy,更打開了便攜式游戲機的發展空間,但此時游戲引擎還尚未出現,
直到90年代,copcom推出街頭霸王,Pentium芯片面世,《仙劍奇俠傳》、《神話傳說》等經典游戲也相繼被推出,任天堂亦被世嘉Sega Saturn 與索尼的Plag Station擊敗,1992年,3D Realms公司/Apoges公司發布的小游戲《德軍司令部》和id Software 公司的射擊游戲《Doom》,成為了引擎誕生初期的兩部代表作,而Doom引擎也成為了第一個被用于授權的引擎,在1993年底,Raven公司采用改進后的Doom引擎開發了《投影者》游戲,這也成為游戲史上第一例成功的嫁接手術,
Quake引擎——第一款完全支持多邊形模型,影片以及粒子特效的真正意義上的3D引擎,在1994年,通過Quake引擎開發出了游戲《雷神之錘》,之后,Quake引擎開發的游戲《Quake》,其中游戲的操作方式樹立了FPS游戲標準,
一年之后,id Software公司又再次推出《雷神之錘2》,通過再用一套全新的引擎,充分利用3D加速和OpenGL技術,在影像和網路方面有了質的飛躍,也成功奠定了id Software公司在3D引擎市場上的霸主地位,1999年,id公司的QuakeⅢ又一次獨霸市場,Epic Megagames(EPIC)公司卻在此時退出了Unreal引擎,并且很快推出了Unreal2引擎,同時進行了升級,成為Unreal2.5,開發了眾多知名游戲,包括《湯姆克蘭西之細胞分裂2:明日潘多拉》、《天堂2》、《荒野大嫖客》等,游戲引擎的告訴發展進一步推動了游戲產業的擴大,
21世紀,家用游戲形成三足并立局面,游戲領域空前發展,而游戲引擎也得到空前發展,2002年,Direct9時代到來,EPIC又推出了支持64位的HDRR高精度動態渲染、多種類光照和高級動態陰影特效的Unreal3引擎,并提供了強大的編輯工具,同時,在此期間,Monolith公司的Lith Tech引擎迅速崛起,而代表作便是《F.E.A.R》以及《F.E.A.R2》,之后,MAX-FX引擎、Geo-Mod引擎、Serious引擎等各種引擎相繼出現,
正在此時,由于來自丹麥的Joachion與德國的Nicholas Francis非常喜歡做游戲,因此邀請了來自冰島的David成立了團隊Over the Edge Entertainment,開發了第一代版本的unity引擎,而unity公司也于2004年在丹麥的阿姆特丹誕生,并在2005年,將公司總部設立在了美國舊金山,同時發布了unity1.0引擎版本,至此,Unity引擎正式誕生,

💬
Unity 可以說只做了 engine + framework bus(總線),所謂 framework bus,指的是 unity 并沒有約定 gameplay 的框架,只規定用 **EC (entity + component)**結構組織一切,所有的邏輯都掛在 monobehavior 上執行(雖然 UE4 在 BP 中也是按 EC 組織的,但它撰寫功能的思路是 OO 的),
這種結構簡單清晰,對新手具有相當的友好程度,但缺點也很明顯:大型專案需要從頭定義 gameplay framework 和一系列工具鏈,并且由于 MonoBehavior 使用反射(c# reflection)收集,其執行序不可控,并且過多的 MonoBehavior 會影響效率,進一步逼迫大型專案在引擎的基礎上魔改,實際使用中,往往是一個 mono 作為入口,負責拉起、回收自定義框架,并提供心跳(deltaTime),然后一些邊角系統獨立跑 mono,以減少反射收集,
這個程序中,程式的可操作空間太大,與 js 一樣,靈活往往帶來混亂,加上立項前期需求的頻繁變動,架構設計這個給程式減熵的作業就尤其難做,很多時候是大補丁套小補丁的用,還防不住新同學茫然無措的把某個 flag 插到天涯海角,導致 debug 的時候找都找不到(其他人讀的時候即使運行正確也不知道是怎么出來的),

雖然 unity 因為結構的松散,和不實際使用自己的引擎下場做大型專案,導致引擎提供的工具鏈完全不如 UE,但 EC 結構 確實是簡潔高效的,而且越是小專案,優勢越明顯,這也是 unity 在 2D 領域稱王稱霸的關鍵,
這兩年 unity 在渲染流程和 2D toolkit 上下了不少功夫,畫質已經可以趕上 UE 了,雖說很多東西是 UE 玩剩下的,但針對 EC 的特點做的 burst complier + job system + ECS (DOTS),使得在進一步輕量化的方向上還大有潛力,project tiny 就是很值得期待的新工具,我個人認為,把偏平化的引擎進一步扁平化,切片到極致的 ECS 才是 unity 下一步想要脫穎而出的關鍵,而 UE 是不可能拋棄成型的 gameplay framework 去用 ECS 的,
ECS 也可以用在大型專案上,對于需要頻繁 spawn 物體的游戲效果極佳,比如槍戰類(守望先鋒)、模擬經營(戴森球計劃),但很不擅長流程化的內容,這就有違引擎的初衷,所以 pure ECS 對 unity 來說會是一個向下不兼容的調整,短期內應該還是見不到的(但很希望能有,出個 pure ECS 分支也行,就像建藍圖專案和C++專案一樣),

結論🏠
游戲引擎沒有統一的未來,正如好的游戲設計沒有統一的范式,除了 Unity 和
UE,市面上還有很多沒聽過的引擎,比如cocos等,也有開發者熱愛使用和維護著,
這兩個第一梯隊的引擎逐漸展露出了面向不同市場的態度:
- UE4 傾向于加入最先進的圖形功能,優化工具鏈和針對工種設計使用體驗,拉高產出作品的上限,適合做體量大的游戲和聯機游戲,Unity
傾向于優化靈活性,針對靈活性去設計編程模式,拉高產出作品的下限,提高上限的作業交給了游戲公司,通過設計適合自己游戲型別的架構和渲染流程來實作, - Unity 玩的最好的公司(米哈游,疊紙)都是買了原始碼一通魔改,把引擎吃透了的,就引擎本身來說,適合做 2D
游戲,中小型獨立游戲,未來可以期待高品質優化強的頁游,
文章參考,僅供大家了解哦
來源:知乎作者 妖風-EvilWind
鏈接:https://www.zhihu.com/question/344717773/answer/1783692672
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/279675.html
標籤:其他
上一篇:微信小程式——推箱子小游戲
