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