王者榮耀使用什麼編程語言開發的?

銳銳CC


對於常見的3D遊戲絕大部分用的unity3D遊戲引擎開發而成,主要開發語言是C#.net技術,這是微軟開發一套編程語言,當初推出來和java對抗的編程語言,現在C#使用範圍其實非常廣泛,java參與的地方几乎都有C#的影子,現在主要在桌面應用程序,遊戲開發以及服務端等等都有涉獵,最近正好有個服務端的項目就準備用.net來實現,其實編程語言只是工具而已,最主要的能夠活用。

有很多細心的小夥伴可能會覺得既然是微軟的那套東西怎麼會在安卓上運行,這涉及到軟件中一個跨平臺概念,所謂的跨平臺就是代碼在一個平臺上實現了,移植到別的平臺可以繼續使用,java剛開始流行的時候很大一個特點就是跨平臺,寫的java代碼既可以在windows平臺上運行,也可以在linux平臺上運行,在mac平臺上也可以,具體平臺對接工作在環境中已經配置好了,所以在王者榮耀的app解壓之後能看到dll文件,這就是在windows平臺下生成的動態庫文件,然後通過Xamarin轉化成jar包供java直接來調用,由於中間層做了轉化,所以在配置不高的手機上游戲還是比較卡頓,對硬件的要求比較高。

所以王者容易的編寫主要還是windows平臺上完成代碼,用c#完成,但在涉及到性能地方還是c/c++來完成,畢竟對於遊戲來講性能也是非常大的一個技術指標,當然要開發程序需要遵守Unity3D引擎的規則,其實在日常過程中大家可能更加關注遊戲客戶端本身,後臺的服務器的負載和併發能力容易被忽略,遊戲講究是一種極致的體驗,如果服務器端配合不順暢照樣玩起來不爽,這款遊戲的後臺服務器數量達到了幾千臺,並且數據之間還要流暢的通訊,同時還需要場景備份,由於遊戲服務端需求量相對低一些。

如何學習Unity3D開發遊戲?

1.首先了解Unity3D一些菜單以及基本功能,先了解個大概,有個整體的印象

2.瞭解常見的遊戲設計概念,座標,向量,移動,伸縮等等概念

3.嘗試自己創建一個遊戲場景,熟悉常見腳本,以及代碼如何和平臺融合在一起。

4.開始嘗試做動態化的場景融入更多的,熟悉深度的Unity api的調用

5.引擎的學習重在熟練,但要搞出深層次的東西,還需要對C#編程語言有了深入的瞭解才能寫出有層次的東西,才能真正加入到遊戲開發中去。

學習Unity3D掌握引擎api使用,以及常見功能的使用,需要一直堅持做的是對c#編程語言不停的學習,深入的學習。

希望能幫到你。


大學生編程指南


這個在王者榮耀團隊的相關文章中有明確提到,客戶端,也就是手機上的的APP是用的Unity3D遊戲引擎。具體的開發語言以C#為主

Unity3D是個遊戲引擎,是由微軟開發的收費軟件。這個引擎毫無疑問是用的C/C++。但是作為遊戲開發者,比如騰訊或天美,他們要做的就是利用這個開發工具而不需要再使用C/C++。具體說來,遊戲中的人物,場景,特效等是用的諸如Photoshop,3dsmax等軟件建立2D/3D模型。而具體的遊戲邏輯是使用C#來編寫腳本。

有些人會說,安卓不是都用JAVA寫的嗎?C#寫的遊戲怎麼可能運行在安卓上面

Unity3D遊戲引擎,就像是個播放器(player),可以運行在Windows,安卓,iOS,瀏覽器。我們用C#寫遊戲腳本,就好像使用視頻製作軟件做個視頻,只要有播放器,它就能播,而不用管是什麼操作系統。

說到這裡,或許早些年玩過flash的人會豁然開朗。flash可以做動畫,可以不需要編程,如果是flash遊戲(比如QQ農場偷菜),用的語言叫actionscript,也是個腳本。flash同樣是跨平臺的。只不過後來喬布斯宣佈蘋果不再支持flash後,就沒有人用了。

Unity就好比是flash,而C#腳本就好比是ActionScript腳本

上面談的主要都是手機端的APP,說了是以C#為主,可能在核心地方會用到極少量C語言(native代碼)。而在服務器端,則會複雜一些,五花八門,什麼都有。核心遊戲邏輯(比如登錄,玩家匹配,遊戲同步)肯定是用的C++,其他部分或許有JAVA(活動介紹,英雄介紹)。王者榮耀後臺大約有4600臺服務器,其中的調度,負載均衡,同步還是比較麻煩的。


犍為真人


百度百科說是使用Unity3D引擎開發的

Unity3D是由Unity Technologies開發的一個讓玩家輕鬆創建諸如三維視頻遊戲、建築可視化、實時三維動畫等類型互動內容的多平臺的綜合型遊戲開發工具,是一個全面整合的專業遊戲引擎。Unity類似於Director,Blender game engine, Virtools 或 Torque Game Builder等利用交互的圖型化開發環境為首要方式的軟件。其編輯器運行在Windows 和Mac OS X下,可發佈遊戲至Windows、Mac、Wii、iPhone、WebGL(需要HTML5)、Windows phone 8和Android平臺。也可以利用Unity web player插件發佈網頁遊戲,支持Mac和Windows的網頁瀏覽。它的網頁播放器也被Mac widgets所支持。

如何學習王者榮耀開發引擎Unity3D?

第一步首先了解unity3d的菜單,視圖界面。這些是最基本的基礎,可以像學word操作一樣,大致能明白有幾個菜單,幾個基本的視圖,各自起什麼作用的就可以了。當然還要了解人物基本的比例和結構。

第二步理解場景裡面的座標系統,輸入系統,簡單的向量概念。Unity3D的座標系統及向量概念如果不理解清楚,不理解世界座標,局部座標的關係,即使一個簡單的移動,縮放,旋轉的幾行代碼,也會困惑你半天。

第三步學習創建基本的場景的一些基本概念:遊戲對象,組件,腳本。在界面上分別體現在層次視圖,項目視圖及屬性視圖,要理清楚彼此之間的關係

第四步學習資源導入方面的一些基本元素:網格,材質,貼圖,動畫等。

第五步學習腳本的生命週期,Start,UpDate,ONGUI這些基本的方法。瞭解,預製,時間,數學等常用的類及相關方法。理解遊戲對象,組件,腳本彼此之間的關係。

第六步進一步學習攝像機,燈光,地形,渲染,粒子系統,物理系統等等,這些每一個深入進去都是一個很複雜的主題。

第七步一些更高級的概念:向量的加減法點乘叉乘,光照法線貼圖,內存管理,圖形優化等等。Unity3D入門容易,真的要精通,那是相當難的。


旅行文化


從unity3d的百度百科上看遊戲列表有王者榮耀提名,相信客戶端應該用了u3d。u3d主要開發語言是C#和JS。雖然用了C#,但是基於mono平臺的。
服務器端相信用到的會更多,如PHP,Java,C++等。任何一款大型的遊戲,系統都不可能只有一種語言去開發,每種語言都有其擅長的領域,合適的就是好的。


鋅資訊


這個在王者榮耀團隊的相關文章中有明確提到,客戶端,也就是手機上的的APP是用的Unity3D遊戲引擎。具體的開發語言以C#為主。


Unity3D是個遊戲引擎,是由微軟開發的收費軟件。這個引擎毫無疑問是用的C/C++。但是作為遊戲開發者,比如騰訊或天美,他們要做的就是利用這個開發工具而不需要再使用C/C++。具體說來,遊戲中的人物,場景,特效等是用的諸如Photoshop,3dsmax等軟件建立2D/3D模型。而具體的遊戲邏輯是使用C#來編寫腳本。


有些人會說,安卓不是都用JAVA寫的嗎?C#寫的遊戲怎麼可能運行在安卓上面?


Unity3D遊戲引擎,就像是個播放器(player),可以運行在Windows,安卓,iOS,瀏覽器。我們用C#寫遊戲腳本,就好像使用視頻製作軟件做個視頻,只要有播放器,它就能播,而不用管是什麼操作系統。


說到這裡,或許早些年玩過flash的人會豁然開朗。flash可以做動畫,可以不需要編程,如果是flash遊戲(比如QQ農場偷菜),用的語言叫actionscript,也是個腳本。flash同樣是跨平臺的。只不過後來喬布斯宣佈蘋果不再支持flash後,就沒有人用了。


Unity就好比是flash,而C#腳本就好比是ActionScript腳本。


上面談的主要都是手機端的APP,說了是以C#為主,可能在核心地方會用到極少量C語言(native代碼)。而在服務器端,則會複雜一些,五花八門,什麼都有。核心遊戲邏輯(比如登錄,玩家匹配,遊戲同步)肯定是用的C++,其他部分或許有JAVA(活動介紹,英雄介紹)。王者榮耀後臺大約有4600臺服務器,其中的調度,負載均衡,同步還是比較麻煩的。


sowhat1233565384


只要是遊戲,那基本都是C/C++開發的,只不過有一些現成的遊戲引擎比如unity3D讓你方便開發,那些引擎本身也是C++開發的,相當於語言的框架,unity3D支持C#與JS做腳本,遊戲大部分都是主C++,然後其他腳本語言為輔,反正一句話,遊戲基本都是C++


IT屆的扛把子


王者是用u3d開發的。u3d本身是用c++開發的。在u3d的開發過程中是用C#編寫。但是在引擎發佈遊戲的時候會將C#轉譯成C++。圖形部分是使用hlsl編寫shader,在通過u3d轉成手機上運行的glsl。服務器端肯定就是c或者c++了。


一步罪化一步蓮華


王者榮耀客戶端的話使用的是unity引擎,引擎本身是c++開發,支持c#和js腳本。但是由於js工程性不強,現在基本都使用c#開發了。客戶端由於要支持熱更新,估計使用了lua,至於unity的lua解決方案是選用騰訊自己的xlua還是ulua或者slua都不得而知了。所以,綜合起來客戶端涉及了c++,c#,lua三種語言。

服務端的話估計是c++加lua


影楓17


這個沒確認過,個人認為是用unity3D來開發的,但unity3D只是一個遊戲開發工具,相信我,一個遊戲現在來說,最核心的竟爭力是美術,音樂,娛樂性等之類的東西,開發工具無所謂。


數不盡的憂傷50773484


Unity3d製作的,他只是一個遊戲引擎,編程語言支持c#,python等等所以說,一款遊戲我們不能說用什麼語言製作的,因為有可能一款遊戲用到好多語言,我們只能說遊戲是用Unity3d製作的,具體什麼語言還得看遊戲的需求!如果你想製作遊戲,可以選擇一款適合你的遊戲引擎然後再選擇遊戲引擎支持的語言,你學習即可!


分享到:


相關文章: