C++ JS C#
創(chuàng)新互聯(lián)公司公司2013年成立,先為茅箭等服務(wù)建站,茅箭等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為茅箭企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
虛幻引擎總是能賦予開發(fā)商更強的能力,所見即所得的平臺。要知道,很多早期的引擎還需要自己編輯文本文件,或者是無法預(yù)覽效果。今年晚些時候,當人們欣賞到虛幻引擎4后,會被其深邃的特效所震撼到,馬克·瑞恩說道。
正在進行的年度D.I.C.E峰會上,我們也希望了解到更多有關(guān)這款新引擎的情報。美國著名媒體《連線》目前有幸見識了Epic的曠世“新作”,虛幻引擎4的演示Demo,在大約2分半的演算動畫里,渾身濕透,盛贊這是“異形”之父H. R. Giger和《冰與火之歌》作者“George R. R. Martin”的“私生子”。
VR語言開發(fā),其實就是3D編程引擎的語言。VR如果沒有3D引擎支持是無法進行開發(fā)的。上面提到的3D引擎和編程所需的SDK主要使用的語言是 C/C++
這是毋庸置疑的。大多數(shù)3D引擎使用的都是c或C++開發(fā)的,必定效率高嗎Oculus 提供的SDK也是使用C++ 行開發(fā)的。 Gear VR是在安卓設(shè)備上運行,需要使用Android NDK基于 C++ 進行開發(fā)。Unreal 引擎同樣使用 C++ 進行開發(fā)。MiddleVR 提供了基于 C++ 的 SDK。
其次是 C# 。 Unity 把 C# 當作腳本語言使用。在 VRPN 中可以使用 .NET bindings for VRPN 作為開發(fā)語言。不出意外的話, HoloLens 也一定使用的是 C# 。
再次就是 Javascript 。它也是 Unity 的一種腳本語言(即使選擇的人并不多)。但 WebVR 和 Javascript 程序員的基數(shù)(基友數(shù)?)一定會讓 Javascript 繼續(xù)在使用人數(shù)上占優(yōu)(我真的不是黑?。<词共豢紤] WebVR , three.js , Babylonjs 這類已經(jīng)非常成熟的 HTML5 3D 引擎也足夠證明 Javascript 在 3D 上的強大生命力。
VR 平臺
從目前的狀態(tài)看, Oculus 僅支持 Windows 和 Android(通過 Gear VR) 。MiddleVR 僅支持 Windows 平臺。其他的幾個引擎例如 OSVR/VRPN 都是多平臺支持的,Unity 和 Unreal 當然也是多平臺支持。Playstation VR 無疑是 PS 獨占。HoloLens 則無疑是 Windows 獨占。
只有 WebVR ,不挑平臺陪你玩。
VR技術(shù)分為兩個大方向,動畫和開發(fā),看你自己喜歡哪種了,目前大部分培訓都是unity3d之類,不全面。
虛幻4,游戲效果最極致體驗的主機參考以下配置:
CPU:Intel
酷睿i7
5960X+散熱器
主板:Z170
內(nèi)存:DDR4
2800
16G(F4-2800C16Q-16GRK)X2
硬盤:240G固態(tài)硬盤
顯卡:GTX1060
6G
電源:550W
以上硬件配置,可設(shè)定最高畫質(zhì)、全特效、2K分辨率并開啟8X
FSAA全屏抗鋸齒:玩虛幻4的流暢度可達35fps以上
這兩者之間的區(qū)別就是側(cè)重點不同一個游戲開發(fā)出來實際上也是一款軟件。如果你認為軟件開發(fā)跟游戲開發(fā)是兩種,那么我的觀點是是前端的不同,后端都是實現(xiàn)一些邏輯的功能。
一、軟件開發(fā)
無論是桌面應(yīng)用程序、Web應(yīng)用、游戲亦或是手機APP,都屬于軟件開發(fā)的范晴。桌面應(yīng)用程序比如網(wǎng)易云,瀏覽器等等,一般多用C#寫界面,看起來會更加友好。Web應(yīng)用的前端是html, css和JavaScript結(jié)合實現(xiàn),手機APP則是Android, objectC、 Kotin ,當然H5也可以開發(fā)APP。服務(wù)器端則是你擅長的語言去實現(xiàn)邏輯功能,并不是說我一定要利用java實現(xiàn)或者利用PHP實現(xiàn),只要前后端統(tǒng)一好API接口,明確數(shù)據(jù)傳輸?shù)母袷降鹊取?/p>
二、游戲開發(fā)
游戲開發(fā)是軟件開發(fā)中比較特殊有一類。如果你一直從事的都是游戲開發(fā),那么你后面如果想再轉(zhuǎn)別的方向其實不太好轉(zhuǎn)?,F(xiàn)在很多團隊在開發(fā)游戲時都會使用游戲引擎,在游戲引擎的基礎(chǔ)之上再利用編程語言進行開發(fā)。比如虛幻四引擎支持C++、JavaScript. C#進行開發(fā),小米槍戰(zhàn)就是用虛幻四引擎開發(fā)。unity3D引擎支持JSC#進行游戲的開發(fā), cocos2d支持C++lua和JavaScript開發(fā)游戲??磥碛螒蛞鎸avascript語言比較友好。學習過一段時間unity3D引擎開發(fā)游戲,開發(fā)過一些簡單的小游戲。以坦克大戰(zhàn)為例,把地圖、樹、地形等設(shè)計好之后,把一個坦克模型放進地圖中,利用C#編程控制這個坦克,當然你得手動設(shè)置些地方。這樣就不需要想app一樣寫個前端,只需要代碼控制各個組件即可。
首先,一般個人用戶是拿不到寒霜的。寒霜原本是瑞典一個小公司做的引擎,原本是要做成商業(yè)引擎的,但問題在于,EA突然收購了這家公司,然后停止對外授權(quán)。因此寒霜引擎就成了EA公司的內(nèi)部引擎。除非成為EA的員工,否則是碰不到寒霜的。
剩下的unity和UE4,是商業(yè)引擎,一般開發(fā)者是可以接觸到的。至于入門嘛,要看什么叫入門了。
是要能做一個完整的游戲,并且上架到應(yīng)用商店去賺錢,叫做入門呢?還是做出一個半成品,在別人面前裝B,被視作大神,就算入門呢?這兩個概念,完全不一樣。
簡單概括一下,做出成品,Unity門檻低。因為Unity的門檻,都在前期。雖然對于計算機專業(yè)的學生來說,這點門檻不啥,但完全零基礎(chǔ)的小白,通常容易在一開始放棄。因為學習Unity之前,你首先要掌握C#語言以及一些.NET的基本庫,具備一定的編程基礎(chǔ)。如果完全零基礎(chǔ),到熟練掌握C#,自學的話大概需要至少兩年的學習周期(C#,ADO.NET,ASP.NET也就是大學的四年計算機課程,具體進度看悟性),這個過程非??菰?,每天都是在一個黑框框上打東西,完全沒有畫面可以看,每次停住回頭看看,你都會發(fā)現(xiàn),自己做了一大堆筆記,思考了一大堆問題。。而啥也做不出來,只會在那個黑框框上打東西。。。。但只要度過這一段枯燥的歲月后,你幾乎就跨越了所有門檻。此后學習Unity的過程會非常平滑。只要前期的基礎(chǔ)打好了,學習幾周時間,做出一個CS,根本就不是事兒。從此便進入“照葫蘆畫瓢”階段了,看到一個游戲,就自己琢磨著山寨下試試,即便遇到困難,復(fù)習復(fù)習之前的筆記,總能解決大部分問題,實在想不出來,看看源碼,也就當順便復(fù)習了。等山寨出幾個游戲之后。最后就是要熟悉自己的目標平臺,比如安卓,IOS兩大系統(tǒng),以及任天堂,索尼等公司的開發(fā)環(huán)境,為什么不提微軟?廢話,微軟的開發(fā)環(huán)境不就是.NET嘛?選好平臺之后,簡單學習一下對應(yīng)平臺的注意事項。就可以準備上架第一個項目了。至此你就算正式入行了。
做出半成品UE4低。UE4這個引擎的優(yōu)點之一,在于可以吸引零基礎(chǔ)小白。因為它可以“不寫代碼就做出游戲”。而這個引擎的致命缺點,就是“不寫代碼根本做不出游戲,而且那代碼還真不是一般人能寫出來的”。UE4的學習過程,一開始覺得非常非常非常容易。而且啥基礎(chǔ)都不需要。因為UE4里面有一個叫做藍圖的節(jié)點編輯器。這種節(jié)點編輯器,最初是出現(xiàn)在三維動畫軟件里面(如MAYA,C4D等),用來做動畫邏輯的。只要學習兩三天,拽幾個節(jié)點,連連線,立刻就讓一個人物模型跑起來了,還會跳,會開槍,會放技能。。要啥C#?要啥.NET?要啥黑框框?哥小學沒畢業(yè),學習UE4一周,就達到這程度了。瞬間秒殺一群學了兩年編程,還在擺弄黑框框的大學生。但兩年之后,熟悉了UE4的每一個按鈕,每一個節(jié)點,會發(fā)覺自己依然只會這些。依然只會是讓一個人物模型,在各種地形上,跑一跑,跳一跳,開開槍。。。今天在沙灘上跑。。。明天在樓宇之間跳來跳去。。。。你可以認為這是一個Demo,或者說是一個半成品。但它永遠都只是半成品。因為你發(fā)現(xiàn)自己跟本無法“照葫蘆畫瓢”。
UE4的藍圖只適合參與三種類型的游戲工作,F(xiàn)PS游戲,F(xiàn)PS偽裝成的格斗游戲,和賽車游戲。。。。無論藍圖學的如何精通,只要人家問你,你能用UE4的藍圖做個策略游戲嗎?你能用藍圖做個戰(zhàn)棋類游戲嗎?你能用藍圖做個桌面游戲嗎?你會瞬間無言以對。你一定沒見過有人用UE4做出來《連連看》吧?你也一定也沒見過UE4做出《俄羅斯方塊》吧?不是大家不屑于做這些小游戲,而是因為太難了。。不只個人開發(fā)者,即便是那些游戲行業(yè)的巨頭們,也只會在制作FPS和賽車等游戲時,才會使用UE4。。。因為其他類型,對于UE4確實太難勝任了。
因為節(jié)點編輯器,本身就是為動畫的邏輯設(shè)計的,動畫都是提前確定好的。在動畫開始制作之前,就已經(jīng)有了劇本。而游戲卻完全不一樣。游戲要根據(jù)用戶的操作,臨時去做出不同的行為。直白一點說。這玩意搞出的邏輯是“固定”的。
按某某鍵,往前跑。。。。按某某鍵,開槍。。。。這種“固定”的邏輯可以。。而要靠它實現(xiàn)算法級別的東西,實在太難了。
無論如何,到此算是半成品出來了,這時候擺在面前的,便是一道無比巨大的鴻溝,那就是之后的工作,要用C++去寫。C++這語言,絕對不是最難的編程語言。但絕對是最難的編程語言之一。不僅面向?qū)ο?,還摻雜面向過程的那一坨東西,而且還無腦的堆砌在一起。。。這都不算啥,關(guān)鍵在于那驚人的代碼量。。。暫且不論C++本身,如果你真的能用C++寫出后面的邏輯。。后續(xù)發(fā)布都能搞定的話,那你還真的需要藍圖嗎?寫個走路,跳躍,開槍的狀態(tài)機,豈不是小兒科?
做游戲開發(fā),現(xiàn)在是很潮流的一件事情,但是必須要有資金投入,而且你要有專業(yè)的知識,不然的話只會浪費時間。
無論是桌面應(yīng)用程序、Web應(yīng)用、游戲亦或是手機APP,都屬于軟件開發(fā)的范疇。桌面應(yīng)用程序比如網(wǎng)易云,瀏覽器等等,一般多用C#寫界面,看起來會更加友好。Web應(yīng)用的前端是html、css和JavaScript結(jié)合實現(xiàn),手機APP則是Android、object-C、Kotlin,當然H5也可以開發(fā)APP。nainaitea.com
服務(wù)器端則是你擅長的語言去實現(xiàn)邏輯功能,并不是說我一定要利用java實現(xiàn)或者利用PHP實現(xiàn),只要前后端統(tǒng)一好API接口,明確數(shù)據(jù)傳輸?shù)母袷降鹊取?/p>
游戲開發(fā)
游戲開發(fā)是軟件開發(fā)中比較特殊有一類。如果你一直從事的都是游戲開發(fā),那么你后面如果想再轉(zhuǎn)別的方向其實不太好轉(zhuǎn)?,F(xiàn)在很多團隊在開發(fā)游戲時都會使用游戲引擎,在游戲引擎的基礎(chǔ)之上再利用編程語言進行開發(fā)。
比如虛幻四引擎支持C++、JavaScript、C#進行開發(fā),小米槍戰(zhàn)就是用虛幻四引擎開發(fā)。unity3D引擎支持JS、C#進行游戲的開發(fā),cocos2d支持C++、lua和JavaScript開發(fā)游戲??磥碛螒蛞鎸avaScript語言比較友好。
我學習過一段時間unity3D引擎開發(fā)游戲,開發(fā)過一些簡單的小游戲。以坦克大戰(zhàn)為例,把地圖、樹、地形等設(shè)計好之后,把一個坦克模型放進地圖中,利用C#編程控制這個坦克,當然你得手動設(shè)置一些地方,不過我現(xiàn)在忘記了。這樣就不需要想app一樣寫個前端,只需要代碼控制各個組件即可。不過說到創(chuàng)業(yè)還是要有一定的前提規(guī)劃和后期的資源配置!