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

游戲編程全接觸

游戲編程全接觸

定 價:¥48.00

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

ISBN: 9787115132192 出版時間: 2006-01-01 包裝: 平裝
開本: 26cm 頁數(shù): 387 字數(shù):  

內(nèi)容簡介

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

作者簡介

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

圖書目錄

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

第1章 游戲編程很奇怪,因為…… 3
1.1 好的方面 3
1.1.1 工作 4
1.1.2 人 4
1.1.3 工具——軟件開發(fā)包(SDK) 5
1.1.4 硬件 5
1.1.5 平臺 6
1.1.6 會展 7
1.2 壞的地方 8
1.2.1 游戲編程難得離譜 8
1.2.2 其他零碎 9
1.2.3 那不是個bug——那是個特性 9
1.2.4 工具 10
1.3 惡心之處 10
1.3.1 命中移動目標 11
1.3.2 沖刺模式(和沖刺大餐) 11
1.3.3 哼,騙子 12
1.3.4 操作系統(tǒng)地獄 12
1.3.5 雇員流動的天然特質(zhì) 13
1.4 這一切都值得,對嗎? 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ū)動程序和性能問題 24
2.3 我必須用DirectX嗎 25
2.3.1 DirectX的設(shè)計邏輯體系 25
2.3.2 Direct3D或者OpenGL 26
2.3.3 DirectSound或者RAD游戲工具的Miles Sound 26
2.3.4 DirectInput或者自己實現(xiàn) 27
2.3.5 DirectPlay、TCP或者UDP 27
2.3.6 DirectShow或Bink 27
2.3.7 DirectMusic或自己實現(xiàn) 28
2.4 用戶界面編碼 28
2.5 資源緩沖 28
2.6 主循環(huán) 29
2.7 其他 30

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

第二部分 讓游戲跑起來

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

第5章 用戶界面編程和輸入設(shè)備 87
5.1 獲取設(shè)備狀態(tài) 87
5.2 使用鼠標(和游戲桿) 90
5.2.1 捕獲鼠標 91
5.2.2 使用鼠標拖放 92
5.3 使用鍵盤 94
5.3.1 Mike的鍵盤窺探器 94
5.3.2 GetAsyncKeyState()和其他函數(shù) 97
5.3.3 在Windows下處理Alt鍵 98
5.4 用戶界面組件 98
5.4.1 屏幕 98
5.4.2 對話框:模態(tài)與非模態(tài) 101
5.4.3 控件 103
5.4.4 控件判別 105
5.4.5 命中測試和焦點順序 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 拖動 108
5.5.5 聲音和動畫 109
5.6 最后的用戶界面提示 109

第6章 每一個游戲開發(fā)者都應(yīng)該掌握的2D知識 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 一個基本的精靈類 130
6.4.2 排序順序和位置 131
6.4.3 繪制和動畫 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 計算CPU速度 145
7.3.3 估計VRAM 149
7.3.4 加載游戲調(diào)試選項 150
7.3.5 你擁有的是個垃圾袋嗎 151
7.3.6 初始化資源緩存 151
7.3.7 使用CreateWindow來創(chuàng)建窗口 152
7.3.8 初始化聲音系統(tǒng) 154
7.3.9 加載用戶可設(shè)置的游戲選項 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 一個簡單的協(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 圖形和音樂的格式 175
8.1.1 位圖和紋理 176
8.1.2 哪一個更好:24位、16位還是8位的圖形 176
8.1.3 使用有損壓縮 177
8.1.4 聲音和音樂 177
8.1.5 視頻和過場電影 178
8.2 資源文件 179
8.2.1 打包資源到一個文件中 180
8.2.2 打包資源的其他一些優(yōu)點 181
8.3 數(shù)據(jù)壓縮 181
8.4 iPac:一個資源文件生成器 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è)計和緩存預(yù)測 193
8.7 我的緩存不夠了 196

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

第9章 所有游戲程序員必須掌握的3D圖形學(xué)知識 199
9.1 3D圖形流水線 199
9.2 你的DirectX 9試練場 200
9.3 3D數(shù)學(xué)101 200
9.3.1 坐標和坐標系統(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é)了——請停下來 215
9.4.1 三角形 215
9.4.2 光照、法線和顏色 216
9.4.3 貼有紋理的頂點 218
9.4.4 其他頂點數(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 建立項目 229
10.2 使用場景圖 230
10.2.1 場景圖結(jié)點 234
10.2.2 建造場景 239
10.2.3 一個實用的攝像機控制器 242
10.2.4 把SceneGraph放進DirectX游樂場 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 開發(fā)自己的3D引擎 252
10.6 物理引擎 253
10.7 還沒滿足? 254

第11章 開發(fā)Windows游戲需要特殊考慮的事項 255
11.1 Microsoft Foundation Class(MFC)到底怎么樣 256
11.1.1 MFC——你一定瘋了!!?@! 257
11.1.2 MFC——你一定要使用它 257
11.1.3 對MFC的最后裁決 258
11.2 窗口模式和全屏幕模式 259
11.2.1 丟失或者不兼容的表面 260
11.2.2 壞窗口 262
11.2.3 GDI對話框和頁面翻轉(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 游戲的注冊表鍵 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è)計(Designed for Windows)”標志認證程序 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符號文件 292
12.2.3 調(diào)試全屏游戲 294
12.2.4 遠程調(diào)試 294
12.2.5 調(diào)試微型轉(zhuǎn)儲(dump) 296
12.3 調(diào)試技巧 299
12.3.1 調(diào)試是一個實驗 300
12.3.2 重現(xiàn)bug 301
12.3.3 減小復(fù)雜度 302
12.3.4 設(shè)置下一語句 302
12.3.5 匯編級別調(diào)試 303
12.3.6 給代碼添加調(diào)料 305
12.3.7 提取調(diào)試信息 306
12.3.8 Lint和其他代碼分析器 306
12.3.9 BoundsChecker和實時分析器 307
12.3.10 消失的bug 307
12.3.11 調(diào)整數(shù)值 307
12.3.12 caveman調(diào)試 308
12.3.13 當一切辦法都失敗了 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章 進度計劃的藝術(shù) 321
13.1 好進度、壞進度 321
13.2 所有進度計劃的關(guān)鍵:里程碑 322
13.3 做計劃前需要懂得的事情 330
13.3.1 使用微軟Project的技巧與訣竅 330
13.3.2 電腦游戲中的關(guān)鍵編程任務(wù) 331
13.3.3 基于物件的進度安排 332
13.3.4 編寫用戶手冊和cluebook 333
13.3.5 了解隊伍,了解游戲類型 333
13.4 創(chuàng)建進度計劃 333
13.4.1 收集任務(wù)倉庫 334
13.4.2 關(guān)于預(yù)計時間的一些說明 335
13.4.3 分配任務(wù)和平衡進度 335
13.4.4 產(chǎn)品黑洞 337
13.4.5 把進度切分成里程碑 338
13.4.6 撰寫項目里程碑文檔 339
13.4.7 編寫個人里程碑文檔 339
13.4.8 在放出獵犬前還有一件你應(yīng)該知道的事情 340
13.5 把事情做對 340

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

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

本目錄推薦

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