文章插圖

文章插圖
游戲本身會運行在不同的平臺,而平臺也影響了使用的語言 。平臺主要有2大類,PC(也就是常用的電腦)和手機 。它們上面都可以使用網頁來運行游戲,所以額外我們把網頁瀏覽器上面跑的叫WEB端 。針對上面的3種平臺類型 。我們來聊一聊這些平臺上常見的游戲是用什么開發的 。
PC端 。大部分的游戲是C/C++開發的 。這主要是因為我們使用的操作系統如window,mac的底層都是c 。使用C/C++可以極大的發揮性能上面的優勢 。比如下面這個NBA2K18就是用C/C++為主開發的 。
再聊一下WEB端 。WEB端以前是以flash為主,常見的就是4399的很多小游戲,都是flash為主 。WEB端主要是一個html與js的解釋器 。目前WEB開發國內主要是3大引擎:白鷺、laya以及cocos-js 。它們的主要開發語言為typescript,這主要是因為typescript可以提供非常快的開發速度(就像lua一樣),同時它還具備提前暴露問題的能力 。
實際上上面的部分主要聊的是游戲客戶端 。在游戲領域,實際上分為服務端和客戶端 。客戶端指對外玩家可以見到的畫面表現等 。服務端是運行在產商自己的服務器上的,支持玩家之間互相可見,同步,聊天等各種邏輯 。對于服務端的語言,目前有C++結合lua以及C#、java、php等 。這幾種都很常用,主流的大的游戲依然是C++為主 。中小型的游戲各種都會用到 。php常用于對網絡需求很低的游戲的做簡單的數據處理 。
上面的主要是一些理論,下面我們來實戰幾個問題,一會我們再來總結 。
1. 王者榮耀是用什么開發的?王者榮耀使用的是unity引擎,而這種全民級別的游戲是非常注重性能的 。所以它采用的是C++結合C# 。核心用C++,邏輯用C# 。為什么不是我們前面說的C#結合lua呢?因為騰訊有這個技術實力,所以他們整體使用了更有性能優勢的語言開發 。
2. 微信里面的小游戲是用什么開發的?小游戲本質上是個WEB的執行環境 。所以它上面的很多游戲都是typescript或者js開發的 。之所以typescript還沒有普及,是因為它的社區不夠活躍 。
3.怎么猜測一款游戲是什么語言開發的?先上網搜索它的開發引擎,如果搜索到了就看看它對性能是否要求高,來推導它的使用語言 。如果搜索不到,那很可能是自研引擎 。自研引擎大部分都是C++實現的 。
最后總結下 。目前大部分國內的游戲以C++/C#結合lua實現為主,隨著小游戲的開始,催生出一些js/typescript開發的游戲 。為什么是以C++結合lua會是實現為主呢,是因為現在網游最賺錢 。一款游戲月流水過千萬甚至過億催生了這個產業 。這個產業注重2點:性能穩定,所以是C++ ??梢愿鞣N修改,各種支出活動,所以是lua 。C++性能非常高,騰訊內部大部分代碼其實都是C++的 。lua是門腳本語言,招人門檻很低,也容易學習 。所以,很多語言實際上是因為大環境的影響而被選中的 。另外一方面,服務器也可以采用C++結合lua開發,這樣的話就形成了雙端(服務端和客戶端)都使用相同語言的高速開發模式 。
我猜想題主是想選擇一種語言學習 。首先題主要看下自己未來的方向 。是想做大項目還是做小項目 。如果是希望做大項目,目前無疑推薦的是C++和lua 。如果是小游戲之類的,推薦的是typescript 。未來的一個趨勢我大膽預測可能是C++結合typescript 。我了解到的一些技術大牛已經開始這樣實踐了 。推薦的lua語言開發書籍如下:
小游戲類的開發書籍推薦如下:
- go編譯器有哪些 go語言編譯器是什么語言開發的
- 輸入法語言欄不見了 怎么調出來 輸入法語言欄不顯示了怎么辦
- c語言內存釋放的問題 c語言內存釋放技巧
- C語言多組輸入 c++如何實現多組輸入
- c游戲編程從入門到精通 c語言游戲編程入門
- 文件加密軟件開發與實現 文件加密程序設計
- 網絡攻防學什么語言 web攻防入門
- c 語言游戲代碼大全,C語言經典游戲代碼 c語言游戲代碼大全手機版
- c語言排序的幾種方法 c語言排序的三種方法
- 冠詞,語言 冠詞有哪些
