發(fā)布時間:2023-11-27 07:24:37 瀏覽量:485次
游戲本身會運行在不同的平臺,而平臺也影響了使用的語言。平臺主要有2大類,PC(也就是常用的電腦)和手機。它們上面都可以使用網(wǎng)頁來運行游戲,所以額外我們把網(wǎng)頁瀏覽器上面跑的叫WEB端。針對上面的3種平臺類型。我們來聊一聊這些平臺上常見的游戲是用什么開發(fā)的。
PC端。大部分的游戲是C/C++開發(fā)的。這主要是因為我們使用的操作系統(tǒng)如window,mac的底層都是c。使用C/C++可以極大的發(fā)揮性能上面的優(yōu)勢。比如下面這個NBA2K18就是用C/C++為主開發(fā)的。
手機端。手機端的游戲我們稱為手游。手機上面的操作系統(tǒng)主要是ios與android,也就是蘋果和安卓系統(tǒng)。在之前,android上面的游戲以java開發(fā)居多。這是因為android系統(tǒng)本身就是以java開發(fā)為主。ios上面的游戲以object c開發(fā)居多,這也是因為系統(tǒng)本身的緣故。最近ios又出來swift語言。但是隨著技術的發(fā)展,程序員們發(fā)現(xiàn)一款游戲要部署到各個平臺的成本太高了。所以現(xiàn)在主流的技術是使用跨平臺的游戲引擎開發(fā),然后發(fā)布到不同的平臺。所以,語言的選擇從對平臺的依賴變成了對游戲引擎的依賴。那我們就要看看主流的游戲引擎有哪些?主流的游戲引擎有:unity,cocos,unreal等。unity采用的是C#語言為主。cocos下面以C++、lua、js等開發(fā)語言。unreal主要是以C++為主。從上面這些中你會發(fā)現(xiàn)語言有很多,使用的也很多。在商業(yè)項目以及目前主流技術中,大部分高水準的游戲是以C++結合lua來開發(fā)的。C++負責處理高性能的部分,lua處理邏輯部分來加快開發(fā)速度。即使是使用unity引擎,大部分產商也會選擇C#結合lua的方式來開發(fā)。C#負責核心部分,lua處理邏輯部分。
再聊一下WEB端。WEB端以前是以flash為主,常見的就是4399的很多小游戲,都是flash為主。WEB端主要是一個html與js的解釋器。目前WEB開發(fā)國內主要是3大引擎:白鷺、laya以及cocos-js。它們的主要開發(fā)語言為typescript,這主要是因為typescript可以提供非??斓拈_發(fā)速度(就像lua一樣),同時它還具備提前暴露問題的能力。
實際上上面的部分主要聊的是游戲客戶端。在游戲領域,實際上分為服務端和客戶端??蛻舳酥笇ν馔婕铱梢砸姷降漠嬅姹憩F(xiàn)等。服務端是運行在產商自己的服務器上的,支持玩家之間互相可見,同步,聊天等各種邏輯。對于服務端的語言,目前有C++結合lua以及C#、java、php等。這幾種都很常用,主流的大的游戲依然是C++為主。中小型的游戲各種都會用到。php常用于對網(wǎng)絡需求很低的游戲的做簡單的數(shù)據(jù)處理。
上面的主要是一些理論,下面我們來實戰(zhàn)幾個問題,一會我們再來總結。
1. 王者榮耀是用什么開發(fā)的?王者榮耀使用的是unity引擎,而這種全民級別的游戲是非常注重性能的。所以它采用的是C++結合C#。核心用C++,邏輯用C#。為什么不是我們前面說的C#結合lua呢?因為騰訊有這個技術實力,所以他們整體使用了更有性能優(yōu)勢的語言開發(fā)。
2. 微信里面的小游戲是用什么開發(fā)的?小游戲本質上是個WEB的執(zhí)行環(huán)境。所以它上面的很多游戲都是typescript或者js開發(fā)的。之所以typescript還沒有普及,是因為它的社區(qū)不夠活躍。
3.怎么猜測一款游戲是什么語言開發(fā)的?先上網(wǎng)搜索它的開發(fā)引擎,如果搜索到了就看看它對性能是否要求高,來推導它的使用語言。如果搜索不到,那很可能是自研引擎。自研引擎大部分都是C++實現(xiàn)的。
最后總結下。目前大部分國內的游戲以C++/C#結合lua實現(xiàn)為主,隨著小游戲的開始,催生出一些js/typescript開發(fā)的游戲。為什么是以C++結合lua會是實現(xiàn)為主呢,是因為現(xiàn)在網(wǎng)游最賺錢。一款游戲月流水過千萬甚至過億催生了這個產業(yè)。這個產業(yè)注重2點:性能穩(wěn)定,所以是C++??梢愿鞣N修改,各種支出活動,所以是lua。C++性能非常高,騰訊內部大部分代碼其實都是C++的。lua是門腳本語言,招人門檻很低,也容易學習。所以,很多語言實際上是因為大環(huán)境的影響而被選中的。另外一方面,服務器也可以采用C++結合lua開發(fā),這樣的話就形成了雙端(服務端和客戶端)都使用相同語言的高速開發(fā)模式。
我猜想題主是想選擇一種語言學習。首先題主要看下自己未來的方向。是想做大項目還是做小項目。如果是希望做大項目,目前無疑推薦的是C++和lua。如果是小游戲之類的,推薦的是typescript。未來的一個趨勢我大膽預測可能是C++結合typescript。我了解到的一些技術大牛已經(jīng)開始這樣實踐了。推薦的lua語言開發(fā)書籍如下:
推薦的C++書籍如下:
typescript暫時沒有合適的書籍供閱讀,主要以typescript的官方文檔為主。
小游戲類的開發(fā)書籍推薦如下:
大的游戲實際上需要大量的學習和知識積累。遠遠不是幾本書能完全吃透的。這邊還是推薦一本unity3的引擎的書來提高下入門的興趣:
特別提醒下:基于目前互聯(lián)網(wǎng)的發(fā)展速度,讀書已經(jīng)不是最快的獲取知識的途徑了。所以推薦的是優(yōu)先以互聯(lián)網(wǎng)的內容來學習,找個引擎玩一玩。像玩玩具一樣的學習編程是最快樂的。之后再努力進入一線的研發(fā)團隊歷練,這樣成長最快。紙質的書籍落后于實際的技術3-5年以上。
熱門資訊
探討游戲引擎的文章,介紹了10款游戲引擎及其代表作品,涵蓋了RAGE Engine、Naughty Dog Game Engine、The Dead Engine、Cry Engine、Avalanche Engine、Anvil Engine、IW Engine、Frostbite Engine、Creation引擎、Unreal Engine等引擎。借此分析引出了游戲設計領域和數(shù)字藝術教育的重要性,歡迎點擊咨詢報名。
2. 手機游戲如何開發(fā)(如何制作傳奇手游,都需要準備些什么?)
?如何制作傳奇手游,都需要準備些什么?提到傳奇手游相信大家都不陌生,他是許多80、90后的回憶;從起初的端游到現(xiàn)在的手游,說明時代在進步游戲在更新,更趨于方便化移動化。而如果我們想要制作一款傳奇手游的
3. B站視頻剪輯軟件「必剪」:免費、炫酷特效,小白必備工具
B站視頻剪輯軟件「必剪」,完全免費、一鍵制作炫酷特效,適合新手小白??靵碓囋嚕?/span>
游戲中玩家將面臨武俠人生的掙扎抉擇,戰(zhàn)或降?殺或放?每個抉定都將觸發(fā)更多愛恨糾葛的精彩奇遇?!短烀嬗肪哂卸嗑€劇情多結局,不限主線發(fā)展,高自由...
5. Bigtime加密游戲經(jīng)濟體系揭秘,不同玩家角色的經(jīng)濟活動
Bigtime加密游戲經(jīng)濟模型分析,探討游戲經(jīng)濟特點,幫助玩家更全面了解這款GameFi產品。
6. 3D動畫軟件你知道幾個?3ds Max、Blender、Maya、Houdini大比拼
當提到3D動畫軟件或動畫工具時,指的是數(shù)字內容創(chuàng)建工具。它是用于造型、建模以及繪制3D美術動畫的軟件程序。但是,在3D動畫軟件中還包含了其他類型的...
7. 3D動漫建模全過程,不是一般人能學的會的,會的多不是人?
步驟01:面部,頸部,身體在一起這次我不準備設計圖片,我從雕刻進入。這一次,它將是一種純粹關注建模而非整體繪畫的形式。像往常一樣,我從Sphere創(chuàng)建它...
8. 如何自己開發(fā)一款游戲(游戲開發(fā)入門必看:五大獨立游戲開發(fā)技巧)
?游戲開發(fā)入門必看:五大獨立游戲開發(fā)技巧無論您是剛剛起步開發(fā)自己的第一款游戲,還是已經(jīng)制作了幾款游戲,本篇文章中的5大獨立游戲開發(fā)技巧都可以幫助您更好地設計下一款游戲。無論你對游戲有著什么樣的概念,都
?三昧動漫對于著名ARPG游戲《巫師》系列,最近CD Projekt 的高層回應并不會推出《巫師4》。因為《巫師》系列在策劃的時候一直定位在“三部曲”的故事框架,所以在游戲的出品上不可能出現(xiàn)《巫師4》
想讓你的3D打印模型更堅固?不妨嘗試一下Cura參數(shù)設置和設計技巧,讓你輕松掌握!
同學您好!