針對上麵的3種平台類(lèi)型。我們來聊一聊這些(xiē)平台上(shàng)常見的遊戲是用什麽開(kāi)發的。
PC端。大部分的遊戲是C/C++開發(fā)的。這主要是因為我們(men)使用的操作係統如(rú)window,mac的底層都是c。使用C/C++可以極大的發揮性能上麵的優勢。比如下麵(miàn)這個NBA2K18就是用C/C++為主(zhǔ)開發的。
手機端。手機端的遊戲我們稱(chēng)為(wéi)手遊。手機(jī)上麵的操作係統主要是ioses與androids,也(yě)就是蘋果和安卓(zhuó)係統。在之前,androids上麵的遊戲以java開發居多。這是因為androids係統本身就是以java開發為主。ioses上(shàng)麵的(de)遊戲以object c開發居多(duō),這也是(shì)因為係統本身的緣故。最近ioses又出來swift語言。但是隨著技術的發(fā)展,程序員們發現(xiàn)一款遊戲要部(bù)署到各個平台的(de)成本太高了。所以現在主流的技術是使用跨平台的遊戲引擎開發,然(rán)後發布到不同的(de)平台。所以,語言的選擇(zé)從對平(píng)台的依賴變成了對遊戲引擎的依賴。那(nà)我們就要看看主(zhǔ)流的遊戲引擎有哪些(xiē)?主流的遊戲引擎有:unity,cocos,unreal等。unity采用的是C#語(yǔ)言為主。cocos下(xià)麵以C++、lua、js等開發語言。unreal主要是以C++為主。從上麵這些中你會發現語言有很多,使(shǐ)用的也(yě)很多。在商業項目以及目前主流技術中,大部分高水準的遊戲是以C++結合lua來開發的。C++負(fù)責處理高性能的部(bù)分,lua處(chù)理邏輯部分來加快開發速度。即使是使用(yòng)unity引擎,大部分產商也會選擇C#結合lua的方式來開發。C#負責核心部分,lua處理邏輯部分。
再聊一下WEB端。WEB端(duān)以(yǐ)前是以flash為主,常見(jiàn)的就是4399的很(hěn)多小遊戲,都是flash為主。WEB端主要是一個html與js的(de)解釋器。目前WEB開發國內(nèi)主要是3大引擎:白鷺、laya以及cocos-js。它們的主要開發語言為(wéi)typescript,這主要是因為typescript可以提供非常(cháng)快的(de)開(kāi)發速度(dù)(就像lua一樣),同時(shí)它還具備提前暴露問(wèn)題的能(néng)力。
實際上上麵的部分主要聊的是遊戲客戶端。在遊戲領域,實際上分為服務端和客戶端。客戶端指對外玩(wán)家可以見到的畫(huà)麵表現等。服務端是運行在產商自己(jǐ)的(de)服務器上的,支持玩家之間互相可見,同步,聊天等各種邏輯。對於服務端的語言,目前有(yǒu)C++結合lua以及C#、java、php等。這幾種都很常(cháng)用(yòng),主流的大的遊戲依然是C++為主。中小型的遊戲(xì)各種都會用到(dào)。php常用於(yú)對網絡需求很低的遊戲的(de)做簡單的數據處理。
上麵的主要是一些(xiē)理論,下麵我(wǒ)們來實戰幾(jǐ)個問題,一會我們(men)再來總結。
1. 王者榮耀是(shì)用什麽(me)開發的(de)?王者榮耀使用的是unity引擎(qíng),而這種全民級別(bié)的遊戲是非常注重性能的。所以它采用的(de)是C++結合C#。核心(xīn)用C++,邏輯(jí)用C#。為什麽不是我們前麵(miàn)說的C#結合lua呢?因為騰訊(xùn)有這(zhè)個技(jì)術實力(lì),所以他們整體使用了更有性能優勢的語言開發。
2. 微信裏(lǐ)麵的小遊戲是用什麽開發的?小遊戲本質上是個WEB的執行環(huán)境。所以它上麵的很多遊戲都(dōu)是typescript或(huò)者js開發的。之(zhī)所以typescript還沒有普及,是因為它的社區不夠活躍。
3.怎麽猜測一款遊戲是什麽語言開發的?先(xiān)上網搜索它的開發(fā)引擎,如果搜索到了就看看它對性能是(shì)否要求高,來推導它的使用語言。如果搜索不到(dào),那很可(kě)能是自研引擎。自研引擎大(dà)部分都是C++實現的。
最(zuì)後總結下(xià)。目前大部分國內的遊戲以C++/C#結合(hé)lua實現為主,隨著小遊戲的開始,催生出一些js/typescript開發的遊戲。為什(shí)麽是以C++結合lua會是實現為主呢,是(shì)因為現在網(wǎng)遊(yóu)最賺錢。一款遊戲月流水過千萬甚至過億催生了這個產業。這個產業注重2點:性能穩定,所以是C++。可以各種修改,各種支出活動(dòng),所以是lua。C++性能非常高,騰訊內部大部分代碼其實都是C++的。lua是門腳本語言,招人門檻很低,也容易學(xué)習。所以,很多語言實際上是(shì)因為大環境的影響(xiǎng)而(ér)被選中(zhōng)的。另外一方麵,服務器也可以采用C++結合lua開發,這樣的話就形成了(le)雙(shuāng)端(服務(wù)端和客戶端)都使(shǐ)用相同(tóng)語言的高速開(kāi)發模式。
我猜想題主是想選擇一種語言學習(xí)。首先題主要看下自己(jǐ)未來的方向。是想做大項目還是做小項目。如果是希望做大項(xiàng)目,目前無疑推薦的是C++和lua。如果是(shì)小遊戲之類(lèi)的,推薦的是typescript。未來的一個趨勢我(wǒ)大膽預(yù)測可能是C++結合typescript。我了解到的一些技術大(dà)牛已經開(kāi)始這(zhè)樣實踐了(le)。推薦的lua語言開發書籍如下:
推薦的C++書(shū)籍如(rú)下:
typescript暫時沒有合適的書籍供閱讀,主要以typescript的官方文(wén)檔為主。
小遊戲類的開發書(shū)籍推薦(jiàn)如下:
大的遊戲實際(jì)上需要大量的(de)學習和知識積累。遠遠不是幾本書能(néng)完全吃透的。這邊還是推薦(jiàn)一本unity3的引擎的書來提高下入門的(de)興趣:
特別提醒下:基於目前互聯網的發展速度,讀書已經不是最快的獲取知識的途徑了。所(suǒ)以推薦(jiàn)的是優先以互聯網的內容來學習,找個(gè)引(yǐn)擎玩一玩。像玩玩(wán)具一樣的學習編程是最快樂的。之後再努力進入一線的研發團隊曆練,這樣成長最快。紙(zhǐ)質(zhì)的書籍落後於實際的(de)技術3-5年以上。
相關文章
01-01
147185℃
未取得經營許可或未履行備案手續,擅自(zì)從事(shì)互...
01-13
28421℃
電子稅務局(jú)申報流程如下:打開瀏覽器進入各地...
03-16
24665℃
記(jì)賬憑證是財會部門根據原始憑證填製,記載(zǎi)經...
12-12
21003℃
電子發(fā)票是信息時代的產物,同普通發(fā)票一(yī)樣,采...
11-30
18832℃
按照稅法的規定,有(yǒu)一些商品如涉農商品、自來...
12-02
17500℃
行政(zhèng)審批局“一顆印章審批”,解決“權力(lì)碎片...