C++游戲開(kāi)發(fā),大神十年的絕技,正確的修煉方式,從零開(kāi)始

推薦:下面是這些資料的一個(gè)清單(零編程基礎(chǔ)開(kāi)始):

1.《C++ primer》

2.《Windows程序設(shè)計(jì)》

3.《VC++深入詳解》

4.《Windows核心編程》

5.《Effective STL》

6.《Windows游戲編程大師技巧》

7.《DIRECTX.9.0.3D游戲開(kāi)發(fā)編程基礎(chǔ)》

這個(gè)書(shū)籍是從零編程基礎(chǔ)開(kāi)始的,其中部分書(shū)中涉及到了DirectDraw與Direct3D8,這兩個(gè)API在新版本DirectX SDK中都被移除了,現(xiàn)在基本上無(wú)用武之地,所以涉及到DirectDraw與Direct3D 8的那部分就不用仔細(xì)看了哈。


1.DirectX的定義

首先,我們必須了解DirectX的定義。DirectX,(Direct eXtension,簡(jiǎn)稱(chēng)DX)是由微軟公司創(chuàng)建的多媒體編程接口。由C++編程語(yǔ)言實(shí)現(xiàn),遵循COM。被廣泛使用于Microsoft Windows、Microsoft Xbox和Microsoft Xbox 360電子游戲開(kāi)發(fā),并且只能支持這些平臺(tái)。最新版本為DirectX 11,創(chuàng)建在最新的Windows 7上。MicrosoftDirectX是這樣一組技術(shù):它們旨在使基于Windows的計(jì)算機(jī)成為運(yùn)行和顯示具有豐富多媒體元素(例如全色圖形、視頻、3D動(dòng)畫(huà)和豐富音頻)的應(yīng)用程序的理想平臺(tái)。DirectX包括安全和性能更新程序,以及許多涵蓋所有技術(shù)的新功能。應(yīng)用程序可以通過(guò)使用DirectX API來(lái)訪問(wèn)這些新功能。

學(xué)編程最重要的是實(shí)踐,就是寫(xiě)代碼、看別人寫(xiě)的代碼、再寫(xiě)代碼,你看再多的書(shū),不寫(xiě)代碼,你還是不會(huì)編程。但是寫(xiě)代碼也要講究方法循序漸進(jìn),不能剛學(xué)了幾天語(yǔ)法,就想寫(xiě)個(gè)操作系統(tǒng)什么的,樹(shù)立這種不切實(shí)際的目標(biāo)只會(huì)讓你的自信受到嚴(yán)重打擊迷失自我。同時(shí)小編推薦一個(gè)學(xué)C/C++的學(xué)習(xí)群655706150無(wú)論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來(lái)了解一起進(jìn)步一起學(xué)習(xí)!群內(nèi)有很多干貨和技術(shù)分享!

C/C++的學(xué)習(xí)qun:655706150無(wú)論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都行

2.引擎設(shè)計(jì)概述

游戲引擎是一系列高檔代碼,我們能夠以它為基礎(chǔ)開(kāi)發(fā)自己的游戲。現(xiàn)代的游戲引擎現(xiàn)已對(duì)運(yùn)用他的人隱藏了底層完結(jié)的細(xì)節(jié)和標(biāo)準(zhǔn)。如,能夠在OpenGL和Direct3D的基礎(chǔ)上開(kāi)發(fā)烘托引擎,這樣,引擎用戶就不需求知道運(yùn)用的是哪一個(gè)烘托引擎,盡管也用到了一些底層的東西。游戲引擎包括:烘托引擎,物理引擎,聲響引擎等。游戲引擎自身只是一個(gè)由更小的引擎組成的調(diào)集。游戲引擎或它包括的內(nèi)容并沒(méi)有一個(gè)精確的界說(shuō)。關(guān)于視頻游戲而言,它的游戲引擎至少要包括烘托引擎和輸入引擎,這是必須的,不然,就不能稱(chēng)其為交互式游戲。游戲程序員和游戲引擎程序員完結(jié)的是兩種不同的作業(yè)。游戲程序員只與開(kāi)發(fā)游戲的游戲引擎打交道,而游戲引擎程序員要開(kāi)宣布其他人用于開(kāi)發(fā)游戲的引擎


3.游戲引擎中的幾個(gè)關(guān)鍵系統(tǒng)

游戲引擎中的幾個(gè)關(guān)鍵系統(tǒng)有:游戲渲染系統(tǒng),輸入系統(tǒng),聲音系統(tǒng),物理系統(tǒng),動(dòng)畫(huà)系統(tǒng),人工智能(AI)系統(tǒng)等。

4. DirectX API函數(shù)

DirectX的API主要由DirectGraphics,DirectInput,DirectPlay,DirectMusic,DirectSound組成。每個(gè)API之間相互獨(dú)立,負(fù)責(zé)完成DirectX內(nèi)核中不同的功能。DirectX中每個(gè)API都可以通過(guò)硬件加速,這意味著這些API可以直接和運(yùn)行軟件的底層硬件對(duì)話。下面是各種API函數(shù)的概要解釋。

DirectGraphics:DirectGraphics為負(fù)責(zé)向屏幕渲染二維圖形和三維圖形的DirectX API,也就是眾所周知的Direct3D。

DirectInput:DirectInput是可以直接使用所有與計(jì)算機(jī)關(guān)聯(lián)的輸入設(shè)備的DirectX API。這些設(shè)備包括鍵盤(pán),鼠標(biāo)和游戲控制器設(shè)備。

DirectPlay:DirectPlay是控制Direct中網(wǎng)絡(luò)功能的Direct API。DirectPlay可以讓?xiě)?yīng)用程序?qū)C(jī)器進(jìn)行網(wǎng)絡(luò)功能設(shè)置,從而可以通過(guò)和其他網(wǎng)絡(luò)玩家交流。

DirectMusic:DirectMusic是負(fù)責(zé)普通聲音處理的DirectX API。

DirectSound:DirectSound是負(fù)責(zé)高級(jí)聲音處理的DirectX API。


5.動(dòng)手寫(xiě)一個(gè)窗口

在Windows中使用Direct3D創(chuàng)建Win32窗口非常簡(jiǎn)單。要?jiǎng)?chuàng)建一個(gè)Win32窗口就必須擁有一個(gè)WinMain函數(shù)(這不是廢話是什么)。我們可以在MSDN中查到WinMain的標(biāo)準(zhǔn)句法

int WINAPI WinMain(

HINSTANCE hInstance,

HINSTANCE hPrevInstance,

LPSTR lpCmdLine,

int nCmdShow

);

當(dāng)程序第一次運(yùn)行時(shí),WinMain函數(shù)中的所有參數(shù)從系統(tǒng)獲取自己的相應(yīng)參數(shù)值。通過(guò)在WinMain函數(shù)內(nèi)部創(chuàng)建一個(gè)類(lèi)型為WNDCLASSSEX的窗口類(lèi)對(duì)象,創(chuàng)建窗口,然后顯示窗口,然后進(jìn)行消息循環(huán),就可以實(shí)現(xiàn)一個(gè)空窗口的顯示。具體實(shí)現(xiàn)代碼如下:下面是上面講的框架代碼,也是后面的筆記二的基礎(chǔ),需要結(jié)合筆記二一起看。

發(fā)現(xiàn)大家都在留言中說(shuō)要推薦一下游戲開(kāi)發(fā)相關(guān)的書(shū)籍,我這里就把各個(gè)階段(從零基礎(chǔ)開(kāi)始)的推薦教程列出來(lái)吧,平時(shí)我寫(xiě)這個(gè)系列的筆記就參考了下面的很多書(shū)籍,大家感興趣的話,可以深入去學(xué)習(xí)(推薦去買(mǎi)實(shí)體書(shū),這樣就不用整天盯著電腦屏幕看傷害眼睛,健康是用錢(qián)買(mǎi)不來(lái)的):

第一階段,首先是C++的精通。推薦《C++ Primer》,之后《Effect C++》。

第二階段,熟悉windows下的編程。推薦看《Windows程序設(shè)計(jì)》。

第三階段,Visual C++的學(xué)習(xí)。推薦的書(shū)《VC++深入詳解》。以及侯俊杰老師的《MFC深入詳解》,與時(shí)俱進(jìn)的有《Visual C++2010入門(mén)經(jīng)典》。

(第二階段和第三階段可以結(jié)合著來(lái)學(xué)習(xí),有很多知識(shí)是相輔相成的,并沒(méi)有什么大的界限。)

第四階段,剛開(kāi)始學(xué)習(xí)專(zhuān)門(mén)介紹游戲開(kāi)發(fā)的教程(有DirectX和OpenGL兩條路可選,這兒我們挑選DirectX,DirectX在國(guó)內(nèi)為干流。 ,薦書(shū)本為《DirectX 9.0 3D游戲開(kāi)發(fā)編程基礎(chǔ)》(封面為一個(gè)紅龍的),《Windows游戲編程大師技巧》,《Direct3D游戲開(kāi)發(fā)技能詳解》等等,當(dāng)然這類(lèi)教程就比較多了,新出的有許多,DirectX相關(guān)的層出不窮,也能夠挑選剛發(fā)行不久的新書(shū),畢竟上面講的常識(shí)比較前沿與更具老練性。(依然感謝liusofttech的指出,為什么我沒(méi)有引薦專(zhuān)門(mén)講解3D編程數(shù)學(xué)根底的教程。我沒(méi)有專(zhuān)門(mén)指出來(lái),是因?yàn)楹?jiǎn)直每一本Direct3D教材里面都有一章到幾章有關(guān)必備數(shù)學(xué)根底常識(shí)的講解。我覺(jué)得獨(dú)自來(lái)學(xué)數(shù)學(xué)根底沒(méi)必要,費(fèi)時(shí)且吃力,我們只要在Direct3D或許OpenGL教材里掌握相關(guān)的數(shù)學(xué)常識(shí),那就足夠了。)

喜歡的可以點(diǎn)一下關(guān)注,

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,622評(píng)論 6 544
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,716評(píng)論 3 429
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 178,746評(píng)論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 63,991評(píng)論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,706評(píng)論 6 413
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 56,036評(píng)論 1 329
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,029評(píng)論 3 450
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 43,203評(píng)論 0 290
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,725評(píng)論 1 336
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,451評(píng)論 3 361
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,677評(píng)論 1 374
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,161評(píng)論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,857評(píng)論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 35,266評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 36,606評(píng)論 1 295
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,407評(píng)論 3 400
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,643評(píng)論 2 380

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