c++做游戲開發(fā)徽惋,很好的啟示



想從事游戲開發(fā)型宙,1 年內(nèi)能精通 C++ 嗎距辆,還需要學(xué)習(xí)什么?

【MiloYip的回答(383票)】:

本人大約從20多年前開始學(xué)習(xí)及使用C++踢京,但仍未達(dá)到我認(rèn)為「精通」的階段色建,甚至對于C++11的各種新特性也未掌握哺呜。然而因?yàn)槲沂窃谧x書時(shí)自學(xué)C++的,也是游戲程序員(原問題中提到題主想從事游戲開發(fā))箕戳,覺得也許能提供一點(diǎn)意見供網(wǎng)友參考某残。

首先引一下2010年8月號《程序員》刊登的拙文《C++強(qiáng)大背后》最后一段:

C++學(xué)習(xí)建議

C++缺點(diǎn)之一国撵,是相對許多語言復(fù)雜,而且難學(xué)難精玻墅。許多人說學(xué)習(xí)C語言只需一本K&R《C程序設(shè)計(jì)語言》即可介牙,但C++書籍卻是多不勝數(shù)。我是從C進(jìn)入C++澳厢,皆是靠閱讀自學(xué)环础。在此分享一點(diǎn)學(xué)習(xí)心得。個(gè)人認(rèn)為剩拢,學(xué)習(xí)C++可分為4個(gè)層次:

第一層次线得,C++基礎(chǔ):挑選一本入門書籍,如《C++ Primer》徐伐、《C++大學(xué)教程》贯钩、或Stroustrup撰寫的經(jīng)典《C++程序設(shè)計(jì)語言》或他一年半前的新作《C++程序設(shè)計(jì)原理與實(shí)踐》,而一般C++課程也止于此呵晨,另外《C++ 標(biāo)準(zhǔn)程序庫》《The C++ Standard Library Extensions》可供參考魏保;

第二層次,正確高效地使用C++:此層次開始必須自修摸屠,閱讀過《(More)Effective C++》谓罗、《(More)Exceptional C++》、《Effective STL》《C++編程規(guī)范》等季二,才適宜踏入專業(yè)C++開發(fā)之路檩咱;

第三層次,深入了解C++:關(guān)于全局問題可讀《深入探索C++對象模型》胯舷、《Imperfect C++》刻蚯、《C++沉思錄》《STL源碼剖析》桑嘶,要挑戰(zhàn)智商炊汹,可看關(guān)于模版及模版元編程的書籍如《C++ Templates》《C++設(shè)計(jì)新思維》逃顶、《C++模版元編程》讨便;

第四層次,研究C++:閱讀《C++語言的設(shè)計(jì)和演化》以政、《編程的本質(zhì)》(含STL設(shè)計(jì)背后的數(shù)學(xué)根基)霸褒、C++標(biāo)準(zhǔn)文件《ISO/IEC 14882:2003》C++標(biāo)準(zhǔn)委員會的提案書和報(bào)告書盈蛮、關(guān)于C++的學(xué)術(shù)文獻(xiàn)废菱。

由于我主要是應(yīng)用C++,大約只停留于第二、三個(gè)層次殊轴。然而衰倦,C++只是軟件開發(fā)的一環(huán)而已,單憑語言并不能應(yīng)付業(yè)務(wù)和工程上的問題梳凛。建議讀者不要強(qiáng)求幾年內(nèi)“徹底學(xué)會C++的知識”耿币,到達(dá)第二層左右便從工作實(shí)戰(zhàn)中汲取經(jīng)驗(yàn)梳杏,有興趣才慢慢繼續(xù)學(xué)習(xí)更高層次的知識韧拒。雖然學(xué)習(xí)C++有難度,但也是相當(dāng)有趣且有滿足感的十性。

如果題主認(rèn)為的「精通」是指上述所指的第二層次叛溢,那么我估計(jì)一年全職時(shí)間也未足夠「精通」。首先劲适,閱讀這些書籍本身

也需要不少時(shí)間楷掉,而且對于一般人來說(指除了一些學(xué)習(xí)記憶能力超強(qiáng)的人),很可能需要閱讀幾遍才能記住一些細(xì)節(jié)霞势。另外烹植,閱讀后必須要練習(xí)。除了入門的習(xí)題

外愕贡,還需要做一些工程向的項(xiàng)目草雕,才能了解各種語法、編程范式的使用方法及時(shí)機(jī)固以,理想地建議參與一些開源項(xiàng)目墩虹。然而,學(xué)習(xí)是需要不斷思考并把結(jié)果沉淀憨琳,方法

包括與朋友討論诫钓、寫博客、寫知乎答案等篙螟,這些都需要時(shí)間菌湃。

如引文末段所指出,我建議不要把「精通C++」作為一個(gè)一年目標(biāo)遍略,應(yīng)該要把學(xué)習(xí)語言作為一個(gè)持續(xù)的過程惧所,同時(shí)要把語言運(yùn)用在具體的應(yīng)用場合中。

---------------------------------------------------

再討論C++與游戲開發(fā)墅冷。

看到有不少答案討論到有關(guān)C++是否游戲開發(fā)者所必須的技術(shù)纯路。我認(rèn)為,這并不是完全必須的寞忿,但許多游戲開發(fā)項(xiàng)目需要到C++驰唬。以下列舉一些過往曾流行的游戲平臺/類型:

PC單機(jī)游戲(Windows)

PC網(wǎng)絡(luò)游戲(Windows、Linux)

移動平臺游戲(J2ME、Symbian叫编、Palm……)

家用游戲機(jī)游戲(PS1/2/3/4辖佣、XBox、Wii……)

掌上游戲機(jī)游戲(GB搓逾、GBA卷谈、NDS、PSP……)

網(wǎng)頁游戲(HTML霞篡、Flash)

智能移動設(shè)備游戲(iOS世蔗、Android)

我們會發(fā)現(xiàn),除了J2ME和網(wǎng)頁游戲外朗兵,大多數(shù)的平臺都支持(或只支持)原生編程污淋。而原生編程最常用的就是C/C++和匯編。這種現(xiàn)象并不難解譯余掖,再次引用拙文:

應(yīng)否選擇C++

哪些程序適宜使用C++?

C++并非萬能丹寸爆,我按經(jīng)驗(yàn)舉出一些C++的適用時(shí)機(jī)。

C++適合構(gòu)造程序中需求較穩(wěn)定的部分盐欺,需求變化較大的部分可使用腳本語言赁豆;

程序須盡量發(fā)揮硬件的最高性能,且性能瓶頸在于CPU和內(nèi)存冗美;

程序須頻繁地與操作系統(tǒng)或硬件溝通魔种;

程序必須使用C++框架/庫,如大部分游戲引擎(如Unreal/Source)及中間件(如Havok/FMOD)墩衙,雖然有些C++庫提供其他語言的綁定务嫡,但通常原生的API性能最好、最新漆改;

項(xiàng)目中某個(gè)目標(biāo)平臺只提供C++編譯器的支持心铃。

按應(yīng)用領(lǐng)域來說,C++適用于開發(fā)服務(wù)器軟件挫剑、桌面應(yīng)用去扣、游戲、實(shí)時(shí)系統(tǒng)樊破、高性能計(jì)算愉棱、嵌入式系統(tǒng)等。

很大程度上哲戚,游戲──或說游戲引擎奔滑,都是C++非常適合的應(yīng)用時(shí)機(jī)。

一些人認(rèn)為顺少,游戲開發(fā)者使用現(xiàn)成的引擎朋其,就不需要使用C++了王浴。過往,業(yè)界有一個(gè)普遍常識梅猿,就是用C++開發(fā)游戲

引擎氓辣,而游戲引擎提供腳本引擎供編寫游戲邏輯代碼。但這個(gè)觀點(diǎn)被Unreal Engine

4的決策改變袱蚓,UE4放棄了維護(hù)多年且被大量使用的UnrealScript腳本語言钞啸,而改用原生C++作為游戲邏輯編程的語言。此決策背后有多個(gè)原因喇潘,

但這里只想舉出這例子展示C++在游戲開發(fā)中的用途及潮流体斩,具體原因分析就不詳細(xì)展開了。

除了自行研發(fā)游戲引擎需要使用C++响蓉,我們可以看到硕勿,大部分游戲引擎都提供了其C++原代碼(Unity算是例外)哨毁,這讓我們可以

方便調(diào)試游戲

深度剖析枫甲、優(yōu)化游戲的性能

為引擎擴(kuò)展新功能

修改現(xiàn)有引擎以適應(yīng)項(xiàng)目所需

在專業(yè)的游戲開發(fā)中,這些都是很常見的工作任務(wù)扼褪。所以想幻,即使并非自研引擎,并使用腳本語言開發(fā)游戲邏輯话浇,也有很多機(jī)會需要使用C++脏毯。

最后,「還需學(xué)習(xí)什么」是一個(gè)很難簡單回答的問題幔崖,因?yàn)橛螒蜷_發(fā)涉及的知識面很廣食店。建議可參考本人譯作。

【毛星云的回答(248票)】:

強(qiáng)烈反對@kubisoft功利性太強(qiáng)的高票答案赏寇!

這是在把一個(gè)能成為業(yè)界top 1%的頂級游戲開發(fā)技術(shù)大師的黑馬吉嫩,往能傻乎乎地受你們壓榨的IT民工的火坑里推,你造嗎嗅定?

這讓我想起了喬幫主關(guān)于“賣糖水”的那句經(jīng)典話語自娩,而我們的版本是:

你是愿意就這樣學(xué)點(diǎn)皮毛混口飯吃隨波逐流,還是成為真正的游戲開發(fā)業(yè)界頂尖技術(shù)大牛渠退,推動業(yè)界的發(fā)展忙迁,去改變世界?

關(guān)于上面這句話的兩個(gè)抉擇碎乃,我們來做個(gè)選擇題姊扔。

A.如果你是想從事游戲行業(yè)當(dāng)個(gè)二流的民工打打雜一輩子就這樣過去,請去看@kubisoft兄有些對現(xiàn)實(shí)妥協(xié)之前排名第一的答案梅誓。(不帶人身攻擊的恰梢,只是對事不對人而已呢) 這種太依賴IDE和游戲引擎所謂速成方式晨川,到最后只能是二流的民工,打雜的删豺,混飯吃的共虑。知道其然,不知道其所以然呀页。遇到真正的專業(yè)性問題就卡殼了妈拌,比如如何優(yōu)化渲染質(zhì)量之類的問題∨畹或者開發(fā)的項(xiàng)目就是那種2D的小兒科尘分,或者山寨跟風(fēng)趕進(jìn)度趕上市的快餐游戲,而不是畫質(zhì)精美丸氛,設(shè)計(jì)精良培愁,堪稱經(jīng)典,為國產(chǎn)游戲長臉缓窜,推動全球游戲業(yè)界發(fā)展的革命性大作定续。

B.如果你是志向高遠(yuǎn),想制作出改變世界的革命性游戲禾锤,或者推動游戲產(chǎn)業(yè)的發(fā)展私股,成為游戲開發(fā)業(yè)界top 1%的技術(shù)領(lǐng)軍人物。請熟練C++恩掷,請修煉好內(nèi)功倡鲸。@王選易@徐奕成兄的答案是極好的。且正如萌萌的V大@vczh所言黄娘,就算你的志向是開發(fā)crysis這樣的游戲峭状,其實(shí)也只需要用到C++的一小部分就夠了。C++各種范式是發(fā)明來解決所有問題的逼争,游戲只是其中的冰山一角优床,你沒必要精通,沒必要學(xué)會C++的所有部分氮凝。我們這里所說的羔巢,是了解原理,學(xué)C++只是其中的一小部分罩阵,與其說去不斷的學(xué)C++的更多高級特性竿秆,更好的學(xué)習(xí)方向是熟練利用C++配合DirectX或者OpenGL來制作Windows小游戲,對數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)模式有一定的認(rèn)識稿壁,且能夠準(zhǔn)確針對問題選擇你的數(shù)據(jù)結(jié)構(gòu)幽钢,研習(xí)計(jì)算機(jī)圖形學(xué)blablabla的。

(PS:不要輕易用“精通C++“這個(gè)狂妄的詞眼傅是,后文有一些關(guān)于這個(gè)梗的解釋)

正如我之前在自己博客里面所轉(zhuǎn)載的文章《編程巨星的唯一秘訣》中說的:

“對所做的事情的理解越深匪燕,你就會做的越好蕾羊。”

既然題主都提到要走熟練C++帽驯,以后開發(fā)游戲這最正統(tǒng)的技術(shù)道路了龟再,他內(nèi)心渴望的應(yīng)該是志向高遠(yuǎn),做個(gè)強(qiáng)者尼变,而不是去當(dāng)IT民工打雜做技術(shù)含量不高的事情利凑。

即我是不能同意更多@Aaron Luo兄的觀點(diǎn)。

”題主還是學(xué)生嫌术,別用壓榨it民工的想法來教導(dǎo)哀澈!題主可以從cocos2dx和unity3d開始學(xué)游戲開發(fā),但

是度气,如果想一直做編程割按,請別忘了必須同時(shí)修煉c++,

因?yàn)樗梢越o你認(rèn)識到真正的編程,讓你懂得更多計(jì)算機(jī)編程思想磷籍,以后就算不寫c++也可以迅速了解別的語言适荣,別的工具的~而不會變成僅僅依靠IDE工具,

隨便抄抄別人代碼择示,完成山寨程序的It民工束凑。“

也不能同意更多@徐奕成@Floristt兄的觀點(diǎn)栅盲。

@Floristt兄在評論區(qū)說:那些不懂原理只是挑一個(gè)工具熟練掌握使用或許在當(dāng)前游戲市場火熱的背景下也能混得不錯(cuò),但是感覺很快會遇到職業(yè)瓶頸废恋。這對自身而言就是一種風(fēng)險(xiǎn)谈秫。如果一項(xiàng)技能你學(xué)三個(gè)月就能耍通常意味著可以輕易找到一個(gè)人代替你。

@徐奕成兄說: 你學(xué)會這些可以讓你比較容易找到一個(gè)工作鱼鼓,但是幾年之后會碰到你的職業(yè)瓶頸拟烫,要么繼續(xù)學(xué)底層,要么轉(zhuǎn)行迄本。否則公司會毫不猶豫地找人來替代你硕淑。其實(shí)有一句話我很贊同:“程序員如果不學(xué)好底層,將毫無作為嘉赎。C++讓你走向程序員這條路置媳,編譯原理和匯編語言等讓你走得更好,數(shù)學(xué)英語讓你走得更遠(yuǎn)公条∧茨遥”

大方向的話,就如@王選易兄所言靶橱,如果你是圖形程序員寥袭,那么最好的項(xiàng)目就是路捧,自己做一個(gè)游戲引擎如果你是Gameplay Programmer传黄,那么最好的項(xiàng)目就是杰扫,自己做一個(gè)游戲項(xiàng)目。

另外膘掰,@IMAGICE兄在評論區(qū)說到涉波,“還是那個(gè)問題,是選擇偏向游戲(文藝方向炭序,獨(dú)立開發(fā))啤覆,還是想做好技術(shù)(引擎開發(fā),技術(shù)研究惭聂,打工窗声,這個(gè)可能是大部分人的歸路)」几伲”

是時(shí)候引出游戲開發(fā)領(lǐng)域的兩大流派了笨觅,即@伍一峰兄在回答中提出的氣宗與劍宗。

獨(dú)立開發(fā)者和小團(tuán)隊(duì)因?yàn)闀r(shí)間和精力的限制耕腾,大多是以實(shí)現(xiàn)為目的见剩,這也是情有可言,這就不難解釋@kubisoft兄所推崇的以快速實(shí)現(xiàn)為目的扫俺,依賴工具苍苞、引擎和不求甚解的劍宗流派有不少人的追捧。(文藝方向另談)

每個(gè)人切入這個(gè)行業(yè)的方法不盡相同狼纬,能選擇最適合自己的入門方式就是最好羹呵。但是入門后如果想有更好和更長遠(yuǎn)的發(fā)

展,必須開始崇尚氣宗一派疗琉,了解內(nèi)部技術(shù)細(xì)節(jié)冈欢,修煉好內(nèi)功。不要流于形式盈简,浮于表面凑耻,依賴工具,而是要深鉆進(jìn)去柠贤,了解得越深越透徹越好香浩。最好是能自己了解

游戲引擎的底層原理,甚至是寫出自己的游戲引擎來种吸,這樣才是更高的境界(當(dāng)然這只是極少部分的頂尖高手能達(dá)到的境界)弃衍。

總之,劍宗一派適合入門坚俗,這樣有趣镜盯,有成就感岸裙,能快速得到成果,但容易遇到職業(yè)瓶頸速缆,后勁不足降允。氣宗一派注重內(nèi)功,了解原理艺糜,作為稀缺的高水平人才資源剧董,能有更多選擇的權(quán)力,有更長遠(yuǎn)的發(fā)展破停。而且不難理解游戲開發(fā)領(lǐng)域是先有了氣宗才有了劍宗翅楼,且了解原理,內(nèi)功深厚的氣宗境界更高一籌真慢。

能找到自己的合適的方式就是最好毅臊。并不是否定從引擎出發(fā)入門這條便捷之路,其實(shí)我的建議黑界,若決定走修煉技術(shù)為主的

氣宗一派管嬉,先學(xué)點(diǎn)C++,然后配合著C++學(xué)一些底層API(DirectX或OpenGL)朗鸠,能寫一些比較炫酷的三維游戲場景蚯撩,或者說自己實(shí)現(xiàn)一個(gè)小型

的軟引擎,再去真正地接觸引擎烛占,利用引擎做一點(diǎn)有趣的demo或者完整的游戲胎挎,閱讀一些優(yōu)秀開源引擎的源碼(比如

Ogre,irrilicht扰楼,Unreal Engine4

呀癣,cryEngine),甚至自己實(shí)現(xiàn)引擎或者做游戲項(xiàng)目弦赖,這是重視技術(shù)的氣宗流派比較科學(xué)的內(nèi)功修習(xí)方式。

我們都知道浦辨,氣宗和劍宗的爭執(zhí)永遠(yuǎn)不會停歇蹬竖,就像這個(gè)回答下的評論區(qū),永遠(yuǎn)不是一邊倒流酬,而是氣宗劍宗的支持者平分秋色币厕,各有千秋。

我很欣慰的是芽腾,這個(gè)答案寫出來之后旦装,一天之內(nèi)就已經(jīng)超過了當(dāng)時(shí)排名第一的、已經(jīng)在答案中被我@了無數(shù)次的kubisoft兄有些對現(xiàn)實(shí)妥協(xié)摊滔,倚老賣老(不帶人身攻擊呢阴绢,只是對事不對人)的答案店乐。這證明大家的眼睛是雪亮的,內(nèi)心還是不甘心的呻袭,還是希望做個(gè)明白人眨八,做個(gè)強(qiáng)者,知其然并知其所以然,并且希望自己有能力站在更高的山峰,去完成更大的事業(yè)灵再。

(PS:這段貌似才算是比較理性的分析寺鸥,回答一開始寫的有些小憤青了,但的確是肺腑之言锯仪。)

----------------------------------------------------------------------------------------------------------------------------------------

既然提到了小憤青,就另外附一點(diǎn)我在2013-03-25寫的一篇年代久遠(yuǎn)帶些小憤青的拙作中的一些觀點(diǎn):

事實(shí)如此,現(xiàn)在市面上所有畫質(zhì)精美的單機(jī)游戲作品(鬼泣5连舍,上古卷軸5,刺客信條3辱魁,仙劍奇?zhèn)b傳5前傳烟瞧,古劍奇譚

等等……),所有的大型網(wǎng)絡(luò)游戲(Dota2染簇,英雄聯(lián)盟参滴,魔獸世界,龍之谷锻弓,劍靈等等等……)砾赔,所有高性能的三維游戲引擎(虛幻

3,Unity3D青灼,Cry Engine3等等……),以及一些高性能的2D游戲引擎(Cocos2d-x等等)暴心,都是用C++來開發(fā)的。

其實(shí)游戲引擎并沒有那么神秘杂拨,說白了也就是那么回事专普,用類封裝好功能的C++代碼而已。C++寫出來的游戲引擎自然能跨平臺弹沽。Unreal Engine3檀夹、Unity3D、Cocos2d-x等游戲引擎就是絕好的例子策橘。

學(xué)好C++炸渡,你可以親手寫出Unity3D,親手寫出

Cocos2d-X丽已,讓大家都叫你大神蚌堵,大家都用你寫的游戲引擎做游戲,等著你什么時(shí)候心情好了更新一下給引擎加更多功能;而不是只會盲目跟風(fēng)吼畏,今天大家

說Unity3D火督赤,就都去學(xué)Unity3D,明天大家說Cocos2d-x熱門宫仗,就來學(xué)學(xué)Cocos2d-x够挂。你學(xué)游戲引擎,學(xué)的只是人家某引擎作者某

C++大神按心情來定的函數(shù)調(diào)用方式藕夫,學(xué)的只是如何調(diào)用一些別人寫好的一些類孽糖,一些API函數(shù)。這樣在別人規(guī)定給你的一些rule中固步自封毅贮,大家覺得有

技術(shù)含量么办悟?

我們是時(shí)候該該想一想了,為什么現(xiàn)在全球范圍內(nèi)優(yōu)秀的三維引擎滩褥,就是沒有我們國產(chǎn)引擎的影子病蛉。

所以,無論是哪個(gè)平臺瑰煎,Windows也好铺然,iOS也好,Android也罷酒甸,如果你真正想在游戲開發(fā)領(lǐng)域有所作為魄健,混出個(gè)名堂,請學(xué)C++插勤,請學(xué)計(jì)算機(jī)圖形學(xué)沽瘦,請了解計(jì)算機(jī)圖形API(OpenGL或者DirectX),而不是在跟風(fēng)某種“熱門”的游戲引擎的大潮中隨波逐流农尖,在某種移動平臺的游戲開發(fā)中迷信某某引擎析恋,樂不思蜀,固步自封盛卡。

咳助隧,扯遠(yuǎn)了,而且有些小憤青了滑沧,我并沒有歧視其他編程語言的意思喇颁。淺墨只是想表達(dá),無論是哪個(gè)平臺

(Windows嚎货,Play Station,Xbox蔫浆,Android殖属,iOS, WindowsPhone,

WUII)瓦盛,在三維或者高性能游戲開發(fā)領(lǐng)域洗显,確實(shí)就是C++的天下外潜。

】“原文在這里:

【Visual C++】游戲開發(fā)四十九 淺墨DirectX教程十七 三維天空的實(shí)現(xiàn)

----------------------------------------------------------------------------------------------------------------------------------------

2014-6-2更新部分。

答評論區(qū)@李柯

兄的一段話挠唆。關(guān)于站在巨人肩膀上的一些思考处窥。

首先對于這部分, 在這篇回答的評論區(qū)玄组,@invalid s兄的文字是相當(dāng)?shù)纳羁膛c一針見血滔驾,推薦大家讀一讀。

1.我們并不是說支持完全去從頭造輪子俄讹,而是你理解的越深哆致,就可以收放自如,做個(gè)有選擇權(quán)的強(qiáng)者患膛。當(dāng)沒有合適你的

輪子的時(shí)候摊阀,當(dāng)遇到技術(shù)瓶頸的時(shí)候,你自己完全可以制造個(gè)更好的踪蹬,前所未有的輪子胞此,而不是懵在那邊,等待你所謂的巨人們心情好后的施舍跃捣,造一個(gè)合適的輪子

給你用漱牵,或者因?yàn)殚L久以來的太依賴工具而喪失了本來的能力。

我大家所希望的枝缔,是能做一個(gè)真正的明白人布疙,心中有墨水,心中有底氣愿卸,然后無所畏懼灵临,遇到什么瓶頸都不虛。

我們站在巨人的肩膀上的同時(shí)趴荸,不僅僅是靠業(yè)界巨人們寫出來的庫去實(shí)現(xiàn)自己的東西儒溉,而是可以理解與吸收巨人們的思維、技術(shù)和實(shí)現(xiàn)方法发钝。當(dāng)達(dá)到一定境界后顿涣,我們可以當(dāng)下一個(gè)巨人,推動業(yè)界革命酝豪。這大概就是大牛與民工涛碑,強(qiáng)者與弱雞,最外在的區(qū)別與表現(xiàn)形式孵淘。

太依賴所謂的巨人們的肩膀蒲障,太依賴工具,如同井底之蛙,日復(fù)一日地調(diào)用讓你崇拜的大神們寫出來的類庫揉阎,以為只要能做到這樣就天下無敵了庄撮,以為就是軟件行業(yè)的全部了——這大概就是目前,我們國內(nèi)軟件行業(yè)的誤區(qū)所在吧——依賴工具毙籽,浮于表面洞斯。

2.能理解內(nèi)部實(shí)現(xiàn)細(xì)節(jié)肯定是推崇的,這個(gè)看個(gè)人坑赡,或遲或早烙如,但是越早越好。

我寫這個(gè)答案只是希望題主以及看到這個(gè)回答的朋友們能有更長遠(yuǎn)的眼界垮衷,立意更高遠(yuǎn)厅翔,能有更寬的視野,能知道更大的世界搀突,而不是一輩子就這樣炒炒現(xiàn)飯調(diào)用調(diào)用別人寫的函數(shù)窩囊地就過去了刀闷。

人的一生精力有限,作為一個(gè)聰明人仰迁,作為一個(gè)明白人甸昏,入門的時(shí)候什么方式越快越好,但是入門之后呢徐许,如果希望自己有更好更大的發(fā)展施蜜,大方向千萬不要錯(cuò),不要過分依賴拘泥于工具雌隅,浮于表面翻默,一定要跳出那個(gè)圈子,從井里爬出來恰起。

即修械,如果希望自己變得更強(qiáng),不人云亦云隨波逐流检盼,最好的方式或許就是自己去理解細(xì)節(jié)肯污,也并不是咬文嚼字地要自己真正花大工夫花精力去做一款引擎,這個(gè)量力而行吨枉。

人的一生精力有限蹦渣,沒有哪條路哪種方法適用于所有人,但一個(gè)人只要能專注于自己認(rèn)為值得事情貌亭,能自得其樂柬唯,那也是值得尊敬的。

回答 IMAGICE兄的評論:

3.直接用輪子圃庭,并真正做出非常贊的作品出來权逗,那也是值得尊敬的美尸。當(dāng)今游戲引擎的發(fā)展,為我們提供了前所未有的便利斟薇,我們可以合理的利用他,但千萬不能太迷信太依賴他恕酸。

但如果已經(jīng)在某個(gè)領(lǐng)域花了10年甚至更長的時(shí)間堪滨,還沒能有所突破,那就得反省自己蕊温,是不是方法問題了袱箱,是不是方向問題了,是不是之前研習(xí)的時(shí)候义矛,或進(jìn)度太慢发笔,還是走了很多彎路。我們都清楚凉翻,

不是每個(gè)人都能有很好的技術(shù)天賦與底子了讨,當(dāng)然也不是每個(gè)做游戲的人都要去理解和實(shí)現(xiàn)底層,要量力而行制轰,要有所側(cè)重前计,要找到自己最合適的角度。我們只是從長

遠(yuǎn)來看提倡將知識挖深垃杖,讓自己打開眼界男杈,不做井底之蛙,不隨波逐流调俘,讓自己因?yàn)檎镜酶呖吹眠h(yuǎn)伶棒,而有更多更廣選擇的權(quán)利。

技術(shù)與創(chuàng)意彩库,并不矛盾肤无。人生在世,有所為侧巨,有所不為舅锄,游戲開發(fā)亦如此。

----------------------------------------------------------------------------------------------------------------------------------------

以下算是一些關(guān)于C++的附加思考司忱。

【關(guān)于“精通C++”這個(gè)字眼皇忿,請不要濫用】

引用@徐奕成兄的一段話。

徐兄現(xiàn)在大三坦仍,從初一開始學(xué)習(xí)C++鳍烁,對這些有一定的了解,也有一定的發(fā)言權(quán)繁扎。但是他從來不敢說他精通了C++幔荒。

因?yàn)樾煨值闹鞴埽?/p>

15歲開始學(xué)習(xí)C語言糊闽,現(xiàn)在學(xué)習(xí)C++已經(jīng)超過20年。但是他對于技術(shù)非常的謙遜爹梁,抱著學(xué)習(xí)的心態(tài)去學(xué)習(xí)技術(shù)右犹,也沒在我們面前提過他精通C++。即使他已

經(jīng)是國內(nèi)行業(yè)的領(lǐng)軍人物姚垃。

引用@漸修竹兄的一段話念链。

“我也做了兩年c++了,也不敢說精通积糯,我們老大做了至少8年掂墓,也沒敢說精通,我認(rèn)識的很多大神看成,也都沒敢說精通君编。事實(shí)上我認(rèn)識的很多大神都很謙虛,我跟他們學(xué)到了很多川慌,大家的簡歷上也都寫著熟悉c++之類的字眼吃嘿。”

即對于博大精深的C++窘游,業(yè)界的大牛們窮其一生去研習(xí)都不敢言能精通它唠椭。就算是天天去鉆研C++,一年也只能學(xué)個(gè)皮毛而已忍饰。

C++的精通細(xì)節(jié)與思考贪嫂,可參看萌萌的V大@vczh的這篇回答:怎么樣才算是精通 C++?

至于快速入門艾蓝,強(qiáng)烈推薦Essential C++力崇,其為C++業(yè)界入門必讀《C++ Primer》的作者剝?nèi)シ彪s,只講C++核心的一本書赢织。

而后續(xù)的一些亮靴,可以參考這個(gè)豆列中的書單:學(xué)習(xí)C++語言

----------------------------------------------------------------------------------------------------------------------------------------

在結(jié)束回答之前,感謝@洪逸群兄在回答中的at于置,間接地邀請茧吊,讓我知道有這個(gè)討論存在:)

總之,最后的最后八毯,還是那個(gè)抉擇:

你是愿意就這樣學(xué)點(diǎn)皮毛混口飯吃隨波逐流搓侄,還是成為真正的游戲開發(fā)業(yè)界頂尖技術(shù)大牛,推動業(yè)界的發(fā)展话速,去改變世界讶踪?

在二十幾歲這段人生可塑性最強(qiáng)的時(shí)光里,我們應(yīng)該是滿懷信心泊交,志向高遠(yuǎn)乳讥,想讓自己與這個(gè)急功近利柱查、日漸扭曲世界有所不同的吧。

【kubisoft的回答(135票)】:

題主本來問得很糊涂云石,不知道到底是問游戲開發(fā)呢唉工,還是如何學(xué)習(xí)c++。再說一遍結(jié)論吧留晚,游戲開發(fā)和c++的學(xué)習(xí)是

兩個(gè)方向酵紫,做游戲開發(fā)現(xiàn)在基本上不需要學(xué)習(xí)c++。以前做游戲開發(fā)不得不用c++但是現(xiàn)在已經(jīng)越來越少错维,以后還會更少,所以花大力氣去學(xué)c++對以后做游

戲開發(fā)沒有多大幫助橄唬。

有人提到了java, 其實(shí)java又不是用來做游戲的赋焕,也從來不算腳本語言。

在此將c++和c#仰楚、javascript之類的腳本語言做一些簡單的對比吧隆判,我的c++水平很低,遺漏之處難免僧界,歡迎指正侨嘀。

內(nèi)存管理:

c++的代碼容易產(chǎn)生隱藏的野指針等不容易發(fā)覺的內(nèi)存管理問題,而且不一定會爆捂襟,調(diào)試有點(diǎn)困難咬腕。有人覺得這是水平不高的表現(xiàn),心想葬荷,只要成對申請/釋放內(nèi)

存就可以了嘛涨共!其實(shí),我以前也是這么想的宠漩,后來發(fā)現(xiàn)不是這樣......

實(shí)際項(xiàng)目會非常復(fù)雜举反,很多時(shí)候到底誰應(yīng)該擁有這個(gè)對象、誰應(yīng)該負(fù)責(zé)申請誰應(yīng)該負(fù)責(zé)釋放很難界定扒吁,而使用c++就必須做出這樣的界定火鼻,導(dǎo)致有的算法必須繞彎

子,寫不少冗余代碼專門管理內(nèi)存雕崩。

回調(diào)的時(shí)候用的閉包:這一點(diǎn)魁索,用objective

c就比c++方便很多了,回調(diào)的代碼可以跟調(diào)用的代碼緊挨在一起書寫晨逝,而用c++的時(shí)候不得不在類里面另開方法蛾默,寫起來很蛋疼,名字難起還在其次捉貌,參數(shù)傳

輸完全要靠成員變量或者void*, 然后強(qiáng)制類型轉(zhuǎn)換支鸡。這樣也能寫冬念,但是可讀性就差了很多,維護(hù)困難牧挣。

unity給c#提供了協(xié)程急前,用起來跟線程差不多但是不用考慮加鎖解鎖等問題,真心方便瀑构。

幾個(gè)腳本語言大多有map, filter等等函數(shù)式編程的特性裆针,考慮問題更加整體,代碼量會小很多寺晌,也更難出錯(cuò)世吨。

--------------------------

呵呵居然冒出一個(gè)高票長答案,嚇我一跳啊呻征。不喜歡跟別人辯論耘婚,說下去沒完沒了啦,只是看到“倚老賣老”之類的人身

攻擊的字樣還是很不開心吧陆赋。這也就算了沐祷,居然我被說成“壓榨IT民工”,這個(gè)真讓人傷心啊攒岛。我忍住赖临,無視。后面寫的東西灾锯,還是給旁觀者看的吧兢榨,希望能多幫

到一些人。

游戲不僅是技術(shù)挠进,要發(fā)現(xiàn)更大的世界的話要開闊視野的話就不要沉迷于c++的技術(shù)細(xì)節(jié)啊色乾。要做出有創(chuàng)意的與眾不同的游戲,也是要靠快速實(shí)現(xiàn)游戲邏輯然后快速迭代领突,多跟策劃溝通啊暖璧。如何快呢?就要在能夠避開c++的地方盡量避開啊君旦。

c++還是很有用的澎办,比如cocos2d-x目前還是很依賴c++;效率不夠的地方也必須用c++來改寫金砍,以進(jìn)行優(yōu)化局蚀。不過以后隨著硬件性能的提升,c++的應(yīng)用范圍會萎縮很多恕稠,只專注c++的程序員很容易被孤立的琅绅,空間會越來越小。

----------

關(guān)于批評我c++水平的部分不予答復(fù)鹅巍。關(guān)于后面一部分千扶,工程越大越體現(xiàn)出腳本的優(yōu)勢料祠,c++的代碼結(jié)構(gòu)太容易混亂了。

c++更面向機(jī)器澎羞,更考慮運(yùn)行效率髓绽,為了運(yùn)行效率不得不犧牲可讀性,大部分腳本在這方面就強(qiáng)得多妆绞,犧牲了運(yùn)行效率換取了可讀性顺呕。

至于java, java的開發(fā)效率同樣是被人罵得要死的,而且很少有人打算用java做游戲吧括饶,哪個(gè)引擎支持株茶?

-------------------------以下是原答案--------------------

瀉藥。

想做游戲開發(fā)根本就不需要精通c++图焰,根本就是南轅北轍忌卤。

你應(yīng)該挑一個(gè)引擎熟悉起來,3d就用unity楞泼,2d就用cocos2d。unity支持c#和

javascript笤闯,這兩門語言你可以任意學(xué)堕阔,只要能做出自己想要的游戲;cocos2d也是支持javascript和lua颗味,能避開c++就避

開超陆,c++的運(yùn)行效率高而開發(fā)效率極低,學(xué)起來很累用起來更累浦马,你要是專心學(xué)好了c++时呀,作為老板我還真不敢要呢,精通c++可能意味著過于重視運(yùn)行效率

而開發(fā)效率低晶默,視野窄谨娜,業(yè)務(wù)溝通困難,工資要的很高很高也喜歡埋頭鉆研磺陡,但我要的東西就是很久出不來趴梢!

別聽他們的,我是工作十幾年做游戲帶項(xiàng)目也都超過十年的人了币他,c++ objective c java

javascript flash c# unreal unity cocos2d ruby on

rails都用過坞靶,他們自己也只是學(xué)生,答題時(shí)還是自己想象的成分居多蝴悉!

---------------

題主想好了是要學(xué)好c++還是學(xué)做游戲彰阴,還是要做游戲引擎。

做游戲引擎可以參考另一個(gè)問題拍冠,手機(jī)黨不方便引用了尿这,大體上是“游戲公司開發(fā)自研引擎還有意義么簇抵?”

以前做游戲是只能用c++的,以前基本上不管做什么都必須精通c/c++∑尬叮現(xiàn)在不是正压,現(xiàn)在大部分領(lǐng)域都有更合適的語言可以選擇,做起來效率更高。

腳本不只是做gameplay瞬测,所有部分都可以用腳本去做配乓,包括各種畫面特效。特效其實(shí)大部分是美工的活嘉裤,程序員

去認(rèn)真考慮如何集成進(jìn)來,如何在合適的地方調(diào)用栖博,而不是寫代碼去取代美工屑宠。粒子特效,模型仇让,貼圖典奉,你不用腳本你用c++,除了多寫不少代碼丧叽、多去自己管理

內(nèi)存調(diào)試野指針之外又能得到什么呢卫玖?渲染,那是shader踊淳,也不是c++假瞬。那么AI,是否只能用c++了呢迂尝?當(dāng)然不是脱茉,否則epic搞那個(gè)

unrealscript干嘛?

【王選易的回答(58票)】:

本來都不想更新了垄开,但是其他人回答的都太不靠譜了琴许,其他人都是在說怎么當(dāng)以個(gè)游戲邏輯開發(fā)人員,但是你作為一個(gè)游戲引擎開發(fā)人員说榆,你不會C++能行嗎虚吟?

游戲開發(fā)不止有一個(gè)開發(fā)游戲這一領(lǐng)域的。

為什么不認(rèn)真讀題G┎啤串慰!

-----------------Update-----------------

先回答你的第一個(gè)問題,一年是不能精通C++的唱蒸,但是能熟悉C++的邦鲫,并且用C++做出一些Demo甚至一些游戲。但其實(shí)題主不是想問多長時(shí)間能學(xué)會游戲開發(fā)中的C++吧?樓主想問的是如何進(jìn)入游戲開發(fā)這個(gè)圈子庆捺,所以我要反對一下@王迅的短答案了古今。

不管怎么說,還是要?dú)g迎你來到游戲編程的世界滔以,游戲編程是編程中最小眾的領(lǐng)域捉腥。你身邊的同學(xué)可能有許多的人都會各種前臺開發(fā),后臺開發(fā)或者ACM算法你画,但是做過游戲的人可以說用一個(gè)手掌就能數(shù)過來了抵碟。

但是很巧合的是,我是個(gè)大三的學(xué)生坏匪,而且我現(xiàn)在做游戲開發(fā)拟逮,那么我的經(jīng)驗(yàn)對你來說有些價(jià)值。

然后我再嘗試著回答第二個(gè)問題适滓。游戲開發(fā)還需要學(xué)些什么敦迄?

首先,題主要做的是學(xué)好C++凭迹,為什么這么說呢罚屋?因?yàn)椴还苁乾F(xiàn)在的圖形引擎(如OpenGL)還是游戲制作引擎(如Cocos2d-x)都是把C++作為主力語言的。

那么嗅绸,我就先推薦幾本C++的入門書籍吧:

C++ Primer 中文版(第 5 版) (豆瓣)

C++程序設(shè)計(jì)教程 (豆瓣)

數(shù)據(jù)結(jié)構(gòu)與算法分析 (豆瓣)

Effective C++ (豆瓣)

樓主可以按照順序依次看下來沿后,由于都是我看過的書,我可以完全保證這些書的質(zhì)量朽砰!

接下來,樓主可以去Problems | LeetCode OJ喉刘,Programming problems and Competitions :: HackerRank這些網(wǎng)站刷一些算法題瞧柔,畢竟光說不練肯定是不行的 =_=。

接著睦裳,擺在題主面前的是兩條不同的發(fā)展路線

Gameplay Programmer(游戲型程序員)

Graphics Programmer(圖形程序員)

Gameplay程序員適合游戲策劃緊密合作的一種程序員造锅,他們會編寫游戲中的主要邏輯,為策劃提供關(guān)卡編輯工具廉邑,第一時(shí)間測試并玩到最新的游戲哥蔚。

由于Gameplay主要集中于游戲邏輯的編寫,在這一塊蛛蒙,我的經(jīng)驗(yàn)是最好從使用一個(gè)游戲引擎開始糙箍,考慮到你的C++和程序員背景,推薦你使用Cocos2d-x這個(gè)游戲引擎牵祟,下面是這個(gè)引擎的網(wǎng)址深夯。

Cocos2d-x: World’s #1 Open Source Game Development Platform

游戲邏輯部分,你需要理解游戲中的場景管理,資源管理咕晋,狀態(tài)機(jī)雹拄,AI和網(wǎng)絡(luò)這些模塊的編寫。具體的操作可以查看我的這個(gè)答案:

學(xué)Cocos2d-x掌呜,需要掌握多少C++知識滓玖?大概學(xué)多久可以做出一個(gè)游戲?

另一種是Graphics Programmer,或者說是Engine Programmer质蕉,他們是給程序員寫程序的程序員(有點(diǎn)繞口啊=O=)势篡。這部分你需要學(xué)習(xí)的是OpenGL和ORGE等等

首先,你要學(xué)習(xí)的是OpenGL饰剥,首先我們要看的當(dāng)然是這個(gè)紅寶書了殊霞!OpenGL編程指南(原書第7版) (豆瓣)

然后,就是讀一些OGRE的源碼了汰蓉,國內(nèi)的許多“自研引擎”就是通過ORGE做出來的绷蹲,所以,作為一個(gè)Graphics Programmer讀這個(gè)引擎的源碼是非常必要的

最后呢顾孽?我們不管是當(dāng)那種程序員祝钢,我們最終都是要做出項(xiàng)目的。

如果你是圖形程序員若厚,那么最好的項(xiàng)目就是拦英,自己做一個(gè)游戲引擎

如果你是Gameplay Programmer,那么最好的項(xiàng)目j就是测秸,自己做一個(gè)游戲項(xiàng)目

比如說我最近做個(gè)一個(gè)Demo類型的游戲項(xiàng)目:MrNerverDie/Four · GitHub

那么疤估,題主你準(zhǔn)備好加入游戲程序員的行列了嗎?=w=

【伍一峰的回答(30票)】:

謝謝邀請:)

樓上如@kubisoft@大餅前輩都答得很好霎冯。

這個(gè)問題有點(diǎn)像劍宗和氣宗铃拇。

游戲開發(fā)就是耍劍,耍劍耍得好看了沈撞,觀眾就會賞錢慷荔。

學(xué)習(xí)氣宗,雖然能讓你握劍更加有力缠俺,耍上一天一夜也不喘氣显晶,還能夾帶一些紫氣,但對于耍劍來說壹士,無關(guān)好不好看磷雇。精通了C++,然后呢躏救?和游戲一點(diǎn)關(guān)系都沒有倦春。因?yàn)樗Σ粏沃v氣,最重要是講藝。

因此睁本,自然是劍宗更加有效更加貼切尿庐。游戲開發(fā)里面有很多field specific的知識和技能,雖相似呢堰,但和軟件開發(fā)仍然不能一概而論抄瑟。更別以為學(xué)好游戲開發(fā)的知識容易,其實(shí)路途同樣艱難枉疼,只是難的地方不一樣皮假。

那么游戲開發(fā)來說,劍宗和氣宗是不是就一定不兼容呢骂维?也不是惹资。有時(shí)候,你需要一些特別的機(jī)制或者特別的效果航闺,前人

可能沒有實(shí)現(xiàn)過褪测,又無法從美術(shù)方面下手或者修改設(shè)計(jì),就需要你有扎實(shí)的編程基礎(chǔ)來實(shí)現(xiàn)它潦刃。像游戲引擎就是這樣侮措,想要更漂亮的畫面、更好的運(yùn)行效率乖杠、更方便

的工作流程分扎,才會推動引擎發(fā)展。但游戲都沒做過胧洒,又怎知道現(xiàn)有技術(shù)不能支撐你所想所要呢畏吓?精通C++又解決了什么問題呢?

舉個(gè)例子卫漫,今年IGF學(xué)生組的最佳游戲庵佣,The Risk of Rain,我一看汛兜,那么精致的畫面、出色的手感通今、完善的機(jī)制粥谬,絕對是不簡單啊,一看開發(fā)者辫塌,竟是華盛頓大學(xué)機(jī)械專業(yè)和商學(xué)專業(yè)的兩位年輕人開發(fā)的漏策,用的還是GameMaker。

從此我豁然開朗臼氨,游戲開發(fā)就是耍劍掺喻,耍得好看才有飯吃,哪怕你華山掌門人。

------------------Update 1------------------

這個(gè)問題能引起那么多不同意見感耙,很有意思褂乍。

重新瀏覽了一遍大家的答案,主要有兩種見解即硼。

一方是正好是我說的劍宗逃片,主張一開始就以游戲開發(fā)相關(guān)知識為主要學(xué)習(xí)方向;

另一方是氣宗只酥,主張一開始以計(jì)算機(jī)底層知識為主要學(xué)習(xí)方向褥实。

而C++則是這一題目里兩方主張的矛盾的外在表現(xiàn)。

正如我答案的主體部分裂允,我個(gè)人比較偏向劍宗损离。

一個(gè)原因是我沒有進(jìn)過AAA的大公司,以往兩次實(shí)習(xí)都是在獨(dú)立游戲公司绝编,他們的氛圍都是以快速實(shí)現(xiàn)為主要目的僻澎。

所以我也耳濡目染怎棱,將實(shí)現(xiàn)視為游戲開發(fā)當(dāng)中最重要的東西绷跑。

因此我較為主張初學(xué)游戲開發(fā)的話拳恋,也以實(shí)現(xiàn)為目的谬运,比方說,選一款引擎垦藏,不斷地制作游戲掂骏。在這一個(gè)過程當(dāng)中弟灼,我們會不斷地接觸到新的知識:

一開始田绑,我們在Update里面寫代碼掩驱,我們接觸到了Game Loop,

我們創(chuàng)建角色圖像泵殴,接觸到Sprite的概念袋狞,

我們想用鍵盤控制角色移動,我們接觸到了Input System早处,

我們想讓角色跳躍砌梆,接觸到了Physics Engine的概念咸包,等等等等...

現(xiàn)在我們對Game Loop有了了解烂瘫,對Physics Engine有了了解坟比,知道它們在游戲中的作用葛账,那么對我們學(xué)習(xí)這些領(lǐng)域籍琳,是有莫大好處的贷祈。

正如最近關(guān)于很火的“設(shè)計(jì)模式”問答,現(xiàn)在的觀點(diǎn)主要是“你得遇到問題了,才真正懂得某一個(gè)模式的好處”键科。我覺得關(guān)于游戲開發(fā)的學(xué)習(xí)嗦嗡,也是這樣的侥祭。

當(dāng)然矮冬,我不會說哪位在座哪位老師的意見是錯(cuò)的,因?yàn)橛螒蜷_發(fā)本身就是一個(gè)新生學(xué)科琼牧,甚至連學(xué)科也稱不上,自然沒有對的和錯(cuò)的路趾撵。

【徐奕成的回答(22票)】:

我覺得可以過來再更新一次了鼓寺。

/*****************************************以下內(nèi)容可以跳過*****************************************/

我說一下我做游戲的歷程吧,二年級的時(shí)候(我出生于1991.11)我開始接觸電腦苦银,當(dāng)時(shí)對電腦的畫圖工具很癡迷,為什么畫圖工具能夠做出這么好看的東西想括。所以我對這些所見即所得的東西非常著迷瑟蜈,因?yàn)槲矣X得很容易就開發(fā)出來一個(gè)東西炫耀宪躯。

后來四年級時(shí)候访雪,我的父母有接觸一個(gè)游戲叫《傳奇》,我在他們沒在家的時(shí)候偷偷創(chuàng)建了一個(gè)帳號肝陪,體驗(yàn)了十五分鐘

(沒錯(cuò)小學(xué)生就是我),覺得游戲真的很吸引人狼讨,我是父母在我從小禁止玩游戲的政供,所以我沒有接觸過任何游戲,包括紅白機(jī)衅檀,這應(yīng)該也是很多人的童年。在那時(shí)

候杉适,我的夢想就是未來能夠做游戲設(shè)計(jì)師,做一個(gè)全世界的人都喜歡的游戲蹬叭。

慢慢CCTV某一個(gè)頻道有一個(gè)欄目是一個(gè)教授開始了解有一樣?xùn)|西叫做powerpoint 2000.我開始拉一些圖片進(jìn)來,做了一個(gè)小游戲筝蚕,你沒看錯(cuò)起宽,是ppt做了一個(gè)小游戲,是類似大逃殺的游戲腐晾。點(diǎn)一下進(jìn)一個(gè)地點(diǎn),有了最原始的交互巨柒。

從初一的時(shí)候,我知道了有一個(gè)東西叫做VB牺勾,我也嘗試用VB寫程序。同時(shí)開始學(xué)習(xí)一個(gè)編程語言叫C川无,那時(shí)候我果斷拋棄了C,因?yàn)閂B真的很容易做出一個(gè)窗口仅叫,然后寫一個(gè)helloworld拿出去炫耀笙隙。

興趣是最好的老師竟痰,我爸媽說學(xué)好這些東西就可以做游戲了。我就開始認(rèn)認(rèn)真真學(xué)C語言,當(dāng)時(shí)效率也很高祥得,我現(xiàn)在一直覺得我在吃老本。创千。學(xué)C的基本概念,用控制臺做一個(gè)打飛機(jī)游戲殿雪,做一個(gè)RPG游戲,類似于colossal_cave_adventure亏镰。

再到了高中,開始用VC++6來開發(fā)一些win32小游戲逼肯,我覺得把游戲做好是一種使命大刊,那時(shí)候也知道了國內(nèi)著名的工作室:西山居1995 完美時(shí)空 2004 琳瑯天上2004.

我的心愿就是加入他們,成為真正的游戲開發(fā)者。

后來到大學(xué),我學(xué)計(jì)算機(jī)圖形學(xué)鸦列,數(shù)據(jù)結(jié)構(gòu),自學(xué)編譯原理骆姐,匯編語言。才發(fā)現(xiàn)原本單純的夢想發(fā)現(xiàn)是不可實(shí)現(xiàn)的,我不可能做出每個(gè)人都喜歡的游戲窟社,就開始學(xué)習(xí)游戲引擎制作。如果你希望能夠從事引擎開發(fā)钠四,我推薦葉勁峰@Milo Yip大神的《游戲引擎架構(gòu)》一書侣灶。

直到現(xiàn)在,我如愿以償凡怎,成為了居士,開發(fā)游戲引擎。這不是一年兩年能決定的浴鸿,如果你要做程序,真的要多積累了。

/*****************************************以下內(nèi)容可以跳過*****************************************/

從始至終举户,我是抱著一種使命來學(xué)習(xí),來努力,來做游戲的近她。當(dāng)時(shí)面試的時(shí)候薇缅,面試官問我,你為什么要做游戲灸撰,我說:“我一生就為了做游戲,生活能夠過得去就行∈渭#”我現(xiàn)在也覺得兆沙,我如果不做游戲千扔,我還能做什么(我現(xiàn)在很局限了库正,眼界很窄)曲楚。

我最近學(xué)校的課程是要用Objective-C開發(fā)游戲,我從來沒有學(xué)過oc語言褥符,但是我并不覺得他特別的難龙誊,相反喷楣,我覺得他很容易上手開發(fā)iOS應(yīng)用趟大,因?yàn)橛蠧++的積累,我可能不知道具體的語法或者用法還有API铣焊,但是我可以通過C++來融會貫通逊朽。

C++是一種潛移默化的東西,當(dāng)你了解他之后曲伊,你學(xué)什么都會容易叽讳,覺得簡單。

所以,C++是重中之重5涸椤R乩辍!

吐槽完畢灭美。推溃。只有20個(gè)贊,第一次這么認(rèn)真回答的說届腐。 T_T

/*****************************************這是之前的回答*****************************************/

我不請自來了铁坎,因?yàn)槲野l(fā)現(xiàn)在這里面回答的人都在回答:“我想做游戲開發(fā),難嗎犁苏?”硬萍,而不是回答“我想從事游戲開發(fā),一年內(nèi)能精通C++嗎围详?”朴乖。無視題主的提問,實(shí)在忍不住助赞。

對于題主的提問买羞,我比較贊同@王選易的答案,也許大家都是技術(shù)人員并且也在大學(xué)中學(xué)習(xí)游戲開發(fā)雹食。

首先我回答題主的問題畜普,作為大二即將升大三的學(xué)生,由于你大一大二忙于社團(tuán)活動群叶。以致于你可能錯(cuò)過了大學(xué)中打基礎(chǔ)的黃金時(shí)期吃挑,大三的一個(gè)學(xué)年里面,除去你的課程時(shí)間街立,能夠繼續(xù)深入學(xué)習(xí)C++的時(shí)間也許并不多舶衬。所以,一年內(nèi)你說可以精通C++赎离,我覺得不可能逛犹。

我現(xiàn)在大三,從初一開始學(xué)習(xí)C++梁剔,對這些有一定的了解圾浅,也有一定的發(fā)言權(quán)。但是我從來不敢說我精通了C++憾朴。因?yàn)槲业闹鞴芾瓴叮?5歲開始學(xué)習(xí)C語言,現(xiàn)在學(xué)習(xí)C++已經(jīng)超過20年众雷。但是他對于技術(shù)非常的謙遜灸拍,抱著學(xué)習(xí)的心態(tài)去學(xué)習(xí)技術(shù)做祝,也沒在我們面前提過他精通C++。即使他已經(jīng)是國內(nèi)行業(yè)的領(lǐng)軍人物鸡岗。

說一下精通C++這個(gè)吧混槐,其實(shí)精通這個(gè)詞真的很大爭議,至少在許多的社區(qū)都有人對這兩個(gè)字吵的不亦樂乎轩性,那么我來和你說一下熟悉的概念吧:

我覺得熟悉C++声登,至少要能夠做到這些:

1、你完整閱讀過C++ Primer 第五版之后的書揣苏,這本書可謂是C++程序員入門必讀的書悯嗓。(為什么我推薦第五版之后,因?yàn)榈谖灏嬷蟀膬?nèi)容是C++11標(biāo)準(zhǔn)的內(nèi)容卸察,你現(xiàn)在重拾編程語言脯厨,那么推薦你看新的書)

2、你能夠?qū)γ嫦驅(qū)ο缶幊逃忻鞔_的概念坑质。因?yàn)楝F(xiàn)在許多程序員用著面向?qū)ο笳Z言合武,卻做著面向過程的事情。

3涡扼、能夠利用C++配合DirectX或者OpenGL來制作Windows小游戲稼跳。

4、對數(shù)據(jù)結(jié)構(gòu)有一定的認(rèn)識吃沪,能夠準(zhǔn)確針對問題選擇你的數(shù)據(jù)結(jié)構(gòu)汤善。

5、其他內(nèi)容一下子沒想到這么多巷波,等以后更新萎津。

至于精通卸伞,精通C++不僅僅是C++的語法抹镊,還有編譯的原理,那么又涉及到編譯原理荤傲,還有計(jì)算機(jī)的組成原理垮耳。調(diào)試的時(shí)候,當(dāng)你用release的調(diào)試遂黍,你又需要匯編語言的知識终佛,又涉及到匯編語言。再后來你需要設(shè)計(jì)比較大型的程序雾家,你要對數(shù)據(jù)結(jié)構(gòu)铃彰,和設(shè)計(jì)模式有一定的認(rèn)識。

再回答下一個(gè)問題:你希望從事游戲開發(fā)工作芯咧,做游戲其實(shí)不僅僅是看著最近火熱牙捉,而是你要從一開始就對有游戲有接近瘋狂的熱愛竹揍,把做好一款游戲當(dāng)做你的使命,你才有動力繼續(xù)學(xué)習(xí)邪铲。因?yàn)槌绦驅(qū)W習(xí)起來非撤椅唬枯燥。

至于你最后的問題:

你需要學(xué)習(xí)其他什么带到,我覺得其實(shí)你需要做游戲昧碉,不一定是C++,你可以選擇另一個(gè)語言比如Objective-C開發(fā)iOS的游戲揽惹,或者學(xué)習(xí)C#被饿,可以開發(fā)wp8或者xBox的游戲。

如果你單純是做游戲永丝,語言并不是問題锹漱,問題是你對其他知識的了解程度和對游戲行業(yè)的熱愛,為了工作而工作可能并不會讓你充滿滿足感與激情慕嚷。

其他的知識:

計(jì)算機(jī)圖形學(xué)

數(shù)據(jù)結(jié)構(gòu)

編譯原理

匯編語言

至于苦逼軟件的作者的回答哥牍,我反對,并且我認(rèn)為這不是合適的答案喝检。

不是所有的人會為你“工作十幾年游戲項(xiàng)目超過十年而買單钧舌∥癜粒”

---------------------以下逐個(gè)寫下來得罪人---------------------

“想做游戲開發(fā)根本不需要精通C++,根本就是南轅北轍《瘢”

》游戲開發(fā)不需要精通C++,甚至說不需要會C++音五,但是你至少要熟悉任何一門開發(fā)語言亿汞,并且充分了解數(shù)據(jù)結(jié)構(gòu)。這根本不是南轅北轍杆兵,而是取向問題雁仲。

“挑一個(gè)引擎熟悉起來”

》這是我看到最不負(fù)責(zé)任的回答,這位同學(xué)問的是未來的路琐脏,現(xiàn)在讓一個(gè)學(xué)生直接選一個(gè)引擎攒砖,沒有錯(cuò)日裙,這樣可以讓他更

容易找到小公司吹艇,但是會使用,不懂一個(gè)引擎的原理昂拂,在日新月異的今天受神,公司換了一個(gè)引擎,要重新去學(xué)習(xí)格侯,如果掌握最基礎(chǔ)的東西鼻听,那么無論任何引擎樟结,都可以

迅速上手。

“游戲開發(fā)就是耍劍精算,耍得好看才有飯吃”

》游戲開發(fā)實(shí)質(zhì)就是程序員不僅要練劍瓢宦,也要練氣。

ps:以上純屬個(gè)人觀點(diǎn)灰羽。

【vczh的回答(17票)】:

@kubisoft說得對驮履,想做游戲開發(fā)根本就不需要精通c++,根本就是南轅北轍廉嚼。不過理由我跟他不一樣玫镐。就算你的志向是開發(fā)crysis這樣的游戲,其實(shí)也只需要用到C++的一小部分就夠了怠噪。C++各種范式是發(fā)明來解決所有問題的恐似,游戲只是其中的冰山一角,你沒必要精通傍念,沒必要學(xué)會C++的所有部分矫夷。

怎么樣才算是精通 C++?

可以參考我的這個(gè)回答

【知乎用戶的回答(11票)】:

/* update */

儼然成了站隊(duì)帖了憋槐。

一句話双藕,想做獨(dú)立游戲,請看頂樓幾位阳仔;想以游戲開發(fā)作為一份職業(yè)忧陪,請看我的和@王選易的答案。

ps近范,題主問的是怎么學(xué)C++嘶摊,那么多人在那空樹個(gè)靶子亂打是幾個(gè)意思?

////////////////////////////////////////////////////

/* update*/

被點(diǎn)了好多反對+沒有幫助么o(╯□╰)o

之前手機(jī)上的评矩,回答了題主第一個(gè)問題叶堆,現(xiàn)在試著回答下第二個(gè)問題。建議題主修改下問題稚照,把精通改成掌握蹂空,免得問題被偏向題主不愿看到的方向俯萌,「精通C++」一直都是一個(gè)很無聊的槽點(diǎn)果录,吐槽的人和被吐槽的人都很無聊。

翻譯一下咐熙,可能這樣問比較合適:

如何用一年的時(shí)間在C++天賦上加點(diǎn)弱恒?

如果說閱讀一遍《C++ Primer》是根節(jié)點(diǎn)的話,接下來的天賦點(diǎn)只有這樣兩種類型:

1. 繼續(xù)閱讀C++相關(guān)書籍

整明白《C++

Primer》棋恼,對C++有一個(gè)感性的認(rèn)識之后返弹,你可以去看侯捷翻譯/寫的幾本書比如Effective系列锈玉、《STL源碼剖析》,甚至對于沒什么人用的

MFC义起,你也可以看下《MFC九(shen)淺(ru)一(qian)深(chu)》拉背,看下上個(gè)世紀(jì)的業(yè)界的C++程序員都是怎么樣來用C++這門語言

的。然后默终,可以看看《Inside C++ Object

Model》椅棺,深入理解下C++。然后齐蔽,對C++已經(jīng)有了一個(gè)理性的認(rèn)識之后两疚,就可以再拿回來《C++ Primer》,順便再翻翻《Thinking

In

C++》含滴,查查C++標(biāo)準(zhǔn)什么的诱渤,仔細(xì)琢磨琢磨自己究竟能用C++干什么。至于模板元谈况、FP什么的勺美,題主看完這些書自然會知道自己有沒有興趣接觸的。

2. 做項(xiàng)目

題主說想從事游戲開發(fā)等工作碑韵,那我就大膽揣測一下励烦,題主并不是想做一名獨(dú)立開發(fā)者,而是打算以死程作為職業(yè)生涯的第一份職業(yè)泼诱。

這樣坛掠,做項(xiàng)目的話就需要多一點(diǎn)針對性。想要有快速產(chǎn)出結(jié)果的項(xiàng)目治筒,你可以先用D3D寫個(gè)小玩具屉栓,隨便復(fù)刻一下你記

憶中的FC游戲即可。想要接觸OOP耸袜,那就找?guī)讉€(gè)小伙伴友多,想辦法參加個(gè)軟件比賽,做個(gè)代碼量至少上萬的項(xiàng)目堤框,語言不僅限于C++域滥。這樣你才能不會覺得書上

那些OOP啊泛型啊都是扯的有的沒的。做項(xiàng)目的時(shí)候?qū)懘a寫累了蜈抓,翻翻《設(shè)計(jì)模式》之類的書启绰。沒錯(cuò),我沒把讀《設(shè)計(jì)模式》算作「閱讀C++相關(guān)書籍」沟使。

////////////////////////////////////////////////////

不能精通委可。

【Aaronluo的回答(8票)】:

反對目前第一@Kubisoft的說法,題主還是學(xué)生腊嗡,別用壓榨it民工的想法來教導(dǎo)着倾!題主可以從

cocos2dx和unity3d開始學(xué)游戲開發(fā)拾酝,但是,如果想一直做編程卡者,請別忘了必須同時(shí)修煉c++,

因?yàn)樗梢越o你認(rèn)識到真正的編程蒿囤,讓你懂得更多計(jì)算機(jī)編程思想,以后就算不寫c++也可以迅速了解別的語言崇决,別的工具的~而不會變成僅僅依靠IDE工具蟋软,

隨便抄抄別人代碼,完成山寨程序的It民工

【W(wǎng)uJohnny的回答(6票)】:

我覺得學(xué)習(xí)c語言會更合適一些嗽桩≡朗兀可以避開c++的語法陷阱,又能夠快速地書寫程序了解指針碌冶,內(nèi)存管理湿痢,io以及字符串的操作真諦。

通過6個(gè)月左右的c語言學(xué)習(xí)后扑庞,可以考慮學(xué)習(xí)一些面向?qū)ο蟮恼Z言和lisp語系的語言譬重,例如python和

lua。這大概需要3個(gè)月左右的時(shí)間罐氨。這期間可以閱讀一些優(yōu)秀的代碼臀规,我推薦學(xué)習(xí)的源碼有兩個(gè),一個(gè)是lua的源碼栅隐,一個(gè)是vim的源碼塔嬉。這兩者都能提高

你對計(jì)算機(jī)底層系統(tǒng)對內(nèi)存管理,以及字符串處理的理解租悄。并且對函數(shù)指針有一個(gè)深刻的認(rèn)識谨究。

最后3個(gè)月可以試試采用c和lua結(jié)合的方式去實(shí)現(xiàn)一個(gè)簡單功能的程序。

恭喜你泣棋,畢業(yè)了胶哲!你也許還不懂圖形渲染,不那么理解gpu潭辈,不懂得網(wǎng)絡(luò)通訊鸯屿,多線程,操作系統(tǒng)和其他計(jì)算機(jī)科學(xué)知

識把敢。只是初略對cpu寄摆,內(nèi)存和文件存儲有所了解,但這已經(jīng)不妨礙你成為一名合格的程序員甚至游戲程序員技竟。由于你的選擇冰肴,你避開了c++學(xué)習(xí)過程中的諸多陷

阱屈藐,直接用一門簡單的系統(tǒng)級語言c快速地理解了計(jì)算機(jī)程序的真諦榔组。這比你學(xué)會使用c++更重要熙尉,也為你今后的發(fā)展鋪下了堅(jiān)實(shí)的基礎(chǔ)。

【JinHan的回答(2票)】:

1年肯定無法“精通”搓扯,但是如果認(rèn)真學(xué)能讓你基本了解這玩意是個(gè)怎么回事检痰,而且最關(guān)鍵的,能夠幫助你進(jìn)入游戲的行業(yè)锨推。

上面各種大神的回答铅歼,居然milo大神都炸出來了,雖然都很有道理但是我覺得答案依然因人而異换可。

這個(gè)東西沒有什么答案椎椰,而更加取決于你想做什么。

你想成為一個(gè)程序員沾鳄,還是更想成為一個(gè)游戲開發(fā)者慨飘,游戲設(shè)計(jì)師或者,或是只是喜歡游戲而想呆在游戲的圈子里译荞。瓤的。。

游戲是一個(gè)很大的產(chǎn)業(yè)吞歼,每個(gè)環(huán)節(jié)都是可以做到最大最強(qiáng)從而改變世界的圈膏,而且每個(gè)環(huán)節(jié)都是密不可分沒有什么孰優(yōu)孰劣的。

上面不少回答角度是從資深程序員的角度來說的篙骡,但我個(gè)人認(rèn)為開發(fā)一個(gè)好的游戲編程技術(shù)的重要性其實(shí)并不是最最重要

的稽坤。美工,設(shè)定糯俗,故事背景慎皱,營銷和項(xiàng)目管理方面都是非常重要的環(huán)節(jié),相比之下程序的重要性有的時(shí)候并沒有想象的那么重要叶骨。

這也是為什么很多人認(rèn)為不懂編程也能做游戲的原因茫多。有的游戲比如卡牌游戲,甚至不需要任何程序忽刽。

并且另一方面天揖,對于玩家來說,他們只知道這個(gè)游戲是不是好玩跪帝,愛不愛玩今膊,對于用的什么引擎,

你c++寫的多厲害根本都是沒有直接影響的伞剑。比如說minecraft這樣的游戲也沒有用到高大上的引擎斑唬,dota這樣風(fēng)靡世界的游戲當(dāng)初也是用的魔獸爭霸編輯器那個(gè)自帶的腳本編輯器完成的。

另外涉及到游戲引擎的方面,也并不是如某些人所說恕刘,直接用別人的引擎的人就沒有任何技術(shù)含量的缤谎。

第一,為自己的游戲開發(fā)專用的游戲引擎其實(shí)也并沒有那么困難褐着,只是涉及到的知識和需要的編程技術(shù)基礎(chǔ)比較高坷澡,而且通常沒有絕對的必要性,所以做的人不多含蓉,就好像你想蓋房子會自己去造吊車嗎频敛。所以以上說國內(nèi)游戲開發(fā)不好是因?yàn)闆]有好的吊車其實(shí)是不對的。

第二馅扣,往往大家把游戲引擎和好的游戲畫面聯(lián)系在一起斟赚,但其實(shí)好的游戲畫面并不由引擎決定,就好像

photoshop是一個(gè)創(chuàng)建圖片的工具差油,但是有的人能用ps創(chuàng)造出驚人的作品汁展,而有的人只能胡亂的涂鴉,同樣的工具而最后產(chǎn)生的效果也可能是完全不同

的⊙嵫常現(xiàn)在無論什么游戲引擎大部分都是基于當(dāng)前已有的dx或者opengl圖形渲染技術(shù)食绿,就算某個(gè)引擎能夠同時(shí)渲染更多的多邊形,也不能代表其畫面效果好公罕,

因?yàn)檫@些其實(shí)是取決于使用引擎的藝術(shù)家和技術(shù)美工的器紧。當(dāng)然如果一個(gè)游戲引擎的編輯工具非常的aritst

friendly,對于畫面的提升幫助是很大的楼眷。(于是問題便從開發(fā)游戲引擎變成了開發(fā)游戲引擎編輯工具)

第三铲汪,如何巧妙的利用游戲引擎也是一個(gè)非常有技術(shù)的事情,比如dota用的魔獸地圖編輯器罐柳,弱到連讓一個(gè)單位眩暈

固定的秒數(shù)的功能都沒有掌腰,所有的眩暈都是要靠創(chuàng)建一個(gè)隱藏的單位向敵人丟出一個(gè)隱藏的風(fēng)暴之錘來實(shí)現(xiàn)的,即便如此张吉,別人還是做出了一個(gè)非常成功的游戲齿梁。這

樣巧妙的利用一個(gè)引擎的各種功能,從而達(dá)到自己的設(shè)計(jì)目的肮蛹,也是非常有技術(shù)含量的一件事情勺择。在我眼里他們這些游戲程序員的工作并沒有這些引擎程序員的工作

低級,歧視他們的技術(shù)含量是可笑的伦忠。

另一方面省核,技術(shù)大部分的時(shí)候是因?yàn)樾枨蠖模热缥业挠螒蛐枰粋€(gè)特殊的效果從而能夠過表現(xiàn)某種藝術(shù)效果昆码,但目

前的市面上的引擎沒有這樣的功能(比如我想要我的游戲里任何東西都和果凍一樣气忠,并且有物理的效果)邻储,

那么這個(gè)時(shí)候熟練C++編程能力就變得非常的重要,因?yàn)樯婕暗叫薷脑婀δ艿亩伍_發(fā)往往是使用c++的旧噪,并且對于各種優(yōu)化的要求相當(dāng)?shù)母叨帜取#ó?dāng)然如果

做不到,那么巧妙的修改設(shè)計(jì)方案避開這是永遠(yuǎn)存在的解決的辦法舌菜,當(dāng)然結(jié)果也是這將使得游戲變得平庸)

但是總的來說萌壳,花一年時(shí)間盡可能深入的學(xué)習(xí)c++是十分必要的亦镶,即使你今后不使用c++作為自己的編程工具日月。因?yàn)?/p>

c++是目前大部分編程語言的基礎(chǔ),了解這些細(xì)節(jié)對于今后快速掌握另一種語言也是非常有益的缤骨,我c++水平不是大神爱咬,但我也能做到在從來沒有看過任何

java/c#的書籍的情況下看懂大段的java/C#代碼并且自己寫出一些常用的功能。

如果真的想從事游戲行業(yè)绊起,在學(xué)習(xí)c++之外更重要的是精拟,你需要盡早開始著手做一個(gè)你想做的游戲,無論多差先做出原

形來虱歪,無論用什么樣的辦法多落后的技術(shù)蜂绎,在中間你還會學(xué)到無數(shù)編程之外的東西。編程這個(gè)東西笋鄙,一旦編程技術(shù)達(dá)到一定的水平师枣,剩下的在編程語言之外的思想才

是更重要的,就好像有的人寫作的詞匯特別的美萧落,語法特別的對践美,但是內(nèi)容空洞無力的話也是沒有任何價(jià)值的。

【趙丙峰的回答(2票)】:

如果“精通”的含義是了解C++所有的方方面面找岖,甚至編譯器實(shí)現(xiàn)細(xì)節(jié)陨倡。那么肯定不會有這樣人的。并不是你不能成為

這樣的人许布,而是完全沒有必要兴革。這個(gè)意義上講,我從來不推薦閱讀《深入C++對象模型》這樣的書蜜唾。這并不能使你建立真正的面向?qū)ο蟮母拍钐迹炊菀渍`導(dǎo)你這

樣才是實(shí)現(xiàn)面向?qū)ο蟾拍畹奈ㄒ环椒ǎ赡苁亲钣行У囊环N而已)。

如果把“精通”定義為可以熟練地使用C++來構(gòu)造具有擴(kuò)展性的框架或者應(yīng)用灵妨,滿足時(shí)間和容量上的要求解阅。上面回答問題的有不少人應(yīng)該可以達(dá)到。

在如果把“精通”定義為使用基本的C++構(gòu)造來克服程序?qū)崿F(xiàn)中的種種必然或者偶然的復(fù)雜性泌霍,那么精通C++所需要

理解的知識點(diǎn)并不是很多货抄。最基本的述召,準(zhǔn)確理解RAII概念并且可以有效使用之以及理解基于異常的錯(cuò)誤管理是成為一個(gè)合格C++程序員的必要條件。樓上流出

的幾乎所有的書都會涉及這兩個(gè)概念蟹地,但是深入介紹并且融會貫通的沒有积暖。當(dāng)Google的的C++規(guī)范還沒當(dāng)作圣經(jīng)膜拜的時(shí)候,可以理解大多數(shù)的C++程序

員并不合格怪与。

并不是這些程序員不夠努力夺刑。C++程序員是最努力的程序員之一,因?yàn)镃++的書太多了分别。C++的面也太廣了遍愿。這樣導(dǎo)致的一個(gè)后果就是大量的時(shí)間被浪費(fèi)了,同時(shí)形成了一個(gè)無法精通C++的“神話”耘斩。

除非你是語言律師沼填,你無需“精通”C++;

除非你的編譯器的實(shí)現(xiàn)者括授,你無需“精通”C++坞笙;

除非你是編譯器的測試者,你無需“精通”C++荚虚;

除非你是語言規(guī)范的修訂這薛夜,你無需“精通”C++;

計(jì)算機(jī)世界最強(qiáng)大的武器就是抽象版述。你要精通的是使用C++的構(gòu)造來模擬并且建立抽象梯澜。這里面涉及的更多是接口設(shè)計(jì)問題。

涉及到接口院水,不能不提到類型腊徙。我們都知道C++是靜態(tài)強(qiáng)類型的語言。但是這個(gè)強(qiáng)類型是不完全的檬某。你能知道C++標(biāo)

準(zhǔn)庫里的很多代碼都是為了修正這個(gè)不完全的強(qiáng)類型系統(tǒng)的輔助代碼嗎撬腾?C++的面向?qū)ο笾杏幸粋€(gè)概念叫做多態(tài)。據(jù)說是在運(yùn)行時(shí)決定以指針或者引用調(diào)用的函數(shù)

具體是那個(gè)恢恼,但是你知道所有這些都在編譯時(shí)就決定了嗎民傻?理解類型系統(tǒng),并且熟悉其功用是進(jìn)一步的要求场斑。有了這個(gè)基礎(chǔ)漓踢,算法和容器分離的STL設(shè)計(jì)是自然而

然的結(jié)果。

可組合性是組件的更高要求漏隐。這個(gè)深入了喧半,你得到的是類似Monad的東西。C++的未來就是這個(gè)方向青责,因?yàn)檫@使得C++代碼可以極好地橫向擴(kuò)展挺据。

能依次掌握取具,理解,并且運(yùn)用上述概念扁耐,并且能把這些概念映射到C++之中暇检,雖然不能說是精通C++,也可以說是稀缺的C++程序員婉称。

這樣的程序員块仆,有多少,要多少王暗!

【HuayongXu的回答(1票)】:

首先說悔据,不能,精通一門語言要由內(nèi)而外瘫筐,你必須知道你寫的代碼到底在機(jī)器中是怎樣去運(yùn)行的蜜暑,在內(nèi)存中是怎樣的狀

態(tài)铐姚,生命周期怎么樣策肝,這樣你寫出來的代碼才是高效可用的,而不僅僅是能跑通沒bug隐绵。會用一門語言寫代碼僅僅是初級階段之众,而精通是需要對代碼架構(gòu)和問題長

期的積累,不可能簡單的一年依许。

另外棺禾,你的目標(biāo)應(yīng)該在游戲開發(fā)上,這個(gè)不知道和你必須精通c++有什么關(guān)系∏吞現(xiàn)在的大公司開發(fā)游戲膘婶,一般都有專門的游戲引擎,甚至有專門的游戲開發(fā)語言蛀醉,你精通c++也可能只是游戲開發(fā)的基礎(chǔ)悬襟,游戲中最難的應(yīng)該是游戲的設(shè)計(jì)。

【shuangyang的回答(1票)】:

我也是軟件工程畢業(yè)的拯刁,我覺得脊岳,課本里的真重要,特別是操作系統(tǒng)和計(jì)算機(jī)原理垛玻,數(shù)據(jù)結(jié)構(gòu)和算法割捅,這幾門課被選做考研項(xiàng)可不是白選的,基礎(chǔ)不好帚桩,做什么都白搭亿驾,肺腑之言。其他要用什么账嚎,對應(yīng)的看看文檔也就會了莫瞬。

【W(wǎng)izardZhang的回答(1票)】:

四個(gè)月就能熟練C++ 真的 但是精通C++ 真的很難

我們老師經(jīng)常跟我們說 連ppt這么簡單的東西都是不可能精通的

更別提C++這么傻大笨粗的東西了

還有 以后去面試的時(shí)候 千萬別說自己精通C++

C++有一些很偏的語法規(guī)則 鬧不好面試官就會故意考你這些参淹。。

---------------------------------------

然后游戲方向要看你喜歡寫游戲還是游戲引擎

或者你實(shí)習(xí)的那個(gè)公司讓你寫什么

游戲引擎角度來講 學(xué)好C++沒問題 除此之外還要有一些圖形學(xué)和底層的知識

游戲的話 沒人用C++吧 開發(fā)成本高 周期長 需要的人才又不容易找

等你用C++寫個(gè)游戲出來 編譯一遍debug一遍 競爭對手估計(jì)都開發(fā)出5個(gè)了= =

【王照順的回答(3票)】:

上面都是大神乏悄,作為一個(gè)即將大四的學(xué)生浙值,我說一下自己的觀點(diǎn),什么事情都要講究一個(gè)興趣檩小,興趣來了寫代碼和寫詩一

樣快樂开呐,上面說的劍宗和氣宗比較有意思,個(gè)人覺得不管學(xué)什么都應(yīng)該由淺入深规求,底層要學(xué)好沒有錯(cuò)筐付,如果一上來就不管三七二十一讓你去了解opengl的知

識,估計(jì)學(xué)了個(gè)把月阻肿,然后你會問瓦戚,這玩意能干嘛?估計(jì)你就萎了丛塌,編程生涯over较解。。恩赴邻,應(yīng)該是這樣印衔,先簡單了解一下游戲制作過程,比如說先熟悉一款游戲

引擎姥敛,如cocos2d-x奸焙,然后簡單開發(fā)一款小游戲,恩彤敛,然后大概知道游戲制作是怎么個(gè)回事与帆,當(dāng)然,這時(shí)候你可能只是處于調(diào)用一下人家api的情況墨榄,不

過沒關(guān)系玄糟,當(dāng)你發(fā)現(xiàn)你自己寫的游戲能在手機(jī)上跑了,興趣來了渠概,多寫幾款類型不同的游戲茶凳,恩,大概像那么回事了播揪,然后開始不滿足寫游戲了贮喧,這時(shí)候你可能會想

了解一下引擎的原理了,然后開始找資料猪狈,學(xué)opengl等各種知識箱沦,個(gè)人覺得不管學(xué)什么都要循序漸進(jìn),由淺入深雇庙,這樣子才不會學(xué)什么都停留在表面谓形,就好比

如果你單單學(xué)一個(gè)cocos2dx如何使用灶伊,說白了哪天公司換個(gè)游戲引擎讓你去寫游戲,你發(fā)現(xiàn)又要重頭學(xué)起寒跳,到時(shí)候就心有余而力不足了聘萨。

順便說一句,樓上有些人過于激動了童太,大神們指點(diǎn)一下可以米辐,不過指指點(diǎn)點(diǎn)就不好了。

【陳清揚(yáng)的回答(1票)】:

Peter Norvig已經(jīng)寫過長文闡述了:

十年學(xué)會程序設(shè)計(jì)书释。

作者Peter Norvig是計(jì)算機(jī)科學(xué)家翘贮,Google 的研究總監(jiān)。在本文中爆惧,Peter Norvig會告訴你:為什么急功近利地學(xué)習(xí)軟件開發(fā)技術(shù)是沒效果滴狸页?

為啥都想速成?

隨便逛一下書店扯再,你會看到《7天學(xué)會Java》等諸如此類的N天甚至N小時(shí)學(xué)習(xí)Visual Basic芍耘、Windows、Internet的書叔收。我用亞馬遜網(wǎng)站的搜索功能齿穗,出版年份選1992年以后傲隶,書名關(guān)鍵詞是:“天”饺律、“自學(xué)”、“教你”跺株,查到248個(gè)結(jié)果复濒,前78個(gè)是計(jì)算機(jī)類圖書,第79個(gè)是《30天學(xué)孟加拉語》乒省。我用“天”換成“小時(shí)”巧颈,結(jié)果更驚人,有多達(dá)253本書袖扛,前77本是計(jì)算機(jī)圖書砸泛,第78是《24小時(shí)自學(xué)語法句式》。在前200名中蛆封,96%是計(jì)算機(jī)的書唇礁。

結(jié)論就是:要么人們急于學(xué)習(xí)電腦,要么計(jì)算機(jī)比其他東西學(xué)起來要異常簡單惨篱。沒有任何書是關(guān)于幾天學(xué)習(xí)貝多芬或量子

物理的,甚至連犬類裝扮都沒有。費(fèi)雷森(Felleisen)等人在其著作《如何設(shè)計(jì)程序》中同意這個(gè)趨勢壁晒,其中提到:“壞設(shè)計(jì)很簡單,笨蛋才用21天

學(xué)界牡,盡管他們還是真傻⊙В”

讓我們看看《三日學(xué)會C++》這個(gè)書名意味著什么:

學(xué)習(xí):三天內(nèi)你可能沒有時(shí)間寫出有意義的程序宿亡,或者從中積累經(jīng)驗(yàn)。你

不可能有時(shí)間去跟職業(yè)編程者一起去理解在C++環(huán)境下的狀況纳令。簡而言之她混,你沒有充足的時(shí)間學(xué)很多。所以這本書只能說膚淺的知識泊碑。正如亞歷山大·波普

(Alexander Pope)所言:一知半解是很危險(xiǎn)的坤按。

C++:三天內(nèi)你可能學(xué)會C++的句法(如果你已經(jīng)了解其他的語言),但你還不會使用它馒过。打個(gè)比方臭脓,假如你是個(gè)

Basic程序員,你可能寫出Basic風(fēng)格的C++程序腹忽,而無法理解C++的真實(shí)好處来累。那要點(diǎn)是什么?艾倫·佩里斯(Alan

Perlis)曾經(jīng)說過:“一門不能影響你編程觀點(diǎn)的語言不足學(xué)的窘奏∴谒”有可能你學(xué)了一點(diǎn)點(diǎn)C++(或者諸如Javascript、Flex之類)着裹,因?yàn)槟?/p>

需要和現(xiàn)成的工具接口以完成手頭的任務(wù)领猾。這種情況下,你不是在學(xué)習(xí)如何編程骇扇,只是在學(xué)習(xí)如何完成任務(wù)摔竿。

三日:不幸地是,這遠(yuǎn)遠(yuǎn)不夠少孝,下一部分會詳細(xì)講继低。

如何用十年掌握編程

研究人員(Bloom (1985), Bryan & Harter (1899), Hayes

(1989), Simmon & Chase

(1973))得出結(jié)論:想要在諸多領(lǐng)域達(dá)到職業(yè)水平需要十年,比如國際象棋稍走,作曲袁翁,電報(bào)操作,繪畫婿脸,彈鋼琴粱胜,游泳,網(wǎng)球以及神經(jīng)心理學(xué)和拓?fù)鋵W(xué)的研究盖淡。

關(guān)鍵是精心練習(xí)年柠,只是一遍一遍地重復(fù)是不夠的,必須挑戰(zhàn)恰好超越你能限的事情,嘗試并思考你的表現(xiàn)冗恨,并自我矯正答憔。周而復(fù)始。這并無捷徑掀抹!

4歲的音樂奇才莫扎特用了13年才能創(chuàng)作世界級的音樂虐拓。另外,披頭士樂隊(duì)似乎在1964年的埃德·蘇利文( Ed

Sullivan

show)演出中一炮而紅傲武,但是他們自從1957年就在利物浦和漢堡的酒吧演出蓉驹,在取得廣泛關(guān)注后,第一部重量級作品《佩珀軍士》(Sgt.

Peppers)是在1967年發(fā)行揪利。馬爾科姆·格拉德威爾(Malcolm

Gladwell)撰文描述了一項(xiàng)針對柏林音樂學(xué)院學(xué)生的研究态兴,他們被分為尖子,中等和不足三類疟位,并被問到他們練琴的情況:

所有三組中的人瞻润,開始學(xué)琴的年齡大概相差無幾,五歲左右甜刻。在剛開始的幾年绍撞,所有人練習(xí)量也差不多,一周兩三個(gè)小

時(shí)得院。自八歲開始傻铣,實(shí)質(zhì)性變化就有了。那些精英學(xué)生開始比其他人練習(xí)更多:九歲的時(shí)候一周六個(gè)小時(shí)祥绞,十二歲的時(shí)候一周八個(gè)小時(shí)非洲,十四歲的時(shí)候一周十六個(gè)小

時(shí),一直到二十歲的時(shí)候一周要超過三十小時(shí)就谜。截止到二十歲怪蔑,在他們的生涯里已經(jīng)有總計(jì)一萬小時(shí)練琴。僅僅表現(xiàn)可以的那部分學(xué)生加起來是八千小時(shí)丧荐,那些未來

的音樂老師有四千小時(shí)。

所以喧枷,更確切地說虹统,一萬小時(shí),而非十年隧甚,是個(gè)神奇之?dāng)?shù)车荔。

薩繆爾·約翰遜(Samuel Johnson, 1709-1784)認(rèn)為還需更長時(shí)間:“卓越乃一生之追求,而非其它”戚扳。

喬叟(Chaucer, 1340-1400)抱怨道"the lyf so short, the craft so long to lerne." (生之有限忧便,學(xué)也無涯)。

希波克拉底(Hippocrates, c. 400BC)因這句話被世人所知:"ars longa,

vita brevis"(譯注:拉丁語帽借,意為“藝無盡珠增,生有涯”)超歌,更長的版本是 "Ars longa, vita brevis, occasio

praeceps, experimentum periculosum, iudicium difficile",翻譯成英文就是 "Life

is short, (the) craft long, opportunity fleeting, experiment

treacherous, judgment difficult." (生有涯蒂教,藝無盡巍举,機(jī)遇瞬逝,踐行誤導(dǎo)凝垛,決斷不易)懊悯。

我的編程成功秘笈是:

首先要對編程感興趣,能從編程中得到樂趣梦皮。一定要讓它足夠有趣炭分,因?yàn)槟阋3帜愕呐d趣長達(dá)十年。

與別的程序員交流剑肯;閱讀別人的代碼——這比看任何書或參加培訓(xùn)課都重要欠窒。

實(shí)踐。最好的學(xué)習(xí)乃實(shí)踐退子。俗話說:“編程的至高境界一定要通過充分的實(shí)踐才能達(dá)到岖妄,而個(gè)人的能力可通過不懈努力

獲得顯著提升〖畔椋” (p. 366) “最有效率的學(xué)習(xí)需要明確的目標(biāo)荐虐,適當(dāng)?shù)碾y度,知識回饋丸凭,并容許重復(fù)或修正錯(cuò)誤福扬。” (p. 20-21)

《實(shí)踐認(rèn)知:每日的思維惜犀、數(shù)學(xué)及文化》(Cognition in Practice: Mind, Mathematics, and Culture

in Everyday Life) 在這方面可做參考铛碑。

如果你愿意,花四年學(xué)習(xí)大學(xué)課程(或者再加上讀研)虽界。這將給你贏得某些工作機(jī)會汽烦,并給予你在該領(lǐng)域的深層見解。

但如果你不喜歡學(xué)校的學(xué)習(xí)莉御,你同樣可以在工作中獲得相似的經(jīng)驗(yàn)撇吞。無論如何,單靠書本是遠(yuǎn)遠(yuǎn)不夠的礁叔‰咕保“學(xué)習(xí)計(jì)算機(jī)科學(xué)不會讓你成為編程專家,如同學(xué)習(xí)繪畫和

色彩理論不會讓你成為畫家一樣”琅关。這是埃里克·雷蒙德(Eric Raymond)說的煮岁,他是《新黑客字典》(The New Hacker's

Dictionary)的作者。我雇用過的最優(yōu)秀程序員,只有高中文憑画机。但他開發(fā)過許多偉大軟件冶伞,有自己的新聞組,通過公司認(rèn)股賺的錢就讓他買下了自己的

夜店色罚。

和其他程序員一起參與工程項(xiàng)目碰缔。在某些項(xiàng)目中擔(dān)當(dāng)最優(yōu)秀程序員,在另一些項(xiàng)目中充當(dāng)最差勁程序員戳护。充當(dāng)領(lǐng)頭羊的

時(shí)候金抡,你要測試你領(lǐng)導(dǎo)一項(xiàng)工程的能力,并用你的視野來激發(fā)他人腌且;如果在項(xiàng)目組中墊底梗肝,就應(yīng)該學(xué)習(xí)其它牛人在做些啥,以及他們不喜歡做的(看他們把哪些活讓

給你做)铺董。

繼續(xù)別人的工程項(xiàng)目巫击。去理解先前程序員寫的程序。學(xué)習(xí)如何理解并解決先前程序員沒有考慮到的問題精续。思考你的程序該如何設(shè)計(jì)以便讓之后的程序員更容易維護(hù)坝锰。

至少學(xué)6種程序語言。其中包括一種支持類抽象的(Java和C++)重付,一種支持函數(shù)抽象的(如Lisp或

ML)顷级,一種支持語義抽象的(Lisp),一種支援聲明規(guī)范的(如Prolog或C++模板)确垫,還有一種支援協(xié)程的(Icon或Scheme)弓颈,另外一種

支持并發(fā)的(Sisal)。

記住删掀,在“計(jì)算機(jī)科學(xué)”里有“計(jì)算機(jī)”一詞翔冀。理解計(jì)算機(jī)執(zhí)行你的代碼的時(shí)候花費(fèi)的時(shí)間。比如:從內(nèi)存中取一個(gè)字(考慮有無緩存未命中情形)披泪,連續(xù)從磁盤讀字纤子,或者在磁盤中定位。

參加語言標(biāo)準(zhǔn)化工作付呕。這可能是有關(guān) ANSI C++ 委員會计福,也可能是決定你編碼風(fēng)格是兩格縮進(jìn)或四格縮進(jìn)。無論如何徽职,你要知道其他人對語言的喜好程度,有時(shí)還要想想他們?yōu)槭裁聪矚g這樣佩厚。

知道自己應(yīng)該在何時(shí)脫身于語言標(biāo)準(zhǔn)化姆钉。

所有上述這些,很難通過書本的學(xué)習(xí)來達(dá)到。我頭一個(gè)孩子出生時(shí)潮瓶,我讀了所有的“如何做”(How

To)系列的書籍陶冷,卻依然對育嬰毫無頭緒。30個(gè)月后毯辅,我第二個(gè)孩子出生埂伦,我還需要溫習(xí)一下那些書嗎?絕對不思恐!相反沾谜,我完全可以參照個(gè)人經(jīng)驗(yàn),而結(jié)果相當(dāng)

有效胀莹。這更讓我確信:我的經(jīng)驗(yàn)勝過那些專家們寫的上千頁文字基跑。

弗雷德·布魯克斯(Fred Brooks)在《沒有銀彈》(No Silver Bullet)一書給出了尋找頂級設(shè)計(jì)師的三條建議:

盡早系統(tǒng)地識別出頂級設(shè)計(jì)師。

分配一個(gè)人作為其職業(yè)規(guī)劃的導(dǎo)師描焰。

給予機(jī)遇讓成長中的設(shè)計(jì)師互相磨礪媳否。

此處假定有部分人已經(jīng)有成為偉大設(shè)計(jì)師的潛質(zhì),你所需的就是要誘導(dǎo)他們荆秦。艾倫·佩里斯(Alan Perlis)一針見血地指出:"假如人人都可以學(xué)雕刻篱竭,那就得教米開朗基羅如何不去干雕刻。對于偉大程序員步绸,也是如此掺逼。”

所以靡努,簡單地買一本Java書坪圾,你或許能找到些有用的東西,但絕不會讓你在24小時(shí)內(nèi)甚至24天抑或24月內(nèi)惑朦,成為行家里手兽泄。

【漸修竹的回答(0票)】:

我也做了兩年c++了,也不敢說精通漾月,我們老大做了至少8年病梢,也沒敢說精通,我認(rèn)識的很多大神梁肿,也都沒敢說精通蜓陌。

事實(shí)上我認(rèn)識的很多大神都很謙虛,我跟他們學(xué)到了很多吩蔑,大家的簡歷上也都寫著熟悉c++之類的字眼钮热。上次公司招聘,來了個(gè)小伙子烛芬,工作兩年隧期,簡歷上寫了精

通c++飒责,結(jié)果連公司的筆試都沒通過。請?jiān)徫掖鸩粚︻}仆潮,我只是單純的看精通這個(gè)詞不太舒服宏蛉。。性置。

【canneljiang的回答(0票)】:

關(guān)鍵是如何理解“精通”

我從大三開始拾并,平均每天用一小時(shí)自己編碼,到大三結(jié)束要找暑期實(shí)習(xí)時(shí)鹏浅,編碼水平比大部分同屆同學(xué)高嗅义,于是順利拿到實(shí)習(xí)機(jī)會以及以后也順利拿到offer

現(xiàn)在出來工作幾年,雖然水平比畢業(yè)時(shí)高很多篡石,但也依然覺得很多東西不會芥喇,很多人比自己強(qiáng)

最后,我覺得對于大學(xué)生凰萨,如果有同學(xué)向你請教編碼問題继控,有同學(xué)請你幫他做編程的作業(yè),那也可以證明這個(gè)人比較強(qiáng)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末胖眷,一起剝皮案震驚了整個(gè)濱河市武通,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌珊搀,老刑警劉巖冶忱,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異境析,居然都是意外死亡囚枪,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門劳淆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來链沼,“玉大人,你說我怎么就攤上這事沛鸵±ㄉ祝” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵曲掰,是天一觀的道長疾捍。 經(jīng)常有香客問我,道長栏妖,這世上最難降的妖魔是什么乱豆? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮吊趾,結(jié)果婚禮上咙鞍,老公的妹妹穿的比我還像新娘房官。我一直安慰自己趾徽,他們只是感情好续滋,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著孵奶,像睡著了一般疲酌。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上了袁,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天朗恳,我揣著相機(jī)與錄音,去河邊找鬼载绿。 笑死粥诫,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的崭庸。 我是一名探鬼主播怀浆,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼怕享!你這毒婦竟也來了执赡?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤函筋,失蹤者是張志新(化名)和其女友劉穎沙合,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體跌帐,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡首懈,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了谨敛。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片究履。...
    茶點(diǎn)故事閱讀 37,997評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖佣盒,靈堂內(nèi)的尸體忽然破棺而出挎袜,到底是詐尸還是另有隱情,我是刑警寧澤肥惭,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布盯仪,位于F島的核電站,受9級特大地震影響蜜葱,放射性物質(zhì)發(fā)生泄漏全景。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一牵囤、第九天 我趴在偏房一處隱蔽的房頂上張望爸黄。 院中可真熱鬧滞伟,春花似錦、人聲如沸炕贵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽称开。三九已至亩钟,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間鳖轰,已是汗流浹背清酥。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蕴侣,地道東北人焰轻。 一個(gè)月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像昆雀,于是被迫代替她去往敵國和親辱志。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,498評論 25 707
  • 本文把程序員所需掌握的關(guān)鍵知識總結(jié)為三大類19個(gè)關(guān)鍵概念忆肾,然后給出了掌握每個(gè)關(guān)鍵概念所需的入門書籍荸频,必讀書籍,以及...
    dle_oxio閱讀 11,081評論 6 244
  • 一根神妙的姻緣紅線把一男一女拴在一起客冈,在一間房子里共同開始生活過日子旭从,如此簡單,一個(gè)叫做“家”的新的社會細(xì)胞誕生了...
    西安吳墨閱讀 579評論 1 1
  • 如此靜的天空场仲,是不是活著的都進(jìn)入了冬眠 我靠著僵硬的墻站著和悦,無奈地沉默 嗅著空氣中的夜的味道 仿佛見著一個(gè)人的路徑...
    木客的雨子閱讀 609評論 0 1
  • 陌生的國道上,熟悉的那首歌渠缕。 你是不是還沒有找到你的蘭州鸽素, 我是不是還沒有忘懷那些所以。 呼喚不能太猛烈亦鳞,因?yàn)檫@該...
    庸人閱讀 248評論 0 1