谈谈我这几年的C++学习之路
樓主學(xué)習(xí)編程有兩年了,決定向游戲發(fā)展大概就是半年前了,在這里總結(jié)一下游戲方面的學(xué)習(xí)經(jīng)歷過,給初學(xué)的朋友們參考下,也順便參加下CSDN的讀書活動。
PS:本來樓主打算游戲的方式總結(jié)一下自己近兩年的來的游戲方面的學(xué)習(xí)狀況的,但是由于腦細胞死光了,到了后面顯得很混亂,不幸看到這篇文章的同志們請勉強一下。
完全開源的C++開發(fā)的聊天軟件
登陸:2011年的9月,在XX大學(xué)軟件學(xué)院注冊了個ID,開始了游戲之路。
0~5級
1.譚浩強版《C語言程序設(shè)計》? 低級小怪?掉落小刀
這貨長的就是下面這樣
對于這貨,怎么說呢,盡管對它的貶低要遠遠多于對它的褒揚,但是它的確是樓主編程入門的第一本書。各個高等院校計算機軟件專業(yè)C語言課程基本都選用的這本書,不管喜歡也好,不喜歡也好,高等學(xué)校出身的應(yīng)該都是學(xué)習(xí)過這本書的,沒辦法,誰讓它就堵在了大家的出生點附近呢。在各個專業(yè)論壇我們看到的都是建議不要學(xué)習(xí)這本書,百度C語言貼吧里甚至在置頂帖里明確的不建議使用譚浩強的書,給出的理由一般都是概念不準確,有一些錯誤,只給出了最基本的使用方法,但是忽略了很多的東西。但是這本書的厚度在那里,它就是一本入門書,樓主覺得還是很適合初學(xué)編程的同學(xué)。
?
2.《C Primer Plus》??? 低級小怪???? 掉落長劍
比較厚的一本書,有600多頁吧。大一的時候沒事干,就把這本書都看完了,講解的不能再詳細了,看了這本書,也確實知道了譚書少講了很多東西,導(dǎo)致對很多東西理解都不透徹,比如緩沖區(qū)等,這本書還是建議初學(xué)的朋友看看,但是缺點就是太厚。
?http://blog.csdn.net/i_like_cpp
KO這兩個,就具備基本的戰(zhàn)斗能力啦,就可以打造自己喜歡的東東了,在這個階段,樓主整了編程新手必備的貪吃蛇和掃雷,沒寫過貪吃蛇,你好意思說你學(xué)過編程?嗯哼。下圖就是當年剛學(xué)完譚浩強的書自己做出的丑爆了的貪吃蛇和掃雷啦。
?
5~10級
3.《C和指針》???? 精英小怪???? ??經(jīng)驗多多
這本書樓主全部看完了,特別推薦學(xué)C的朋友們看,由于作者考慮到了沒有編程基礎(chǔ)的讀者,所以雖然標題為指針,但是仍讓把C語言從語法開始一點點都講解了一遍,只不過沒有《C Primer Plus》那么詳細,畢竟它的字數(shù)只有上本書的1/3不到吧,不夠濃縮的都是精華。特別一提的是課后的習(xí)題非常不錯,《C Primer Plus》的課后習(xí)題都是很基礎(chǔ)的東西,但是《C和指針》的課后習(xí)題有一定難度,而且趣味性很足,對初學(xué)者吸引力非常大,并且給出了詳細的解答。
?
4《C專家編程》?? 小怪Boss??? 打完可以直接升級了
很經(jīng)典的一本書,但是難度有點大,誰讓它是Boss呢,肯定不能和小怪一個難度哈。即使到現(xiàn)在樓主都沒有完全看完整本書,大概還有兩章沒看,因為感覺看起來很頭疼。樓主看書的原則是如果感覺看不懂就會放下,過段時間再說。這本書在近一年的時間內(nèi)斷斷續(xù)續(xù)的看了大部分章節(jié),每隔一段時間都會拿出來看一次,每一次都覺得經(jīng)驗大漲不少。
?
干掉了《C和指針》后,樓主初略的了解了一下Windows程序設(shè)計和MFC,就是最基礎(chǔ)的那一點,猶記得當年學(xué)會用MFC貼圖的欣喜若狂啊,瞬間感覺自己可以做出真正的游戲啦
下圖就是當年自己做的游戲,全屏的,RPG,因為很喜歡仙劍,就仿了仙劍的風(fēng)格,哈哈。現(xiàn)在看那時候的代碼簡直不忍直視,從來沒有寫過長程序,完全是一點點累起來的,大概寫了1700行純C風(fēng)格的程序,沒有一個類,全部寫在一起,現(xiàn)在好佩服自己當時理清楚了那么復(fù)雜的邏輯,呵呵。不過自己琢磨出了背景移動,動畫的實現(xiàn)和游戲中插入視頻,雖然很簡單的東西,但是現(xiàn)在想起來仍然感到高興。
?
《C++ Primer》???NPC? 隨時對話
由于最開始自己嘗試學(xué)習(xí)的是PC游戲,C++是必學(xué)的,所以就買了這本書。這本書應(yīng)該算是學(xué)C++最權(quán)威的一本書了吧,但是實在是太厚了,所以雖然買了很久了,但是樓主一直沒有看完,看了幾章之后我就決定放下,去找了本很薄的C++的書看了一遍,對C++了解了基礎(chǔ)之后,就在實踐中學(xué)習(xí)它,而把這本書當做字典來用,因為現(xiàn)在自己已經(jīng)沒有耐心去看一本厚達750頁的講語言的書籍了。
?
?
完成上面這些,樓主就達到了轉(zhuǎn)職的條件啦
10~100級
數(shù)據(jù)結(jié)構(gòu)? ?終極BossA
算法導(dǎo)論?? 終極BossB
這兩貨聯(lián)系的太緊密了,經(jīng)常都是成對出現(xiàn)的,而且難度很大,要死很多次都不一定打得過的那種,不過感覺這兩貨是可以慢慢處理的,不必急于一時,完全可以每天磨它們一點血,哈哈。這兩本書樓主學(xué)的并不好,只是了解基本的東西,在以后還是打算再好好學(xué)習(xí)一遍。這兩本書是最經(jīng)典的書了,沒有之一。目前只能說這兩本書養(yǎng)成了樓主基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu)和算法素養(yǎng),當做游戲需要學(xué)習(xí)新算法的時候,也就比較輕松一點了。
?
在20~30級的時候,也就是半年前樓主轉(zhuǎn)向了3D
《DirectX 9.03D游戲開發(fā)編程基礎(chǔ)》 中級小怪
這本書就是傳說中的龍書了,幾乎學(xué)3D的人都會推薦這本書入門吧。當初要學(xué)3D的時候第一時刻入手了這本書。看完這本書后,樓主的感受就是它的確是一本入門書,講述了最基本的3D東西,但是看完它是絕對不可能做出一個游戲的Demo,頂多能整出一個3D場景漫游的程序,但是這離我們想做出3D游戲的夢想還是差得太遠。這本書講述了3D的一些基本概念,但是很蛋疼的沒有講解動畫,很是遺憾,但是看在它只有300多頁,而且是小本書的情況上,它可以說是一本非常不錯的書!即使不學(xué)3D,我覺得也是可以看看這本書,因為書不厚,但是可以對3D有一些基礎(chǔ)的了解。另外,這本書的作者考慮到了初學(xué)者的心情,在每一節(jié)之后都可以讓大家實現(xiàn)一個小小的效果,讓大家有動力繼續(xù)學(xué)習(xí)下去,這點很不錯。
當然,由于它是一本入門書,對于3D的原理什么的沒有講解,比如投影變換和取景變換,視口變換的公式推導(dǎo)都省略了,這一點對于刨根問底的同學(xué)來說有點不足。
?
《DirectX ?3D游戲編程使用教程》鄭阿奇主編?中級小怪??
這本書也是針對于9.0版本的,同時它是一本國產(chǎn)書。其實現(xiàn)在的3D教材基本都是把DirectX SDK文檔給抄了一遍或者翻譯了一遍而已,這本書相對于其他書來說要好很多,事實上在我看來,它比龍書要強很多,而且要通俗很多。首先它講解的內(nèi)容比龍書要多很多,多講了輸入控制接口DirectInput,球形天空,碰撞檢測,骨骼動畫,實時陰影,廣告牌技術(shù),LOD地形,音頻處理,聯(lián)網(wǎng)控制DirectPlay等很多東西,同時也要比龍書詳細很多,非常適合初學(xué)者。有時候樓主覺得龍書看起來不是那么好理解的地方,看這本書會覺得講的很清楚,所以學(xué)習(xí)DirectX9.0c的朋友們,更建議學(xué)習(xí)這本書,但是后來由于感覺3D是在是個大坑,加上大二課程太緊張,這本書后半部分沒讀完,但是前半部分很贊。
?
3D還有一些雜七雜八的書,樓主都只看了其中一小部分,就不寫出來了。
?
到了30級,樓主發(fā)現(xiàn),3D真的是個巨坑啊,入行需謹慎,對于個人來說真的是太困難了,想完成一個游戲demo都不是那么容易的事情,所以到現(xiàn)在樓主也只實現(xiàn)了3D場景漫游的那種簡單程序。
?
其實樓主看的書真心不多,雖然樓主買了很多書,但是很多其實都沒翻開過。。。。。。樓主更喜歡去CSDN這種社區(qū)看看大家寫的博客,學(xué)習(xí)大家分享的知識。對了還有一本書,對游戲感興趣的朋友一定要讀一下,就是云風(fēng)大神的
《游戲之旅—我的編程感悟》 大補品 ?滿藍滿血
?
這本書講了一些游戲方面的技術(shù),但是很多都已經(jīng)過時了,畢竟它是云風(fēng)大神十年前寫的書,但是正如書名所言,書側(cè)重的是編程感悟,書中包含了很多云風(fēng)對游戲的思考和認識,寫的很深刻,非常推薦大家讀一下
?
在兩個月前,樓主覺得3D比較困難,就把它作為業(yè)余愛好,慢慢研究。決定先走向2D之路,樓主花了十天時間整了第一個簡單的ARPG游戲,寫了2150行代碼,就是下面這貨,這一次樓主感覺代碼風(fēng)格組織好多了,至少樓主會分層次了,寫了地圖類,人物類,動畫類,管理類等等大大小小十幾個類,感覺還是像那么回事了,雖然樓主從來沒有見過一個完整的游戲架構(gòu),不知道真正的游戲是怎么架構(gòu)的。
?
在近一個月前,樓主偶然發(fā)現(xiàn)了cocos2d-x這貨可以滿足樓主不學(xué)Java而寫Android游戲的愿望,于是學(xué)習(xí)了一段時間,這也是樓主第一次使用傳說中的游戲引擎,在前幾天弄出了第一個Android游戲,Hi,我在這里
?
嗯,樓主的經(jīng)歷就是這樣,接觸編程到現(xiàn)在已經(jīng)接近兩年了,樓主目前仍然是一個初學(xué)者。馬上就開學(xué)了,樓主就要大三了。在大二干了雜七雜八很多種事情之后終于確定了要做游戲,期待著大三一年可以在游戲開發(fā)上學(xué)到更多的東西,至少做出一款出色的游戲!
總結(jié)
以上是生活随笔為你收集整理的谈谈我这几年的C++学习之路的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 无聊说说 strong VS weak
- 下一篇: 可是笑声太响了的64391111