java游戲怎么編程,為什么Java不適合游戲開發(fā)?
作為一個多年游戲服務(wù)端開發(fā)者,我來回答一下這個問題。只要你仔細去招聘網(wǎng)站看,會發(fā)現(xiàn)游戲招java的非常少(我希望杠精不要抬杠,我說的少,而且非常少,并不是說沒有)。那么為什么在其他領(lǐng)域的霸主在游戲行業(yè)連喝口湯的資格都沒有呢?其實主要有兩個原因,而且這兩個原因都和程序員最關(guān)心的效率有關(guān)系,一個是開發(fā)效率,一個是運行效率。很遺憾的作為一個不上不下的java兩個都占不了。
首先是開發(fā)效率,在幾年前手機游戲開始火爆,游戲公司多,產(chǎn)品相似度高,那么如何能以最快的速度開發(fā)完游戲并且上線運營,在快速迭代中試錯,降低開發(fā)周期就是減少開發(fā)成本。在這種環(huán)境下,很多腳本語言成了首選,比如nodejs、php甚至還有l(wèi)ua和python(這里多說一句,別看lua語言本身簡單,其實lua在游戲領(lǐng)域的使用成本是非常高的,至少在這四種腳本語言中是最高的,因為他只是一個膠水語言,要依附于c/c++,作為游戲周邊的庫都要自己造輪子或找輪子,同時對于引擎部分來說,對核心開發(fā)人員要求也非常高,如果公司沒有經(jīng)驗豐富的c/c++程序員,lua基本玩不轉(zhuǎn))。在這些腳本語言面前,java毫無優(yōu)勢。nodejs開箱即用,用js可以前后端一起寫(html5的流行讓這種情況更是越來越多)。而php上手容易,開發(fā)簡單,而且像一些用http的弱交互游戲,熱更新簡直不要太爽,無感知修bug。一些簡單的休閑游戲,用這些腳本語言完全可以很快速的完成,就拿之前比較火的刀塔傳奇來說,用這些腳本語言一點壓力都沒有,還有特別是棋牌類游戲,腳本語言更是首選。
其次再來說說運行效率,在一些密集型計算的游戲中,c++是首選,一些大型游戲,對計算要求很高,業(yè)務(wù)邏輯復(fù)雜的情況下,提升效率就能多容納在線人數(shù),也是成本的減少。同時對內(nèi)存要求也高,使用c++可以數(shù)著內(nèi)存寫代碼(手法過于夸張[捂臉]),對象啥時候申請,啥時候釋放都是程序員說了算,gc消耗不存在的。而java生成的都是字節(jié)碼,代碼執(zhí)行都要經(jīng)過jvm來跑,這中間的消耗對于那些對性能要求苛刻的程序來說,絕對不能接受。
綜合以上兩點,java處于運行效率和開發(fā)效率中間的語言,在游戲這個行業(yè)自然是不會受到青睞。
做游戲這一塊學java好還是學C語言好?
謝邀。四川中公優(yōu)就業(yè)的老師為您解答:
開發(fā)游戲的主流語音目前主要有2種:C++和JAVA
先說C++,目前國際上的大型游戲的開發(fā)多數(shù)都是以C++為主開發(fā)出來的,C++開發(fā)出來的游戲具有優(yōu)化更好的特性,就是占用更少的CPU、內(nèi)存,但是同時,語言結(jié)構(gòu)的復(fù)雜性也是非同一般的。JAVA,上手容易,深入不難,一個月熟練不是隨便說說的,是事實,主要開發(fā)跨平臺的游戲,具有平臺移植性良好的特性,但是優(yōu)化不好,語句多數(shù)比較冗余(C++寫1000句能完成的,JAVA可能要寫5000句),但是淺顯易懂,JAVA開發(fā)的游戲有個較大的弊端,內(nèi)存占用都很高(硬件越來越發(fā)達,對于優(yōu)化的追求沒有以前那么高了,這也是這些年JAVA開發(fā)游戲能興起的主要因素之一吧)
當然,你即時熟練掌握了C++或者JAVA,也不是說你立馬就能上公司做游戲開發(fā)的,一般的游戲公司都會有自己的一套游戲引擎,這些引擎或是用C++寫的,或是用JAVA寫的,或是其他的……然后封裝一下,會讓你基于引擎的接口來開發(fā)真正的游戲,所以,語言是基礎(chǔ)。
請問學會了JAVA后可以開發(fā)APP了嗎?
這還是不夠的,因為開發(fā)APP涉及到多方面的能力。但如果你只需要開發(fā)android的APP,那就夠了。因為它的原生開發(fā)的基礎(chǔ)是java。
現(xiàn)在很少有公司會用原生的代碼去開發(fā)android(java)和ios(object-c)。整體趨勢是用一套html5的代碼去開發(fā)兼容android和ios。如果你想從事更多app的開發(fā)建議你再學習一下apicloud和ionic,后端實現(xiàn)(一般都是java提供app數(shù)據(jù)操作的接口)也很重要,難度也比較大。建議最后接著往大數(shù)據(jù)發(fā)展。
以上就是關(guān)于java游戲怎么編程和為什么Java不適合游戲開發(fā)的相關(guān)問題解答,希望對你有所幫助。