注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)其他編程語(yǔ)言/工具游戲編程全接觸

游戲編程全接觸

游戲編程全接觸

定 價(jià):¥48.00

作 者: (美)Mike McShaffry著;馮兆麟,孔祥一,李華杰譯;馮兆麟譯
出版社: 人民郵電出版社
叢編項(xiàng): 第九藝術(shù)學(xué)院游戲開(kāi)發(fā)系列
標(biāo) 簽: 暫缺

ISBN: 9787115132192 出版時(shí)間: 2006-01-01 包裝: 平裝
開(kāi)本: 26cm 頁(yè)數(shù): 387 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  本書(shū)的作者以其對(duì)游戲行業(yè)的獨(dú)到見(jiàn)解,講述了游戲開(kāi)發(fā)的方方面面。從游戲是怎樣一個(gè)行業(yè)到游戲業(yè)中形形色色的人;從細(xì)瑣的技巧和算法,到游戲的結(jié)構(gòu)和架構(gòu):從調(diào)試技巧到進(jìn)度里程碑的創(chuàng)建和項(xiàng)目進(jìn)度的管理。本書(shū)共15章,分成四大部分:第一部分“游戲編程基礎(chǔ)”,介紹了游戲的主要組成部分及其如何相互作用,并展示了一些游戲編程工具箱中的必備工具;第二部分“讓游戲跑起來(lái)”,向讀者展示第一個(gè)充滿內(nèi)容的游戲代碼示例,包括用戶界面代碼、2D圖形代碼和主循環(huán):第三部分“構(gòu)建你的游戲”,進(jìn)一步講述更復(fù)雜的代碼,如3D代碼、Windows游戲的特殊代碼和一些優(yōu)秀的debug工具;第四部分“專業(yè)游戲制作”,展示了實(shí)際的開(kāi)發(fā)游戲過(guò)程,從進(jìn)度安排到測(cè)試,到最終的游戲交付。.無(wú)論對(duì)于游戲項(xiàng)目經(jīng)理,游戲程序員,還是一名對(duì)游戲充滿好奇心的狂熱愛(ài)好者,本書(shū)都將讓讀者受益匪淺。...

作者簡(jiǎn)介

  Mike McShaffry在剛會(huì)敲鍵盤(pán)時(shí)就開(kāi)始了游戲編程。高中畢業(yè)不久他就進(jìn)入了電腦游戲業(yè)的訓(xùn)練營(yíng)——0rigin Systems公司。他參與開(kāi)發(fā)了Martian Dreams、《創(chuàng)世紀(jì)VII:黑門(mén)》、《創(chuàng)世紀(jì)VIII:異教徒》、《創(chuàng)世紀(jì)Ix:阿森松》和《網(wǎng)絡(luò)創(chuàng)世紀(jì)》。在那里工作了7年后,Mike辭職了,并于1997年創(chuàng)建了他的第一個(gè)公司——車(chē)庫(kù)里出來(lái)的Tornado Alley。它的目標(biāo)是為孩子制作一款“成年人禁止入內(nèi)”的超多用戶世界。隨后他在Glass Eye Entertainment公司就職,為Monty Kerr工作。他在那里開(kāi)發(fā)了Microsoft Casino。短短10個(gè)月之后,Monty要求Mike和他新組建的團(tuán)隊(duì)開(kāi)創(chuàng)自己的公司,稱為Compulsive Development,它專門(mén)和微軟合作開(kāi)發(fā)棋牌類游戲項(xiàng)目。Mike目前是Glass Eye Entertainment公司軟件開(kāi)發(fā)的領(lǐng)導(dǎo)。

圖書(shū)目錄

第一部分 游戲編程基礎(chǔ)

第1章 游戲編程很奇怪,因?yàn)椤?
1.1 好的方面 3
1.1.1 工作 4
1.1.2 人 4
1.1.3 工具——軟件開(kāi)發(fā)包(SDK) 5
1.1.4 硬件 5
1.1.5 平臺(tái) 6
1.1.6 會(huì)展 7
1.2 壞的地方 8
1.2.1 游戲編程難得離譜 8
1.2.2 其他零碎 9
1.2.3 那不是個(gè)bug——那是個(gè)特性 9
1.2.4 工具 10
1.3 惡心之處 10
1.3.1 命中移動(dòng)目標(biāo) 11
1.3.2 沖刺模式(和沖刺大餐) 11
1.3.3 哼,騙子 12
1.3.4 操作系統(tǒng)地獄 12
1.3.5 雇員流動(dòng)的天然特質(zhì) 13
1.4 這一切都值得,對(duì)嗎? 13

第2章 游戲中有什么 15
2.1 顯示技術(shù):快速概述 15
2.1.1 分辨率和位深 15
2.1.2 核心顯示技術(shù):2D或者3D 17
2.2 混合2D和3D技術(shù) 23
2.2.1 Grim Fandango 23
2.2.2 視頻驅(qū)動(dòng)程序和性能問(wèn)題 24
2.3 我必須用DirectX嗎 25
2.3.1 DirectX的設(shè)計(jì)邏輯體系 25
2.3.2 Direct3D或者OpenGL 26
2.3.3 DirectSound或者RAD游戲工具的Miles Sound 26
2.3.4 DirectInput或者自己實(shí)現(xiàn) 27
2.3.5 DirectPlay、TCP或者UDP 27
2.3.6 DirectShow或Bink 27
2.3.7 DirectMusic或自己實(shí)現(xiàn) 28
2.4 用戶界面編碼 28
2.5 資源緩沖 28
2.6 主循環(huán) 29
2.7 其他 30

第3章 所有游戲程序員都應(yīng)該了解的“簡(jiǎn)單東西” 31
3.1 不可或缺的設(shè)計(jì)實(shí)踐 31
3.1.1 避免隱藏代碼和非簡(jiǎn)單操作 32
3.1.2 類結(jié)構(gòu):保持簡(jiǎn)單 32
3.1.3 繼承和包含 33
3.1.4 變壞的虛函數(shù) 33
3.1.5 使用接口類 34
3.1.6 考慮使用工廠 34
3.1.7 從游戲邏輯中分離用戶界面 35
3.1.8 實(shí)現(xiàn)流構(gòu)造函數(shù) 35
3.2 智能指針和裸指針 36
3.2.1 引用計(jì)數(shù) 36
3.2.2 智能指針 37
3.3 正確使用內(nèi)存 41
3.3.1 了解不同種類的內(nèi)存 41
3.3.2 優(yōu)化內(nèi)存訪問(wèn) 44
3.3.3 內(nèi)存對(duì)齊 45
3.3.4 虛擬內(nèi)存 46
3.3.5 使用內(nèi)存映射文件 46
3.3.6 編寫(xiě)自己的內(nèi)存管理器 48
3.4 游戲腳本語(yǔ)言 49
3.4.1 使用腳本來(lái)處理文本 50
3.4.2 事件腳本 51
3.4.3 解釋與編譯 51
3.4.4 用Lex和Yacc開(kāi)發(fā)自己的語(yǔ)言 52
3.4.5 Python和Lua 56
3.5 Mike一背包的好東西 57
3.5.1 一個(gè)很棒的隨機(jī)數(shù)發(fā)生器 57
3.5.2 用Optional支持可選變量 59
3.5.3 集合的偽隨機(jī)遍歷 64
3.6 這并不是那么簡(jiǎn)單 67

第二部分 讓游戲跑起來(lái)

第4章 build游戲 71
4.1 一點(diǎn)動(dòng)機(jī) 71
4.2 創(chuàng)建項(xiàng)目 72
4.2.1 創(chuàng)建堅(jiān)不可摧的目錄結(jié)構(gòu) 72
4.2.2 游戲引擎放在哪里? 75
4.2.3 Visual Studio build選項(xiàng)配置 75
4.2.4 build配置 76
4.3 源代碼倉(cāng)庫(kù)和版本控制 76
4.3.1 NXN的AlienBrain 77
4.3.2 微軟的Visual SourceSafe 78
4.3.3 免費(fèi)的東西:CVS、RCS、…… 78
4.3.4 Perforce軟件的Perforce 79
4.3.5 非常昂貴的工具:StarTeam和ClearCase 79
4.3.6 使用源代碼控制分支 79
4.4 build游戲:一門(mén)黑色藝術(shù)? 81
4.4.1 自動(dòng)化build 82
4.4.2 build機(jī)器 82
4.4.3 自動(dòng)build腳本 82
4.5 創(chuàng)建build腳本 83
4.5.1 標(biāo)準(zhǔn)build 83
4.5.2 里程碑build 84
4.6 多個(gè)項(xiàng)目和共享代碼 85
4.7 最后的建議 86

第5章 用戶界面編程和輸入設(shè)備 87
5.1 獲取設(shè)備狀態(tài) 87
5.2 使用鼠標(biāo)(和游戲桿) 90
5.2.1 捕獲鼠標(biāo) 91
5.2.2 使用鼠標(biāo)拖放 92
5.3 使用鍵盤(pán) 94
5.3.1 Mike的鍵盤(pán)窺探器 94
5.3.2 GetAsyncKeyState()和其他函數(shù) 97
5.3.3 在Windows下處理Alt鍵 98
5.4 用戶界面組件 98
5.4.1 屏幕 98
5.4.2 對(duì)話框:模態(tài)與非模態(tài) 101
5.4.3 控件 103
5.4.4 控件判別 105
5.4.5 命中測(cè)試和焦點(diǎn)順序 106
5.4.6 控件狀態(tài) 107
5.5 更多控件屬性 107
5.5.1 熱鍵 108
5.5.2 工具提示 108
5.5.3 上下文敏感幫助 108
5.5.4 拖動(dòng) 108
5.5.5 聲音和動(dòng)畫(huà) 109
5.6 最后的用戶界面提示 109

第6章 每一個(gè)游戲開(kāi)發(fā)者都應(yīng)該掌握的2D知識(shí) 111
6.1 2D繪制和DirectX 112
6.1.1 像素和視頻硬件 112
6.1.2 視頻硬件和緩存 113
6.1.3 視頻表面和內(nèi)存表面 115
6.2 基本2D繪制概念 116
6.2.1 Windows位圖和其他GDI的小玩意 117
6.2.2 顏色鍵和色度鍵 118
6.2.3 復(fù)制表面 120
6.2.4 使用Alpha通道復(fù)制表面 121
6.3 繪制文本 127
6.4 使用精靈(sprite) 130
6.4.1 一個(gè)基本的精靈類 130
6.4.2 排序順序和位置 131
6.4.3 繪制和動(dòng)畫(huà) 132
6.4.4 初始化精靈 135
6.4.5 Restore() 136
6.4.6 臟矩形繪制 136
6.5 圖形文件格式 137
6.6 結(jié)論 138

第7章 初始化和主循環(huán) 139
7.1 初始化101 139
7.2 C++初始化中的一些缺陷 140
7.3 初始化游戲 144
7.3.1 檢查系統(tǒng)資源 144
7.3.2 計(jì)算CPU速度 145
7.3.3 估計(jì)VRAM 149
7.3.4 加載游戲調(diào)試選項(xiàng) 150
7.3.5 你擁有的是個(gè)垃圾袋嗎 151
7.3.6 初始化資源緩存 151
7.3.7 使用CreateWindow來(lái)創(chuàng)建窗口 152
7.3.8 初始化聲音系統(tǒng) 154
7.3.9 加載用戶可設(shè)置的游戲選項(xiàng) 154
7.3.10 創(chuàng)建繪圖表面 155
7.3.11 初始化游戲?qū)ο蟆?56
7.4 主循環(huán) 156
7.4.1 渲染并呈現(xiàn)屏幕 159
7.4.2 更新游戲狀態(tài) 161
7.4.3 一個(gè)簡(jiǎn)單的協(xié)同多任務(wù)調(diào)度器 163
7.4.4 從CProcess派生的類示例 169
7.4.5 CProcess派生類的更多使用 170
7.5 平穩(wěn)著陸:干凈漂亮地退出 170
7.5.1 我該如何從這里逃脫 171
7.5.2 關(guān)閉游戲 172
7.6 我現(xiàn)在就可以做游戲了嗎 173

第8章 載入并緩沖資源 175
8.1 圖形和音樂(lè)的格式 175
8.1.1 位圖和紋理 176
8.1.2 哪一個(gè)更好:24位、16位還是8位的圖形 176
8.1.3 使用有損壓縮 177
8.1.4 聲音和音樂(lè) 177
8.1.5 視頻和過(guò)場(chǎng)電影 178
8.2 資源文件 179
8.2.1 打包資源到一個(gè)文件中 180
8.2.2 打包資源的其他一些優(yōu)點(diǎn) 181
8.3 數(shù)據(jù)壓縮 181
8.4 iPac:一個(gè)資源文件生成器 182
8.4.1 iPac概觀 182
8.4.2 iPac數(shù)據(jù)文件 185
8.4.3 生成頭文件 187
8.4.4 其他與管理資源有關(guān)的特性 188
8.5 資源高速緩存 188
8.6 世界設(shè)計(jì)和緩存預(yù)測(cè) 193
8.7 我的緩存不夠了 196

第三部分 構(gòu)建你的游戲

第9章 所有游戲程序員必須掌握的3D圖形學(xué)知識(shí) 199
9.1 3D圖形流水線 199
9.2 你的DirectX 9試練場(chǎng) 200
9.3 3D數(shù)學(xué)101 200
9.3.1 坐標(biāo)和坐標(biāo)系統(tǒng) 201
9.3.2 矢量數(shù)學(xué) 202
9.3.3 矩陣數(shù)學(xué) 206
9.3.4 四元組數(shù)學(xué) 211
9.3.5 視變換 213
9.3.6 投影變換 214
9.4 我受夠數(shù)學(xué)了——請(qǐng)停下來(lái) 215
9.4.1 三角形 215
9.4.2 光照、法線和顏色 216
9.4.3 貼有紋理的頂點(diǎn) 218
9.4.4 其他頂點(diǎn)數(shù)據(jù) 219
9.4.5 三角形網(wǎng)格 219
9.4.6 索引的三角形網(wǎng)格 221
9.4.7 材質(zhì) 223
9.4.8 紋理 224
9.4.9 二次抽樣(subsampling) 225
9.4.10 mip-mapping 226
9.5 3D圖形——它那么容易 226

第10章 3D引擎 229
10.1 建立項(xiàng)目 229
10.2 使用場(chǎng)景圖 230
10.2.1 場(chǎng)景圖結(jié)點(diǎn) 234
10.2.2 建造場(chǎng)景 239
10.2.3 一個(gè)實(shí)用的攝像機(jī)控制器 242
10.2.4 把SceneGraph放進(jìn)DirectX游樂(lè)場(chǎng) 247
10.3 遺漏了什么? 249
10.4 3D中間件回顧 250
10.4.1 Renderware Graphics 251
10.4.2 Intrinsic Alchemy 251
10.4.3 NDL出品的NetImmerse 252
10.4.4 虛幻引擎 252
10.5 開(kāi)發(fā)自己的3D引擎 252
10.6 物理引擎 253
10.7 還沒(méi)滿足? 254

第11章 開(kāi)發(fā)Windows游戲需要特殊考慮的事項(xiàng) 255
11.1 Microsoft Foundation Class(MFC)到底怎么樣 256
11.1.1 MFC——你一定瘋了!!?@! 257
11.1.2 MFC——你一定要使用它 257
11.1.3 對(duì)MFC的最后裁決 258
11.2 窗口模式和全屏幕模式 259
11.2.1 丟失或者不兼容的表面 260
11.2.2 壞窗口 262
11.2.3 GDI對(duì)話框和頁(yè)面翻轉(zhuǎn)(Flipping) 263
11.2.4 需要處理的消息 263
11.2.5 WM_ACTIVATE 264
11.2.6 WM_SYSCOMMAND 265
11.2.7 WM_MOVE 265
11.2.8 WM_DEVICECHANGE 266
11.2.9 WM_POWERBROADCAST 267
11.2.10 WM_DISPLAYCHANGE 267
11.2.11 WM_ENTERSIZEMOVE、WM_EXITSIZEMOVE 267
11.2.12 WM_GETMINMAXINFO 267
11.3 操作系統(tǒng)相關(guān)的內(nèi)容 268
11.3.1 API兼容性和UNICODE 268
11.3.2 游戲的注冊(cè)表鍵 269
11.3.3 Windows 95 269
11.3.4 Windows 98和Windows ME 269
11.3.5 Windows NT 270
11.3.6 Windows 2000 270
11.3.7 Windows XP 270
11.4 “專為Windows設(shè)計(jì)(Designed for Windows)”標(biāo)志認(rèn)證程序 270
11.5 結(jié)論 285

第12章 調(diào)試游戲 287
12.1 處理失敗的藝術(shù) 288
12.2 調(diào)試基礎(chǔ) 289
12.2.1 使用調(diào)試器 291
12.2.2 安裝Windows符號(hào)文件 292
12.2.3 調(diào)試全屏游戲 294
12.2.4 遠(yuǎn)程調(diào)試 294
12.2.5 調(diào)試微型轉(zhuǎn)儲(chǔ)(dump) 296
12.3 調(diào)試技巧 299
12.3.1 調(diào)試是一個(gè)實(shí)驗(yàn) 300
12.3.2 重現(xiàn)bug 301
12.3.3 減小復(fù)雜度 302
12.3.4 設(shè)置下一語(yǔ)句 302
12.3.5 匯編級(jí)別調(diào)試 303
12.3.6 給代碼添加調(diào)料 305
12.3.7 提取調(diào)試信息 306
12.3.8 Lint和其他代碼分析器 306
12.3.9 BoundsChecker和實(shí)時(shí)分析器 307
12.3.10 消失的bug 307
12.3.11 調(diào)整數(shù)值 307
12.3.12 caveman調(diào)試 308
12.3.13 當(dāng)一切辦法都失敗了 308
12.4 各種各樣的bug 309
12.4.1 內(nèi)存泄漏和堆溢出 309
12.4.2 游戲數(shù)據(jù)損壞 312
12.4.3 棧破壞 313
12.4.4 剪切和粘貼的bug 314
12.4.5 空間不足 314
12.4.6 只有在release模式才出現(xiàn)的bug 315
12.4.7 惹事生非的多線程 315
12.4.8 奇怪的那些 315
12.5 結(jié)束小思 317

第四部分 專業(yè)游戲制作

第13章 進(jìn)度計(jì)劃的藝術(shù) 321
13.1 好進(jìn)度、壞進(jìn)度 321
13.2 所有進(jìn)度計(jì)劃的關(guān)鍵:里程碑 322
13.3 做計(jì)劃前需要懂得的事情 330
13.3.1 使用微軟Project的技巧與訣竅 330
13.3.2 電腦游戲中的關(guān)鍵編程任務(wù) 331
13.3.3 基于物件的進(jìn)度安排 332
13.3.4 編寫(xiě)用戶手冊(cè)和cluebook 333
13.3.5 了解隊(duì)伍,了解游戲類型 333
13.4 創(chuàng)建進(jìn)度計(jì)劃 333
13.4.1 收集任務(wù)倉(cāng)庫(kù) 334
13.4.2 關(guān)于預(yù)計(jì)時(shí)間的一些說(shuō)明 335
13.4.3 分配任務(wù)和平衡進(jìn)度 335
13.4.4 產(chǎn)品黑洞 337
13.4.5 把進(jìn)度切分成里程碑 338
13.4.6 撰寫(xiě)項(xiàng)目里程碑文檔 339
13.4.7 編寫(xiě)個(gè)人里程碑文檔 339
13.4.8 在放出獵犬前還有一件你應(yīng)該知道的事情 340
13.5 把事情做對(duì) 340

第14章 測(cè)試須知 343
14.1 游戲?yàn)槭裁从衎ug 343
14.1.1 理由1:開(kāi)發(fā)組從沒(méi)有見(jiàn)到bug重現(xiàn) 343
14.1.2 理由2:項(xiàng)目組決定把bug置之不理 344
14.2 測(cè)試計(jì)劃 345
14.2.1 功能測(cè)試 345
14.2.2 壓力測(cè)試 348
14.2.3 可玩性測(cè)試 350
14.2.4 可用性測(cè)試 350
14.2.5 配置測(cè)試 351
14.3 安排測(cè)試 352
14.4 自動(dòng)化的測(cè)試 352
14.5 bug數(shù)據(jù)庫(kù) 359
14.6 哪些bug得到修正 365
14.6.1 絕不要修復(fù)這些bug 367
14.6.2 bug花費(fèi)高昂 367
14.7 對(duì)bug數(shù)據(jù)庫(kù)的靜態(tài)分析 368
14.8 測(cè)試組 370
14.9 beta公測(cè) 371
14.10 結(jié)束語(yǔ) 372

第15章 駛向結(jié)束 373
15.1 結(jié)束時(shí)的問(wèn)題 374
15.1.1 質(zhì)量 374
15.1.2 代碼 375
15.1.3 內(nèi)容 378
15.2 應(yīng)付大麻煩 379
15.2.1 嚴(yán)重滯后于計(jì)劃的項(xiàng)目 379
15.2.2 人事相關(guān)問(wèn)題 382
15.2.3 競(jìng)爭(zhēng)對(duì)手會(huì)置你于死地 384
15.2.4 沒(méi)有出路,是嗎? 384
15.2.5 最后說(shuō)一句:不要慌張 385
15.3 光明就在前方——畢竟不是一場(chǎng)訓(xùn)練 385
15.3.1 測(cè)試存檔 385
15.3.2 補(bǔ)丁build或者產(chǎn)品演示 386
15.3.3 事后分析 386
15.3.4 如何利用你的時(shí)間 387

本目錄推薦

掃描二維碼
Copyright ? 讀書(shū)網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)