Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
代碼也要讀書,愛全棧,更愛生活。每日更新原創(chuàng)IT編程技術(shù)及日常實(shí)用技術(shù)文章。
我們的目標(biāo)是:玩得轉(zhuǎn)服務(wù)器Web開發(fā),搞得懂移動(dòng)端,電腦客戶端更是不在話下。
更多原創(chuàng)教程,請點(diǎn)擊上方關(guān)注或微信公眾平臺(tái):做全棧攻城獅。
技術(shù)交流群:高手群:538742639新手群: 572577013
本文章由做全棧攻城獅,原創(chuàng)首發(fā),如有轉(zhuǎn)載,請聲明出處。
、2020年的Unity或Unreal
在當(dāng)下游戲開發(fā)中,使用游戲引擎來創(chuàng)建游戲或者AR、VR應(yīng)用已變得越來越普遍。如今,有大量的游戲引擎可供開發(fā)人員選擇,但目前有兩個(gè)最受歡迎的兩個(gè)游戲引擎,非Unity和Unreal莫屬了。今天,我們將著眼于兩者的優(yōu)缺點(diǎn)進(jìn)行討論,以幫助大家確定哪一個(gè)最適合你。
在開始之前,我需要聲明,我們并不是非要比出哪個(gè)更好,因?yàn)檫@是兩個(gè)截然不同的非常好的引擎,它們各有千秋。哪個(gè)更合適通常取決于你的個(gè)人喜好或所創(chuàng)建的游戲類型。此外,Unity和Unreal絕不是唯一的選擇,它們只是最受歡迎的兩個(gè)。
2、兩個(gè)引擎的簡單概述
Unity Engine
Unity于2005年第一次作為一種商業(yè)產(chǎn)品開始銷售。當(dāng)時(shí),它與我們大多數(shù)人并沒有什么特別的關(guān)系……因?yàn)槟鞘钱?dāng)時(shí)的Mac獨(dú)有的產(chǎn)品。但在2007年,Unity被帶到了Windows平臺(tái),并真正開始發(fā)展起來。第二年,蘋果應(yīng)用商店(Apple App Store)和隨之而來的手機(jī)游戲《淘金熱》(goldrush)問世。
Unity一開始的定位就是:讓游戲開發(fā)更易于上手,并向更廣泛的受眾開放。毋庸置疑他們是成功的。隨后,他們還推出了一個(gè)非常成功的廣告平臺(tái)(Unity Ads),打造了一個(gè)面向Unity,iOS和Android開發(fā)人員的獲利平臺(tái)。
從那以后,Unity繼續(xù)添加了許多新功能,更重要的是,Unity幾乎可以面向你聽過的任意一個(gè)平臺(tái)發(fā)布游戲。最近幾年,Unity更多地聚焦于提升引擎的性能和渲染技術(shù),這使Unity成為一個(gè)真正的3A引擎。DOTS和可腳本化渲染管道之類的功能極大地提高了視覺質(zhì)量。
如果大家對Unity的發(fā)展歷史感興趣,可以看看這篇文章。
https://web.wpi.edu/Pubs/E-project/Available/E-project-030614-143124/unrestricted/Haas_IQP_Final.pdf
Unreal Engine
Unreal的歷史要古老得多——它早在1998年就發(fā)布了。在當(dāng)時(shí),有幾家公司將他們的引擎技術(shù)許可給其他開發(fā)人員(如NetInvent、Renderware、LithTech,尤其是idTech)。在id Tech引擎中,開發(fā)者可以獲得代碼和工具,用來創(chuàng)建像id software公司的《雷神之錘》/《毀滅戰(zhàn)士》之類的游戲。與id Tech不同,Epic Games將更多資源放在在“產(chǎn)品化”他們的引擎上,并提供完善的工具和支持。值得注意的是,在當(dāng)時(shí),游戲引擎的許可費(fèi)用是6-7位數(shù)。至此,Epic成為了一家游戲和游戲技術(shù)公司,一直到現(xiàn)在還是這樣。
如果你看看二十幾年來用各種版本的Unral引擎制作的游戲,就知道誰是游戲宗師了。諸如《虛幻競技場》,《殺出重圍》,《生化奇兵1/2/3》,《細(xì)胞分裂》,《蝙蝠俠》阿甘系列,《無主之地》系列,《戰(zhàn)爭機(jī)器》系列,《質(zhì)量效應(yīng)》,《真人格斗》,《絕地求生》,《堡壘之夜》,當(dāng)然還有《山羊模擬》等!這些大預(yù)算游戲沒有使用內(nèi)部技術(shù)來創(chuàng)建,這讓Unreal輕松成為A-AAA游戲之王。然而你會(huì)注意到這其中少有手機(jī)游戲。直到《無限刀鋒》,Unreal在移動(dòng)端還是一個(gè)相對未知的領(lǐng)域,但隨著時(shí)間的推移這種情況正在改善,《堡壘之夜》的巨大成功更是讓他們專注于改善Unreal對移動(dòng)端的支持。
隨著Unreal4的發(fā)布,Unreal的許可制度發(fā)生了很大變化。不像UDK 3(虛幻3引擎開發(fā)工具包)那樣需要幾十萬美元的前期投入,Unreal4改變了最初的小訂閱+版稅的結(jié)構(gòu),最終進(jìn)入了直接版稅制。
3、來自程序員的經(jīng)驗(yàn)
兩個(gè)游戲引擎對開發(fā)者(特別是程序員)來說有不同的使用方法。一個(gè)主要的區(qū)別是Unreal的源代碼可以在GitHub上獲得(雖然在技術(shù)上不是開源的),這意味著你可以自己改變引擎的任何方面,包括從頭開始構(gòu)建整個(gè)東西。另一方面,Unity是封閉源碼的,除非你為源碼許可證支付巨額現(xiàn)金(聽說是6位數(shù))。之后,Unity慢慢地發(fā)布越來越多的東西,許多包是開源的,但是大部分只是為了參考而開放的(你仍然不能自己編譯引擎,也不能修復(fù)錯(cuò)誤)。
在游戲編程方面,Unreal有兩種主要的編程語言:C++和Blueprints。C++有一個(gè)完整的垃圾收集系統(tǒng),現(xiàn)在有一個(gè)由Live++支持的實(shí)時(shí)重裝系統(tǒng),這使得C++很像一種腳本語言。Blueprints是一個(gè)基于圖形的可視化編程系統(tǒng),它可能是最好的可視化編程選項(xiàng)。它還能夠編譯成C++代碼,從而降低使用它的性能成本。Unreal的build時(shí)間不算太好。
在Unity中,曾經(jīng)有幾種支持的腳本語言,C#,Boo(類似Python),UnityScript(類似JavaScript/ECMAScript)。最近幾年Boo和UnityScript支持都不怎么用了,剩下C#作為開發(fā)主要語言。從好的方面來看,自從Mono免費(fèi)以來,Unity現(xiàn)在有了C#的當(dāng)前實(shí)現(xiàn),而不是落后于語言開發(fā)近十年。Unity目前正在向DOTS或面向數(shù)據(jù)的技術(shù)堆棧遷移,這是C#、ECS或 Entity Component System的高性能子集與并行計(jì)算的結(jié)合,側(cè)重于Jobs系統(tǒng),有望實(shí)現(xiàn)C++級別的性能。Unity中的Build時(shí)間非常快。
這兩個(gè)游戲引擎都有應(yīng)用商店,為第三方提供額外的游戲編程方式。
4、特點(diǎn)
在特點(diǎn)上,人們通常會(huì)做一個(gè)巨大的清單來羅列各自的特點(diǎn),從而比較每個(gè)游戲引擎之間可用的功能。事實(shí)是,對Unity和Unreal來說,這可能完全是浪費(fèi)時(shí)間。如果一個(gè)新的平臺(tái)推出,兩個(gè)引擎都將在一個(gè)版本中支持它。兩個(gè)引擎都包含了各種工具和功能…動(dòng)畫工具,profilers,DCC導(dǎo)入工具,地形,物理,音頻,VR,過場動(dòng)畫,版本控制集成等。就功能規(guī)格而言,Unity和Unreal無疑是目前功能最豐富和第二豐富的游戲引擎。
然而,有兩個(gè)方面Unity比Unreal強(qiáng)——2D和Web。在上一個(gè)版本中,Unreal中的HTML平臺(tái)被剝離出來,成為一個(gè)社區(qū)項(xiàng)目。就2D而言,Unity在這方面投入了很多關(guān)注。Unreal有Paper2D,但Paper2D的發(fā)展似乎在幾年前就停止了。2D制作可以在任何一個(gè)引擎中完成,但在這方面Unity似乎是更好的選擇。
Unreal最有優(yōu)勢的特點(diǎn)仍然是視覺質(zhì)量……它目前在渲染3A質(zhì)量的圖形方面具有更好的性能。Unity正試圖迅速縮小這一差距,如轉(zhuǎn)向DOTS和引入可編程的高畫質(zhì)渲染管線HDRP,它們目前正處于測試中。
Unity平臺(tái):
Unreal平臺(tái):
Unreal4讓開發(fā)者可以將項(xiàng)目部署到Windows PC,PlayStation 4,Xbox One,Mac OS X,iOS,Android,AR,VR,Linux,SteamOS和HTML5。我們可以在Windows,OS X和Linux上運(yùn)行Unreal編輯器。
5、社區(qū)
Unity和Unreal都有充滿活力的社區(qū),除此之外,社區(qū)了還有大量的書籍、教程和其他資源。此外,Unity的社區(qū)要大得多,可能會(huì)有3-4倍的出版書籍,以及大量的社區(qū)內(nèi)的各種教程。然而,這兩個(gè)引擎在提供學(xué)習(xí)材料方面都做得很好,所以學(xué)習(xí)任何一個(gè)引擎都不會(huì)有太大的問題。這兩個(gè)社區(qū)都足夠大,一般來說,我們可以很容易地找到一個(gè)技術(shù)問題的解答,盡管雇傭一個(gè)有經(jīng)驗(yàn)的Unity開發(fā)人員比雇傭一個(gè)Uneral開發(fā)人員更容易。
社區(qū)的另一個(gè)方面是可用的開發(fā)商市場。Unity應(yīng)用商店是這一概念的先驅(qū),擁有免費(fèi)或商用的腳本、模型、級別、圖形等的巨大資源。Unreal也有一個(gè)開發(fā)人員商店,但它的規(guī)模只有Unity的一小部分。此外,Unreal會(huì)在每個(gè)月的第一天贈(zèng)送商店的東西給開發(fā)者,給開發(fā)者提供大量高質(zhì)量的免費(fèi)資產(chǎn)。
6、發(fā)行游戲
兩種游戲引擎都有大量已發(fā)布的游戲。虛幻引擎主導(dǎo)著大預(yù)算的3A領(lǐng)域,并試圖越來越多地進(jìn)軍獨(dú)立和移動(dòng)領(lǐng)域。Unity則相反,發(fā)布了大量的手機(jī)游戲,是中小型開發(fā)者的首選引擎,尤其是幾個(gè)備受矚目的專業(yè)KickStarter游戲。
有名的Unreal游戲:
? 堡壘之夜
? 真人快打系列(UE3衍生引擎)
? 王牌實(shí)戰(zhàn)7
? 方舟:生存進(jìn)化
? 蝙蝠俠:阿卡姆城/庇護(hù)
? 戰(zhàn)爭機(jī)器4/5
? 王國之心3
? PUBG
? 盜賊之海
? 街頭霸王V
? 無主之地3
? 染血:夜晚的儀式
有名的Unity游戲:
? 爐石傳說
? 杯頭
? 永恒之柱1和2
? 火警
? 暗影奔跑
? 戰(zhàn)技
? 奧里和盲人森林
? 喀布爾太空計(jì)劃
? 復(fù)核
? 城市:天際線
可以肯定地說,發(fā)布的Unity游戲比Unreal游戲要多,但是Unreal在大預(yù)算大市場3A游戲方面處于領(lǐng)先地位。
7、價(jià)格
Unity和Unreal采用了非常不同的方法來賺錢,每種方法都有優(yōu)勢和劣勢,這取決于游戲的最終規(guī)模、范圍和總銷售額。
Unreal
我們將從Unreal的定價(jià)方案開始,因?yàn)樗亲钪苯拥摹T谀惬@得一定的收入后,Unreal的作品采用了直接的版稅方案:
UE4是免費(fèi)使用的,在每個(gè)季度每場游戲從商業(yè)產(chǎn)品中獲得首筆3000美元收入后,才需要支付收入中的 5% 版權(quán)費(fèi)用給 Epic Games。如果你預(yù)計(jì)你的游戲會(huì)有絕對驚人的銷量,你也可以和Epic協(xié)商固定的前期許可費(fèi)。
Unity
Unity有一種更傳統(tǒng)的訂閱的方法,有多種計(jì)劃可供選擇。Unity剛剛在2020年1月1日提價(jià),并取消了年度計(jì)劃定價(jià)。
對于年收入或資金不超過10萬美元的開發(fā)商來說,有個(gè)人或免費(fèi)層。接下來是PLUS層,每月40美元。這一層為用戶提供了額外的功能,如訪問他們的高級學(xué)習(xí)、分析、云托管等。最大的不同是你可以用這個(gè)許可證每年賺20萬以上。
然后是專業(yè)層,每個(gè)開發(fā)人員每月150美元。同樣,這款產(chǎn)品附帶了許多附加功能,但完全消除了收入限制。
最后,還有一個(gè)選項(xiàng)是與Unity協(xié)商源代碼許可證,其條款不公開。
8、利弊
以下是每個(gè)引擎的主要優(yōu)點(diǎn)和缺點(diǎn)的簡要概述:
Unity –優(yōu)點(diǎn)
? 支持每個(gè)主要平臺(tái)
? 龐大的社區(qū)和支持網(wǎng)絡(luò)(書籍教程等)
? 迄今為止最大的開發(fā)商市場
? 最容易找工作,且易于獲得的認(rèn)證和培訓(xùn)課程
? 更好地支持2D游戲開發(fā)
? 與引擎無關(guān)的類型,非常適合策略類游戲,RPG等。
? 更快的開發(fā)周期,更快的構(gòu)建時(shí)間
? 廣告網(wǎng)絡(luò),Unity廣告對于移動(dòng)開發(fā)人員而言意義重大。
? 開放且快速的開發(fā)迭代,對于常規(guī)的alpha和beta版本非常透明
? 引擎的模塊化重新設(shè)計(jì)加快了發(fā)行新版本的速度
Unity–缺點(diǎn)
? 視覺效果不如Unreal
? 性能問題
? 無法從源代碼構(gòu)建或修復(fù)錯(cuò)誤
? 沒有用Unity制作的代表性的3A游戲證明“我們可以做到!”
? 剛開始支持可視化腳本
? 模塊化的開發(fā)方法使項(xiàng)目更容易遭到破壞
? 引擎還處于中間狀態(tài)……新的UI慢慢推出,新的代碼架構(gòu)慢慢推出,一些新功能取決于尚不可用的其他新功能。
? 新的編程架構(gòu)(DOTS / ECS)將需要現(xiàn)有開發(fā)人員重新學(xué)習(xí),并且目前比GameObject / MonoBehaviour工作流程復(fù)雜得多
? C#…C#或C#。想使用C#嗎hhh?
Unreal–優(yōu)點(diǎn)
? 支持每個(gè)主要平臺(tái)
? 提供源代碼,完全公開的開發(fā)周期
? 極佳的圖形渲染效果
? 更現(xiàn)代的編輯器,更少的遺留問題
? 出色的性能,經(jīng)常開箱即用
? 非凡的戰(zhàn)績。事實(shí)上,已經(jīng)有數(shù)百種專業(yè)游戲使用虛幻引擎在各種流派和風(fēng)格中發(fā)布。
? 每月贈(zèng)送免費(fèi)資產(chǎn)
? 如果游戲在Epic Game商店上發(fā)布,則可以免費(fèi)使用
虛幻引擎–缺點(diǎn)
? 2D已幾乎被遺棄
? 引擎的設(shè)計(jì)非常關(guān)注第三人稱和第一人稱的游戲。
? 極慢的構(gòu)建時(shí)間
? 資產(chǎn)導(dǎo)入可能會(huì)非常緩慢
? 買賣雙方的資產(chǎn)交易市場較小
? 不支持C#
? 較小的開發(fā)人員社區(qū),很難找到經(jīng)驗(yàn)豐富的開發(fā)人員
9、結(jié)論
Unreal和Unity是兩種產(chǎn)品,隨著時(shí)間的推移,它們在許多方面變得越來越相似,而不是越來越不同。兩者最大的區(qū)別是它們的起點(diǎn)。Unity最初針對業(yè)余愛好者市場的生活,并在那里取得了巨大的成功。現(xiàn)在,圍繞Unity的許多發(fā)展都是圍繞著將其升級到3A級別進(jìn)行的。比如支持更大的項(xiàng)目、更高的圖形保真度和更嚴(yán)格的性能控制。
然而,Unreal從它啟動(dòng)的第一天起,就是一個(gè)3A游戲引擎,專注于高性能和圖形保真度。隨著Unreal4的發(fā)布,人們更關(guān)注讓它更易于使用、更好地記錄和更容易上手。
每當(dāng)一個(gè)新功能發(fā)布出來,你可以很快看到另一個(gè)引擎也緊跟著發(fā)布。他們背后都有巨額資金支持,而且兩家公司都不太可能倒閉。兩者都在以驚人的速度增加功能,盡管這些功能通常還需要幾年才能穩(wěn)定到足以在生產(chǎn)環(huán)境中工作。兩家公司都在大舉進(jìn)軍服務(wù)市場。目前,Unity提供的一個(gè)Unreal沒有的主要功能是廣告貨幣化服務(wù),該功能在移動(dòng)領(lǐng)域很重要,但在桌面和控制臺(tái)平臺(tái)上不太重要。
.什么是游戲工程?
工程:Project,工程文件是組織項(xiàng)目的基本方式,基本通過文件夾分類來達(dá)到合理整合、分類、維護(hù)所需要的資源,另外工程只能被開啟在編輯模式下,因此它面向的是編輯者。
2.如何打開與創(chuàng)建工程?
如果是首次安裝 Unity3D 引擎,通過點(diǎn)擊 Unity3D圖標(biāo)將會(huì)打開一個(gè)默認(rèn)的工程,通過點(diǎn)擊菜單欄的文件(File)下拉菜單框中的New Project、Open Project、Save Project 來新建,打開及保存一個(gè)工程。
3.工程文件目錄下的文件用途
每創(chuàng)建一個(gè)新的工程以后,在指定的工程目錄下會(huì)產(chǎn)生四個(gè)子文件夾。以Windows系統(tǒng)為例:
4.文件用途解析
資源(Assets)文件夾:將會(huì)儲(chǔ)存我們用到的所有的資源文件,如紋理(Texture)、腳本(Script)、模型(Model)等等。
資源庫(Library)文件夾:用來儲(chǔ)存那些記錄文件之間連接和資源設(shè)置的文件。
工程設(shè)置(Project Settings)文件夾:用于放置一些關(guān)于當(dāng)前工程的一些全局設(shè)置文件。
臨時(shí)(Temp)文件夾:用來存儲(chǔ)我們在編輯過程中,引擎所產(chǎn)生的一些臨時(shí)的中間文件,如操作歷史記錄等。
5.特殊文件夾
Editor:下面放的所有資源文件或者腳本文件都不會(huì)被打進(jìn)發(fā)布包中,并且腳本也只能在編輯時(shí)使用。
Plugins: Plugins文件夾用來放native插件。它們會(huì)被自動(dòng)包含進(jìn)build中去。
StreamingAssets:這里的文件會(huì)被拷貝到build文件夾中,不會(huì)修改。它們的路徑會(huì)因平臺(tái)而有差異,但都可以通過Application.streamingAssetsPath來訪問。
Resources: Resources文件夾允許在腳本中通過文件路徑和名稱來訪問資源。
6.什么是應(yīng)用程序?
應(yīng)用程序:Application, 應(yīng)用程序是指為了完成某項(xiàng)或某幾項(xiàng)特定任務(wù)而被開發(fā)運(yùn)行于操作系統(tǒng)之上的計(jì)算機(jī)程序。綜上所述,每一個(gè)應(yīng)用程序都有一個(gè)它所對應(yīng)的工程項(xiàng)目。應(yīng)用程序被運(yùn)行在用戶模式, 它可以和用戶進(jìn)行交互,一般具有可視化的用戶界面。
7.什么是場景?
場景:Scene,場景被應(yīng)用于影視、戲劇、小說、動(dòng)畫、游戲等領(lǐng)域,但是,在各個(gè)領(lǐng)域中對場景的概念并非完全一致,例如,在影視劇中,場景是指在一定的時(shí)間、空間內(nèi)發(fā)生的一定的任務(wù)行動(dòng)或因人物關(guān)系所構(gòu)成的具體生活畫面。然而,在這里討論的游戲場景通常可以 理解為根據(jù)策劃的要求還原出游戲中的建筑物、樹木、天空、道路等可用元素(包含圖形用戶接口元素等) 。
8.什么是游戲?qū)ο螅?/strong>
游戲?qū)ο螅篏ameObject,是指 3D 場景中所存在的所有物體,他包括有建筑、角色、道具、 載具等。當(dāng)然除了在場景中可見的物體以外,還存在著一些不可見的游戲?qū)ο螅绻庠础⒁粼吹榷紝儆谑怯螒驅(qū)ο蟆?/p>
9.什么是組件?
組件:Component,組件是對數(shù)據(jù)和方法的簡單封裝,屬性是組件數(shù)據(jù)的簡單訪問者。方法則是組件的一些簡單的而可見的功能。
在 Unity3D 引擎中,組件是用來綁定到游戲?qū)ο笊系囊唤M相關(guān)屬性。本質(zhì)上每個(gè)組件都是 一個(gè)類的實(shí)例。引擎中常見的組件有:變幻(Transform)、網(wǎng)格適配器(MeshFilter)、網(wǎng)格渲染 器(MeshRenderer)、動(dòng)畫(Animation)等等。
10.什么是 Unity 資源?
資源:Source,是指工程中所需要使用的,能被引擎所識別并通過編譯的素材文件統(tǒng)稱Unity3D 資源。Unity3D 的資源的種類非常多,例如:模型(Models)、材質(zhì)(Materials)、2D紋理(Texture2D)、音頻文件(Audio Files)等等。
11.如何導(dǎo)入外部資源?
通過點(diǎn)擊菜單欄中的 Assets 下拉菜單欄中的 Import New Asset 選項(xiàng),如下圖所示。
直接將一個(gè)資源文件拖拽至 Project 窗口中所對應(yīng)的文件夾中。
也可以在資源管理器中找到工程中的 Assets 文件夾,將外部的資源直接復(fù)制至 Assets 文件路徑下。
12.什么是腳本?
腳本:Script, 腳本簡單的地說就是一條條的文字命令,這些文字命令是可以看到的,可 以使用文本編輯器打開查看、編輯,腳本程序在執(zhí)行時(shí),是由系統(tǒng)的一個(gè)編譯器將一條條的翻譯成計(jì)算機(jī)可識別的指令,并按程序順序執(zhí)行。
Unity3D 引擎所支持的腳本語言有三種,分別是 JavaScript、C#、Boo。這三種語言都簡單 易用,在開源.NET 平臺(tái)、Mono 上運(yùn)行,編譯迅速。
13.簡述場景、資源、游戲?qū)ο蟆⒔M件間的關(guān)系
一個(gè)游戲工程可以由一個(gè)或數(shù)個(gè)場景組成,場景是由許許多多的游戲?qū)ο蠼M成,這其中包括有我們可見的游戲?qū)ο螅缃巧ㄖ龋约澳切┎豢梢姷挠螒驅(qū)ο螅缏曇簦M件 正是通過組織相關(guān)的資源來賦于這些游戲?qū)ο笠圆煌墓δ芗皩傩浴?/p>
*請認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。