作者:趙雅君
來(lái)源:知乎
主要是要?jiǎng)邮志ビ谩=ㄗh是C++學(xué)一下遣总,不用學(xué)的很深入,然后數(shù)據(jù)結(jié)構(gòu)看一下轨功,看到樹(shù)就可以了旭斥,樹(shù)和圖可以留到以后看,之前的鏈表堆棧隊(duì)列都看掉古涧,爭(zhēng)取自己寫(xiě)出來(lái)垂券。然后學(xué)下SDL,這個(gè)包很容易學(xué)蒿褂,看網(wǎng)上的教程幾天就學(xué)會(huì)了圆米,然后接下來(lái)就是從最傻逼的游戲開(kāi)始寫(xiě)卒暂。我的過(guò)程是貪吃蛇-->乒乓-->打磚塊啄栓,現(xiàn)在忙了沒(méi)寫(xiě)下去了,都快忘記了也祠,之后規(guī)劃的路徑是Galaxia-->警察抓小偷-->簡(jiǎn)單的2d scroll游戲-->簡(jiǎn)單的2d rpg引擎昙楚,最終目標(biāo)是看懂博德之門的那個(gè)開(kāi)源引擎,自己寫(xiě)2d RPG诈嘿,因?yàn)槲覍?duì)三維的興趣不大所以就不準(zhǔn)備學(xué)堪旧。
其實(shí)這里頭都是有學(xué)習(xí)點(diǎn)的:貪吃蛇是練手,順便學(xué)習(xí)簡(jiǎn)單的動(dòng)畫(huà)奖亚;乒乓是學(xué)最簡(jiǎn)單的碰撞檢測(cè)+物理淳梦;打磚塊是學(xué)稍微精細(xì)一點(diǎn)的碰撞檢測(cè)+第一個(gè)商業(yè)游戲(這玩意寫(xiě)得好的確可以賣,但是我們的目的就是練手)昔字;Galaxia是學(xué)習(xí)簡(jiǎn)單的AI和Sprite表爆袍,這是第一個(gè)Sprite數(shù)量比較大的游戲首繁;警察抓小偷是學(xué)習(xí)更復(fù)雜一點(diǎn)的AI,和簡(jiǎn)單的關(guān)卡編輯器陨囊;2d scroll游戲就是學(xué)習(xí)scroll的弦疮;簡(jiǎn)單的2d rpg引擎,這里我的規(guī)劃是類似創(chuàng)世紀(jì)3這樣的引擎就足夠了蜘醋,這里能學(xué)到的東西就很多了胁塞,但是最主要的是,這是第一次我要做一個(gè)完整的游戲引擎压语,以及所有的工具啸罢,包括更復(fù)雜的關(guān)卡編輯器、試驗(yàn)一下簡(jiǎn)單的腳本(物品掉落无蜂,比如說(shuō))伺糠。
推薦幾個(gè)鏈接,我覺(jué)得完全足夠了斥季。
Lazy Foo' Productions(SDL + C++的教程训桶,作者連怎么配置環(huán)境都手把手的交給我們了,每天學(xué)個(gè)兩節(jié)很快就下來(lái)了酣倾,等學(xué)完了基本上我上頭那個(gè)列表也寫(xiě)完了)
2D Game Programming Tutorials with SDL(同樣是SDL+C++的教程舵揭,但是這里頭有好幾個(gè)游戲的源代碼,開(kāi)始寫(xiě)游戲的話躁锡,C++學(xué)好了午绳,然后寫(xiě)一個(gè)月游戲應(yīng)該就能看懂這里所有的源代碼了,好處是他上來(lái)就告訴你游戲引擎要有怎么樣的架構(gòu))
最后看下entity driven engine的知識(shí)吧映之,如果你要寫(xiě)比較復(fù)雜的游戲的話拦焚。當(dāng)然如果要寫(xiě)3d的話要看的就更多了,我的建議其實(shí)也很簡(jiǎn)單杠输,就是比照著游戲發(fā)展史來(lái)赎败,比如說(shuō)你可以先上Wolf3d這樣的游戲,當(dāng)然不是比照它的源代碼蠢甲,而是實(shí)現(xiàn)類似的功能僵刮。
C++的教程就不給了,其實(shí)隨便挑本英文經(jīng)典的教程鹦牛,不用看完搞糕,看到面向?qū)ο螅览^承大概是個(gè)什么樣子曼追,就成了窍仰。細(xì)節(jié)部分慢慢追究,總體來(lái)說(shuō)我覺(jué)得每天花五六個(gè)小時(shí)(真心不多礼殊,寫(xiě)程序很容易沉浸在里頭的驹吮,五六個(gè)小時(shí)是為了保證生活質(zhì)量鲫忍,我去年夏天自學(xué)的時(shí)候往往一天十個(gè)小時(shí))看一個(gè)月絕對(duì)就看完了,然后看數(shù)據(jù)結(jié)構(gòu)钥屈。為什么看數(shù)據(jù)結(jié)構(gòu)呢悟民,因?yàn)榈谝贿@是游戲編程里頭很重要的一部分,數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)的不好將來(lái)你會(huì)呵呵呵的篷就,第二射亏,你之前學(xué)C++恐怕沒(méi)寫(xiě)過(guò)什么正經(jīng)的代碼,學(xué)數(shù)據(jù)結(jié)構(gòu)可以大量的練習(xí)算法竭业,而且最主要的智润,熟悉常用的數(shù)據(jù)結(jié)構(gòu)。我覺(jué)得學(xué)到樹(shù)就夠了未辆,最多把樹(shù)學(xué)完就足夠了窟绷,這也就是一個(gè)月的時(shí)間最多了。最后要注意咐柜,從一開(kāi)始就要寫(xiě)比較專業(yè)的代碼兼蜈,這個(gè)你去網(wǎng)上搜索下就好了,包括一些書(shū)上可能不會(huì)說(shuō)到的東西拙友,比如說(shuō)最新版C++里頭我記得有智能指針为狸。我C++其實(shí)都是自學(xué)的,所以也不知道是不是有什么庫(kù)要學(xué)遗契,蠻多流行的庫(kù)但是我不知道游戲編程是否要用到辐棒,你還是去問(wèn)下比較好。
接下來(lái)就是大量的寫(xiě)游戲牍蜂。寫(xiě)游戲要注意了漾根,從一開(kāi)始就要搞明白引擎的構(gòu)架,否則將來(lái)要吃虧鲫竞。我上頭給的兩個(gè)網(wǎng)站都是挺好的辐怕,教給你簡(jiǎn)單的架構(gòu),但是最好找個(gè)業(yè)內(nèi)的人問(wèn)一下贡茅,因?yàn)閮?nèi)容有些老了秘蛇,而且如果你志在三維游戲的話其做,一開(kāi)始有人推薦的那本游戲引擎架構(gòu)我覺(jué)得蠻好的顶考,雖然我看不懂但是翻了下覺(jué)得看完應(yīng)該足夠了。
然后就沒(méi)啥了吧妖泄,反正就是慢慢寫(xiě)驹沿,也別著急。如果有機(jī)會(huì)去業(yè)內(nèi)肯定要去的蹈胡,因?yàn)槟軐W(xué)到很多渊季。但是怎么說(shuō)呢朋蔫,如果你和我一樣不想寫(xiě)大型的三維游戲(二維角色扮演游戲其實(shí)也很大型,不過(guò)相對(duì)三維來(lái)說(shuō)還是容易點(diǎn))却汉,那么靠網(wǎng)上問(wèn)人也差不多了驯妄。但是有機(jī)會(huì)進(jìn)去肯定要去一下的,還能賺錢合砂。如果去不了公司青扔,就多看看源代碼,網(wǎng)上實(shí)在是太多了翩伪,看看行家是怎么寫(xiě)的微猖,同一個(gè)游戲同一個(gè)功能他為什么這么寫(xiě),想不明白直接發(fā)信嘛缘屹,搞IT的人一般都挺熱心的凛剥。