如何編程制作游戲教程卡,編程貓?jiān)趺淳幊逃螒颍?/h3>
編程貓打開(kāi)計(jì)算機(jī),打開(kāi)編輯編程程序,然后再編程程序里面編程游戲,這樣游戲可以去玩了
新手學(xué)習(xí)哪種比較易學(xué)的編程?
在手機(jī)游戲流行的當(dāng)下,各類(lèi)手游層出不窮,占據(jù)中國(guó)流量的半壁江山,各個(gè)游戲公司在手游方面的競(jìng)爭(zhēng)也越發(fā)激烈,急缺游戲開(kāi)發(fā)人員,對(duì)開(kāi)發(fā)人員的需求也越來(lái)越高。如果你也想自己制作手游,做起游戲開(kāi)發(fā)的工作,那么學(xué)習(xí)Java將會(huì)是你不二的選擇!
Java是目前中國(guó)手機(jī)軟件開(kāi)發(fā)行業(yè)的主流語(yǔ)言之一,也是學(xué)習(xí)的人數(shù)最多的,介于目前中國(guó)流行的基本都是android系統(tǒng),所以手機(jī)游戲的開(kāi)發(fā)也需要在android的平臺(tái)下開(kāi)發(fā)。你可以朝這方面學(xué)習(xí),不論你是自學(xué)還是找培訓(xùn)班,學(xué)成后是有很大一片前景的。
學(xué)習(xí)手游制作的大致方向
Android學(xué)習(xí)方向的技能:
1、需要 javaLogic 也就是java的基本邏輯,牢固的Java基礎(chǔ)
2、扎實(shí)的Linux基礎(chǔ)知識(shí)
3、數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)
4、網(wǎng)絡(luò)協(xié)議
游戲方面:
1、精美的圖片、華麗的效果自然離不開(kāi)flash 圖片處理之類(lèi)的技術(shù)
2、搞懂游戲算法,比如你制作一款貪吃蛇的手游,要知道怎么讓蛇前進(jìn),怎么才算吃了食物變大。
3、進(jìn)修 java與游戲設(shè)計(jì),必要的話學(xué)點(diǎn)3D設(shè)計(jì)或美術(shù)設(shè)計(jì)。
設(shè)計(jì)模式:
1、在Android系統(tǒng)的框架層當(dāng)中,使用了大量的設(shè)計(jì)模式,如果沒(méi)有這個(gè)方面的知識(shí),對(duì)于Android的理解就會(huì)大打折扣。設(shè)計(jì)模式種類(lèi)之多,全部掌握是不現(xiàn)實(shí)的,必須首先掌握面向?qū)ο蟮幕A(chǔ)設(shè)計(jì)原則。
2、掌握面向?qū)ο蟮幕A(chǔ)設(shè)計(jì)原則的書(shū)籍有:
① 《Effective Java》
② 《敏捷軟件開(kāi)發(fā):原則、模式與實(shí)踐》
服務(wù)器端開(kāi)發(fā)知識(shí):
1、Java EE
2、PHP,這是另外一門(mén)語(yǔ)言,但在我們學(xué)習(xí)Java的同時(shí)學(xué)習(xí),有點(diǎn)得不償失,是否學(xué)習(xí)看你自己)
3、.NET與JavaEE差不多,只不過(guò)需要額外掌握C#,比較麻煩。
4、ruby on rails,簡(jiǎn)潔、優(yōu)雅,幾行代碼就可實(shí)現(xiàn)復(fù)雜的功能,不過(guò)要有Ruby語(yǔ)言知識(shí)基礎(chǔ)。
這些都是Android應(yīng)用程序需的服務(wù)器端支持,掌握這類(lèi)只是還是有必要的,只不過(guò)關(guān)于服務(wù)器端技術(shù)的種類(lèi)實(shí)在太多,這邊就列出四個(gè),不過(guò)既然你是學(xué)的Java,還是建議學(xué)習(xí)JavaEE的知識(shí)。
Android開(kāi)發(fā)的書(shū)籍選擇:
① 《精通Android2》
② 《 Android2高級(jí)編程》
兩本書(shū)對(duì)安卓開(kāi)發(fā)的講解都是非常細(xì)致,建議結(jié)合SDK看。
游戲一般用什么編程語(yǔ)言開(kāi)發(fā)?
游戲本身會(huì)運(yùn)行在不同的平臺(tái),而平臺(tái)也影響了使用的語(yǔ)言。平臺(tái)主要有2大類(lèi),PC(也就是常用的電腦)和手機(jī)。它們上面都可以使用網(wǎng)頁(yè)來(lái)運(yùn)行游戲,所以額外我們把網(wǎng)頁(yè)瀏覽器上面跑的叫WEB端。針對(duì)上面的3種平臺(tái)類(lèi)型。我們來(lái)聊一聊這些平臺(tái)上常見(jiàn)的游戲是用什么開(kāi)發(fā)的。
PC端。大部分的游戲是C/C++開(kāi)發(fā)的。這主要是因?yàn)槲覀兪褂玫牟僮飨到y(tǒng)如window,mac的底層都是c。使用C/C++可以極大的發(fā)揮性能上面的優(yōu)勢(shì)。比如下面這個(gè)NBA2K18就是用C/C++為主開(kāi)發(fā)的。
手機(jī)端。手機(jī)端的游戲我們稱為手游。手機(jī)上面的操作系統(tǒng)主要是ios與android,也就是蘋(píng)果和安卓系統(tǒng)。在之前,android上面的游戲以java開(kāi)發(fā)居多。這是因?yàn)閍ndroid系統(tǒng)本身就是以java開(kāi)發(fā)為主。ios上面的游戲以object c開(kāi)發(fā)居多,這也是因?yàn)橄到y(tǒng)本身的緣故。最近ios又出來(lái)swift語(yǔ)言。但是隨著技術(shù)的發(fā)展,程序員們發(fā)現(xiàn)一款游戲要部署到各個(gè)平臺(tái)的成本太高了。所以現(xiàn)在主流的技術(shù)是使用跨平臺(tái)的游戲引擎開(kāi)發(fā),然后發(fā)布到不同的平臺(tái)。所以,語(yǔ)言的選擇從對(duì)平臺(tái)的依賴變成了對(duì)游戲引擎的依賴。那我們就要看看主流的游戲引擎有哪些?主流的游戲引擎有:unity,cocos,unreal等。unity采用的是C#語(yǔ)言為主。cocos下面以C++、lua、js等開(kāi)發(fā)語(yǔ)言。unreal主要是以C++為主。從上面這些中你會(huì)發(fā)現(xiàn)語(yǔ)言有很多,使用的也很多。在商業(yè)項(xiàng)目以及目前主流技術(shù)中,大部分高水準(zhǔn)的游戲是以C++結(jié)合lua來(lái)開(kāi)發(fā)的。C++負(fù)責(zé)處理高性能的部分,lua處理邏輯部分來(lái)加快開(kāi)發(fā)速度。即使是使用unity引擎,大部分產(chǎn)商也會(huì)選擇C#結(jié)合lua的方式來(lái)開(kāi)發(fā)。C#負(fù)責(zé)核心部分,lua處理邏輯部分。
再聊一下WEB端。WEB端以前是以flash為主,常見(jiàn)的就是4399的很多小游戲,都是flash為主。WEB端主要是一個(gè)html與js的解釋器。目前WEB開(kāi)發(fā)國(guó)內(nèi)主要是3大引擎:白鷺、laya以及cocos-js。它們的主要開(kāi)發(fā)語(yǔ)言為typescript,這主要是因?yàn)閠ypescript可以提供非常快的開(kāi)發(fā)速度(就像lua一樣),同時(shí)它還具備提前暴露問(wèn)題的能力。
實(shí)際上上面的部分主要聊的是游戲客戶端。在游戲領(lǐng)域,實(shí)際上分為服務(wù)端和客戶端。客戶端指對(duì)外玩家可以見(jiàn)到的畫(huà)面表現(xiàn)等。服務(wù)端是運(yùn)行在產(chǎn)商自己的服務(wù)器上的,支持玩家之間互相可見(jiàn),同步,聊天等各種邏輯。對(duì)于服務(wù)端的語(yǔ)言,目前有C++結(jié)合lua以及C#、java、php等。這幾種都很常用,主流的大的游戲依然是C++為主。中小型的游戲各種都會(huì)用到。php常用于對(duì)網(wǎng)絡(luò)需求很低的游戲的做簡(jiǎn)單的數(shù)據(jù)處理。
上面的主要是一些理論,下面我們來(lái)實(shí)戰(zhàn)幾個(gè)問(wèn)題,一會(huì)我們?cè)賮?lái)總結(jié)。
1. 王者榮耀是用什么開(kāi)發(fā)的?王者榮耀使用的是unity引擎,而這種全民級(jí)別的游戲是非常注重性能的。所以它采用的是C++結(jié)合C#。核心用C++,邏輯用C#。為什么不是我們前面說(shuō)的C#結(jié)合lua呢?因?yàn)轵v訊有這個(gè)技術(shù)實(shí)力,所以他們整體使用了更有性能優(yōu)勢(shì)的語(yǔ)言開(kāi)發(fā)。
2. 微信里面的小游戲是用什么開(kāi)發(fā)的?小游戲本質(zhì)上是個(gè)WEB的執(zhí)行環(huán)境。所以它上面的很多游戲都是typescript或者js開(kāi)發(fā)的。之所以typescript還沒(méi)有普及,是因?yàn)樗纳鐓^(qū)不夠活躍。
3.怎么猜測(cè)一款游戲是什么語(yǔ)言開(kāi)發(fā)的?先上網(wǎng)搜索它的開(kāi)發(fā)引擎,如果搜索到了就看看它對(duì)性能是否要求高,來(lái)推導(dǎo)它的使用語(yǔ)言。如果搜索不到,那很可能是自研引擎。自研引擎大部分都是C++實(shí)現(xiàn)的。
最后總結(jié)下。目前大部分國(guó)內(nèi)的游戲以C++/C#結(jié)合lua實(shí)現(xiàn)為主,隨著小游戲的開(kāi)始,催生出一些js/typescript開(kāi)發(fā)的游戲。為什么是以C++結(jié)合lua會(huì)是實(shí)現(xiàn)為主呢,是因?yàn)楝F(xiàn)在網(wǎng)游最賺錢(qián)。一款游戲月流水過(guò)千萬(wàn)甚至過(guò)億催生了這個(gè)產(chǎn)業(yè)。這個(gè)產(chǎn)業(yè)注重2點(diǎn):性能穩(wěn)定,所以是C++。可以各種修改,各種支出活動(dòng),所以是lua。C++性能非常高,騰訊內(nèi)部大部分代碼其實(shí)都是C++的。lua是門(mén)腳本語(yǔ)言,招人門(mén)檻很低,也容易學(xué)習(xí)。所以,很多語(yǔ)言實(shí)際上是因?yàn)榇蟓h(huán)境的影響而被選中的。另外一方面,服務(wù)器也可以采用C++結(jié)合lua開(kāi)發(fā),這樣的話就形成了雙端(服務(wù)端和客戶端)都使用相同語(yǔ)言的高速開(kāi)發(fā)模式。
我猜想題主是想選擇一種語(yǔ)言學(xué)習(xí)。首先題主要看下自己未來(lái)的方向。是想做大項(xiàng)目還是做小項(xiàng)目。如果是希望做大項(xiàng)目,目前無(wú)疑推薦的是C++和lua。如果是小游戲之類(lèi)的,推薦的是typescript。未來(lái)的一個(gè)趨勢(shì)我大膽預(yù)測(cè)可能是C++結(jié)合typescript。我了解到的一些技術(shù)大牛已經(jīng)開(kāi)始這樣實(shí)踐了。推薦的lua語(yǔ)言開(kāi)發(fā)書(shū)籍如下:
推薦的C++書(shū)籍如下:
typescript暫時(shí)沒(méi)有合適的書(shū)籍供閱讀,主要以typescript的官方文檔為主。
小游戲類(lèi)的開(kāi)發(fā)書(shū)籍推薦如下:
大的游戲?qū)嶋H上需要大量的學(xué)習(xí)和知識(shí)積累。遠(yuǎn)遠(yuǎn)不是幾本書(shū)能完全吃透的。這邊還是推薦一本unity3的引擎的書(shū)來(lái)提高下入門(mén)的興趣:
特別提醒下:基于目前互聯(lián)網(wǎng)的發(fā)展速度,讀書(shū)已經(jīng)不是最快的獲取知識(shí)的途徑了。所以推薦的是優(yōu)先以互聯(lián)網(wǎng)的內(nèi)容來(lái)學(xué)習(xí),找個(gè)引擎玩一玩。像玩玩具一樣的學(xué)習(xí)編程是最快樂(lè)的。之后再努力進(jìn)入一線的研發(fā)團(tuán)隊(duì)歷練,這樣成長(zhǎng)最快。紙質(zhì)的書(shū)籍落后于實(shí)際的技術(shù)3-5年以上。
作者背景:前迅雷員工/前游戲公司雙端主程
以上就是關(guān)于如何編程制作游戲教程卡和編程貓?jiān)趺淳幊逃螒虻南嚓P(guān)問(wèn)題解答,希望對(duì)你有所幫助。