六星云課堂:為什么游戲開發(fā)大多使用C++語言?
到2020了,出現(xiàn)了那么多的語言,為什么絕大多數(shù)游戲還是用C++來編寫?就以現(xiàn)在熱度非常高的英雄聯(lián)盟來說。它具體的技能和走位是由一定的邏輯處理程序進行設(shè)定的,與程序員編輯的邏輯代碼有關(guān),游戲的主要框架還是使用C++語言進行編寫。

在前面很長一段時間,沒有任何一個語言可以像C++一樣編譯和面向?qū)ο?。就比如Java和C#雖然都是面向?qū)ο蟮模遣荒芫幾g為C ++之類的機器語言。但這并沒有阻止一些游戲開發(fā)人員與他們一起開發(fā)游戲,但是他們?nèi)匀粵]有趕超C ++。
原因之一就是速度。盡管Java比C ++更優(yōu)雅,但它速度很慢。真得很慢 C#緊隨其后,但它也比C ++慢。因此游戲開發(fā)人員堅持使用C ++。
Java,它的一大優(yōu)勢是它是跨平臺的。在Windows上編譯的同一程序可以在Unix或具有兼容JVM的任何其他操作系統(tǒng)上運行。對于游戲開發(fā)者而言,這不是問題,因為他們通常只針對一個操作系統(tǒng)(Windows)。如果他們開發(fā)了用于主機的游戲,那么他們會重新編寫游戲。無論如何,游戲機都沒有JVM。Java通常對于大多數(shù)游戲來說太慢了。
現(xiàn)在慢慢的Java和C#的慢速因素已基本消失。盡管它們通常仍不如C ++快,但對于大多數(shù)用途(包括視頻游戲)而言,它們通常足夠快。
但是與此同時發(fā)生了一些事情。由于C ++是主要的游戲編程語言,因此圍繞著它發(fā)展了整個生態(tài)系統(tǒng)。所有游戲工具和庫僅針對C ++編寫。
最終,添加了C#和Java可用性,或者為這些語言開發(fā)了新的庫,但是到那時,C ++已成為事實上的游戲編程語言。另外,Java和C#(不包括Xbox)都不能在游戲機上使用。
另外,所有游戲開發(fā)人員都使用C ++開發(fā)。C ++是他們的事。他們沒有迫切的理由切換到任何其他語言,因為他們可以讓C ++進行所需的工作。這并不是對他們的真正阻礙。另外,他們所有的庫和工具都仍使用C ++。為什么會去選擇放棄它們而使用慢速語言?
如今,有新一代的開發(fā)人員真正喜歡Java和C#(以及Python和移動語言),這可能會改變潮流。Unity也是使用最廣泛的游戲引擎之一,它也使用C#。世界上很成功的游戲Minecraft是用Java編寫的。
也許有一天會改變,但是就目前而言,C ++仍然是占主導(dǎo)地位的游戲編程語言。但或許要想一直存在下去,能做的也許就是相互學習,更新完善。給人們帶來更好的體驗。
以上就是本次分享的全部內(nèi)容,想學習更多C++技巧,還要持續(xù)關(guān)注六星云課堂!