什么編程語(yǔ)言適合生存游戲,為什么Java不適合游戲開(kāi)發(fā)?
作為一個(gè)多年游戲服務(wù)端開(kāi)發(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è)是開(kāi)發(fā)效率,一個(gè)是運(yùn)行效率。很遺憾的作為一個(gè)不上不下的java兩個(gè)都占不了。
首先是開(kāi)發(fā)效率,在幾年前手機(jī)游戲開(kāi)始火爆,游戲公司多,產(chǎn)品相似度高,那么如何能以最快的速度開(kāi)發(fā)完游戲并且上線運(yùn)營(yíng),在快速迭代中試錯(cuò),降低開(kāi)發(fā)周期就是減少開(kāi)發(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ì)核心開(kāi)發(fā)人員要求也非常高,如果公司沒(méi)有經(jīng)驗(yàn)豐富的c/c++程序員,lua基本玩不轉(zhuǎn))。在這些腳本語(yǔ)言面前,java毫無(wú)優(yōu)勢(shì)。nodejs開(kāi)箱即用,用js可以前后端一起寫(xiě)(html5的流行讓這種情況更是越來(lái)越多)。而php上手容易,開(kāi)發(fā)簡(jiǎn)單,而且像一些用http的弱交互游戲,熱更新簡(jiǎn)直不要太爽,無(wú)感知修bug。一些簡(jiǎn)單的休閑游戲,用這些腳本語(yǔ)言完全可以很快速的完成,就拿之前比較火的刀塔傳奇來(lái)說(shuō),用這些腳本語(yǔ)言一點(diǎn)壓力都沒(méi)有,還有特別是棋牌類(lèi)游戲,腳本語(yǔ)言更是首選。
其次再來(lái)說(shuō)說(shuō)運(yùn)行效率,在一些密集型計(jì)算的游戲中,c++是首選,一些大型游戲,對(duì)計(jì)算要求很高,業(yè)務(wù)邏輯復(fù)雜的情況下,提升效率就能多容納在線人數(shù),也是成本的減少。同時(shí)對(duì)內(nèi)存要求也高,使用c++可以數(shù)著內(nèi)存寫(xiě)代碼(手法過(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)行效率和開(kāi)發(fā)效率中間的語(yǔ)言,在游戲這個(gè)行業(yè)自然是不會(huì)受到青睞。
游戲開(kāi)發(fā)具體學(xué)什么?
大家一直在說(shuō)一些屬于游戲制作人這個(gè)職業(yè)的東西,我就補(bǔ)充一下題主問(wèn)的關(guān)于語(yǔ)言和入門(mén)教程的東西吧。
關(guān)于語(yǔ)言,那只是個(gè)做游戲的工具,而掌握工具是整個(gè)流程中最簡(jiǎn)單不過(guò)的事。如果是普通的rpg走個(gè)流程/賣(mài)劇情的話,rpgmaker,如果要做3d游戲,unity;2d手游,cocos2D;gal,吉里吉里;頁(yè)游請(qǐng)搜索關(guān)鍵詞socket服務(wù)器,flash,html5;請(qǐng)注意不是選擇某個(gè)引擎來(lái)做游戲,而是說(shuō)要做某個(gè)游戲的話,就去選個(gè)適合的引擎現(xiàn)學(xué)現(xiàn)用!計(jì)算機(jī)專(zhuān)業(yè)本身就會(huì)教給你如何快速地學(xué)會(huì)一個(gè)工具,在課堂上認(rèn)真體會(huì)吧。
然后就是入門(mén)教程,語(yǔ)言、引擎的無(wú)師自通是計(jì)算機(jī)專(zhuān)業(yè)學(xué)生的自帶技能不啰嗦了,要看的書(shū)主要集中在游戲策劃這個(gè)角色上,主要研究游戲制作流程,日程安排,游戲性設(shè)計(jì),關(guān)卡設(shè)計(jì),數(shù)據(jù)平衡等等。這些項(xiàng)目不像編程,美工音樂(lè)那樣有現(xiàn)成的教育框架,我也實(shí)在沒(méi)找到一本集大成,對(duì)得起它價(jià)錢(qián)的教科書(shū)。目前比較接近這個(gè)需求的有游戲制作工廠系列,全彩還挺貴的建議去圖書(shū)館借閱,另一本第九藝術(shù)學(xué)院?游戲開(kāi)發(fā)系列教材?游戲架構(gòu)設(shè)計(jì)與策劃基礎(chǔ) 倒是不貴,不過(guò)講得也并沒(méi)有多好。另外像unity的關(guān)卡系統(tǒng),本身就蘊(yùn)含了以關(guān)卡為結(jié)構(gòu)的游戲設(shè)計(jì)思維,所以u(píng)nity引擎的教科書(shū)也通常會(huì)講授一些,別的引擎同理;這些都可以博覽而加入你自己的知識(shí)庫(kù)中。
最后ps.一下,樓上諸君之所以強(qiáng)調(diào)那么多跟引擎平臺(tái),跟畫(huà)畫(huà),寫(xiě)歌,編故事,碼代碼無(wú)關(guān)的事,就是想要強(qiáng)調(diào)告訴你游戲策劃這個(gè)職位是有意義的,是整個(gè)游戲創(chuàng)作中最重要的那個(gè)角色。把畫(huà)跟音樂(lè)跟故事用代碼揉到一起的過(guò)程才是游戲創(chuàng)作的本質(zhì),這點(diǎn)請(qǐng)務(wù)必注意
一時(shí)興起,就再補(bǔ)充一下關(guān)于繪畫(huà)、音樂(lè)和劇本創(chuàng)作的學(xué)習(xí)規(guī)劃。首先記住這三樣是無(wú)底洞,希望以一己之力能做到多好很難很難,千萬(wàn)不要貪多務(wù)得。然后,
音樂(lè),用FLstudio做midi音樂(lè)很輕松方便,音源是無(wú)底洞不要亂玩夠用就好,斯賓索夫的《和聲學(xué)教程》等一些classical的教程是必修課;至于實(shí)錄,我認(rèn)為唯一有實(shí)錄價(jià)值的是vocal,其他任何音軌用hypersonic2等級(jí)的音源midi掉都?jí)蛄耍贪逶谀愕木幣涠皇且粼础?/p>
畫(huà)畫(huà)有學(xué)長(zhǎng)教那是極好的,但是提醒一點(diǎn),學(xué)畫(huà)畫(huà)主要是為了學(xué)習(xí)美術(shù)最基本的原則,不要讓你的角色建模頭重腳輕,配色配得跟神經(jīng)病似的...簡(jiǎn)單的方式例如用flash拖一個(gè)圓圈當(dāng)腦袋,弄成南方公園那樣,用C4D,3Ds MAX做簡(jiǎn)單的3D建模都可以,只要你美術(shù)素養(yǎng)夠了,就不會(huì)因?yàn)楹?jiǎn)單而難看,陳星漢的游戲角色建模也不復(fù)雜但就是美。切記不要一時(shí)興起用數(shù)位板在sai/ps畫(huà)畫(huà),那是可以吞掉你無(wú)數(shù)時(shí)間和信心的無(wú)底洞,等你做多幾個(gè)游戲,知道要怎么規(guī)劃時(shí)間和資源之后再嘗試吧。
劇本,粘粘世界的那種不叫劇本叫文案,創(chuàng)作不難,只要你心理健康隨性發(fā)揮就能寫(xiě)好;至于adv,需要?jiǎng)∏榈膔pg,推薦你去學(xué)習(xí)一下電影劇本寫(xiě)作,來(lái)自好萊塢的教程目前市面上多得數(shù)不清,謙虛學(xué)習(xí)就能寫(xiě)出好看的作品。然后,一部文學(xué)作品沒(méi)有被改過(guò)5次是不足以拿出手的,改了5次還有錯(cuò)別字則是不可能的,所以如果看到一個(gè)游戲成品里面還出現(xiàn)了錯(cuò)別字,這就明擺著這劇本寫(xiě)作沒(méi)用心。
游戲腳本都是什么人做的?
腳本是一種批處理文件的工具,是一種已純文本保存的小型程序代碼,這種腳本一般來(lái)說(shuō)是確定一系列控制計(jì)算機(jī)進(jìn)行運(yùn)算操作的“動(dòng)作”,這種“動(dòng)作”可以實(shí)現(xiàn)一些簡(jiǎn)單的邏輯運(yùn)算處理。
在現(xiàn)實(shí)生活中,一般腳本分為兩大類(lèi):工具類(lèi)和游戲類(lèi),其實(shí)用途和原理都差不多,目的都是方便使用者的日常需求,比如,你需要在電腦上不停地按回車(chē)鍵,如果是真人按的話就會(huì)很浪費(fèi)時(shí)間,這種又簡(jiǎn)單又無(wú)味的事情可以通過(guò)編寫(xiě)腳本實(shí)現(xiàn),使用腳本讓電腦自動(dòng)不停地按回車(chē)十年都沒(méi)問(wèn)題,這大大地解決了人類(lèi)生活的一些瑣碎事情,在電腦上只需要交給腳本就可以完成。
工具類(lèi)的腳本,顧名思義就是運(yùn)用到軟件、系統(tǒng)里的腳本,那么我們這些喜歡玩游戲的人就聊聊游戲類(lèi)的腳本吧!
游戲腳本用哪些語(yǔ)言編程?游戲腳本是通過(guò)一種程序代碼語(yǔ)言編織而成,這些常見(jiàn)的腳本語(yǔ)言有:JavaScript,VBScript,ActionScript,ASP,JSP,PHP,SQL,Perl,Shell,python,Ruby,JavaFX等,隨著手機(jī)游戲逐漸發(fā)展,現(xiàn)在很多程序員都使用Unity編程進(jìn)行腳本化。
游戲腳本對(duì)游戲有哪些影響?游戲腳本對(duì)游戲的影響有好有壞。
好的游戲腳本可以作為輔助玩家更好體驗(yàn)游戲的“工具”,就比如以前《魔獸世界》的腳本插件,大大優(yōu)化了游戲的互動(dòng)體驗(yàn),彌補(bǔ)游戲中的一些功能缺陷,如:一鍵打開(kāi)背包、一鍵拾取掉落物品等輔助功能,讓玩家不會(huì)重復(fù)地做這些無(wú)謂的操作。
壞的腳本可以理解為盜號(hào)的工具,也會(huì)破壞游戲的平衡性,破壞游戲的公平性,破壞游戲公司和玩家的利益,這種腳本對(duì)游戲的影響非常大,所以使用時(shí)也要慎重考慮。
游戲腳本到底是哪些人做的?一般能做游戲腳本的一定會(huì)語(yǔ)言編程,雖然腳本不需要很高深的編程語(yǔ)言能力,但是對(duì)于普通人來(lái)說(shuō)程序的語(yǔ)言簡(jiǎn)直就是天書(shū),根本無(wú)法理解,也無(wú)法制作出來(lái)。
很久以前有一款名為《按鍵精靈》的軟件,它可以讓一些不懂語(yǔ)言的玩家制作自己想需要的簡(jiǎn)單腳本,但是這種腳本只能做一些非常簡(jiǎn)單的動(dòng)作,其實(shí)這種并不是真正的腳本。
所以真正的游戲腳本一般都是程序員和會(huì)一些基礎(chǔ)語(yǔ)言的人編寫(xiě)的。
對(duì)游戲,各有態(tài)度,各有觀點(diǎn),歡迎關(guān)注我一起討論。
聲明原創(chuàng):文章所有內(nèi)容都是本人純手工打字,絕對(duì)本人原創(chuàng)。
以上就是關(guān)于什么編程語(yǔ)言適合生存游戲和為什么Java不適合游戲開(kāi)發(fā)的相關(guān)問(wèn)題解答,希望對(duì)你有所幫助。