請留下您的手機(jī)號
課程顧問將幫您激活課程并贈送學(xué)習(xí)禮包
作為一個多年游戲服務(wù)端開發(fā)者,我來回答一下這個問題。只要你仔細(xì)去招聘網(wǎng)站看,會發(fā)現(xiàn)游戲招java的非常少(我希望杠精不要抬杠,我說的少,而且非常少,并不是說沒有)。那么為什么在其他領(lǐng)域的霸主在游戲行業(yè)連喝口湯的資格都沒有呢?其實(shí)主要有兩個原因,而且這兩個原因都和程序員最關(guān)心的效率有關(guān)系,一個是開發(fā)效率,一個是運(yùn)行效率。很遺憾的作為一個不上不下的java兩個都占不了。
首先是開發(fā)效率,在幾年前手機(jī)游戲開始火爆,游戲公司多,產(chǎn)品相似度高,那么如何能以最快的速度開發(fā)完游戲并且上線運(yùn)營,在快速迭代中試錯,降低開發(fā)周期就是減少開發(fā)成本。在這種環(huán)境下,很多腳本語言成了首選,比如nodejs、php甚至還有l(wèi)ua和python(這里多說一句,別看lua語言本身簡單,其實(shí)lua在游戲領(lǐng)域的使用成本是非常高的,至少在這四種腳本語言中是最高的,因?yàn)樗皇且粋€膠水語言,要依附于c/c++,作為游戲周邊的庫都要自己造輪子或找輪子,同時對于引擎部分來說,對核心開發(fā)人員要求也非常高,如果公司沒有經(jīng)驗(yàn)豐富的c/c++程序員,lua基本玩不轉(zhuǎn))。在這些腳本語言面前,java毫無優(yōu)勢。nodejs開箱即用,用js可以前后端一起寫(html5的流行讓這種情況更是越來越多)。而php上手容易,開發(fā)簡單,而且像一些用http的弱交互游戲,熱更新簡直不要太爽,無感知修bug。一些簡單的休閑游戲,用這些腳本語言完全可以很快速的完成,就拿之前比較火的刀塔傳奇來說,用這些腳本語言一點(diǎn)壓力都沒有,還有特別是棋牌類游戲,腳本語言更是首選。
其次再來說說運(yùn)行效率,在一些密集型計算的游戲中,c++是首選,一些大型游戲,對計算要求很高,業(yè)務(wù)邏輯復(fù)雜的情況下,提升效率就能多容納在線人數(shù),也是成本的減少。同時對內(nèi)存要求也高,使用c++可以數(shù)著內(nèi)存寫代碼(手法過于夸張[捂臉]),對象啥時候申請,啥時候釋放都是程序員說了算,gc消耗不存在的。而java生成的都是字節(jié)碼,代碼執(zhí)行都要經(jīng)過jvm來跑,這中間的消耗對于那些對性能要求苛刻的程序來說,絕對不能接受。
綜合以上兩點(diǎn),java處于運(yùn)行效率和開發(fā)效率中間的語言,在游戲這個行業(yè)自然是不會受到青睞。
做游戲引擎,當(dāng)然還是看性能啦,c的性能最好。java性能其實(shí)也很好了,看誰出個簡單快速的框架唄
JAVA 可以做游戲服務(wù)端的開發(fā),也就是網(wǎng)絡(luò)游戲的開發(fā),網(wǎng)絡(luò)游戲的實(shí)時性高,對高并發(fā),數(shù)據(jù)的一致性處理要求較高,并且因?yàn)槭亲陨鞪VM 的垃圾回收機(jī)制對服務(wù)器的內(nèi)核性能要求高,會占用一定的資源去處理這部分?jǐn)?shù)據(jù),游戲的實(shí)時性代表了大量數(shù)據(jù)會經(jīng)常被更改替換。
JAVA 不是不能做,而是對開發(fā)人員的能力要求高!如果能夠充分利用JAVA 的并發(fā)優(yōu)勢,那是可以做到的,并且這已經(jīng)被有些小公司當(dāng)做網(wǎng)絡(luò)游戲服務(wù)端的開發(fā)語言了。
PC 端,移動端的單機(jī)游戲就不用再考慮JAVA 了,顯然JAVA 的2D3D 處理效果沒有一些主流的游戲開發(fā)語言好!語言具有其使用場景,抓住其優(yōu)點(diǎn)去利用之,而不是拿它的缺點(diǎn)如何別的語言優(yōu)點(diǎn)相比!如今JAVA 是做服務(wù)端開發(fā)的不二人選,因?yàn)樗牡蹏髲B已經(jīng)很完善,開發(fā)人員也多!
因?yàn)閖ava中間多出來一個jvm,效率低,游戲?qū)崟r性很重要。
看一個語言適合開發(fā)什么,主要有三點(diǎn)
1.效率問題,包括開發(fā)效率和執(zhí)行效率。
2.生態(tài)圈,有人家提供好的成套解決方案,為什么不用呢?
3.產(chǎn)品的側(cè)重點(diǎn)。
就拿java和c++來說,java主要用于web開發(fā),但是c++通過cgi也可以寫web,而且c++的執(zhí)行效率甩java幾條街,但是為什么不用c++寫web呢,因?yàn)閏++的開發(fā)web的效率太低,而java有各種web方面的框架,開發(fā)效率高。
如果產(chǎn)品是游戲,游戲?qū)崟r性很重要,你玩?zhèn)€游戲反應(yīng)慢半拍那肯定很惱火。游戲這個產(chǎn)品的實(shí)時性就注定了要采用高效率的語言開發(fā),那c,c++自然就跑不掉了。
3a游戲是用什么語言編寫的
3a游戲用什么語言寫的
C語言可以制作游戲嗎
C語言可以開發(fā)游戲么
C語言可以開發(fā)游戲嗎
C語言真的可以寫大型游戲嗎
C語言能做大型游戲嗎
c++做游戲?qū)W哪些
c++語言能做游戲嗎
c語言為什么不適合做游戲
c語言做游戲合適嗎
c語言做游戲需要什么
c語言可以做大型游戲嗎
c語言可以寫游戲腳本嗎
c語言可以用來做大型游戲嗎
c語言可以設(shè)計游戲嗎
c語言和java能做游戲嗎
c語言開發(fā)游戲合適嗎
c語言游戲引擎開發(fā)
c語言適合游戲開發(fā)嗎
c語言可以開發(fā)游戲
flash游戲需要什么配置
d動漫游戲培訓(xùn)班
dw游戲網(wǎng)頁如何制作
同學(xué)您好!