標籤: 暫無標籤

1 遊戲之旅 -內容簡介

  這是一本非常有特色的計算機編程學習書籍。其特色就在於它將作者十餘年來對遊戲編程的所思、所感、所悟與編程理論知識相結合,褪去了純理論的教學理念,使讀者在前人的學習過程中吸取學習經驗和教訓,將計算機基礎知識和高級編程技術不知不覺地融入自己的頭腦中。

  本書忠實地記錄了作者十餘年來對遊戲編程的所思、所感、所悟。全書按照作者本人學習和實踐的過程,帶著讀者從基礎的計算機知識到高級的編程技術,從非常專業的彙編優化到非常實際的項目管理進行了一次遊戲開發的全景探索。

2 遊戲之旅 -出版信息

  副標題: 我的編程感悟

遊戲之旅

作者: 雲風

  出版社: 電子工業出版社

  出版年: 2005-12-01

  頁數: 389

  定價: 46.00

  裝幀: 平裝

  ISBN: 9787121016097

3 遊戲之旅 -圖書目錄

  第1章 計算機,遊戲,我 1

  1.1 計算機 2

  1.2 計算機遊戲 3

  1.3 計算機與我 7

  1.3.1 啟蒙 7

  1.3.2 編程 9

  第2章 演算法,程序的靈魂 13

  2.1 程序=演算法+數據結構 14

  2.1.1 演算法 15

  2.1.2 數據結構 17

  2.2 搜索演算法 23

  2.2.1 地圖尋路問題 23

  2.2.2 博弈問題 27

  2.2.3 更為廣泛的運用 28

  2.3 智能演算法 29

  2.3.1 遺傳演算法(Genetic Algorithm) 29

  2.3.2 模擬退火演算法(Simulated Annealing) 31

  2.3.3 禁忌搜索(Tabu Search) 33

  2.3.4 人工神經網路

  (Artificial Neural Network) 34

  2.4 優化 36

  2.4.1 質數問題 36

  1.4.2 俄羅斯方塊競賽 37

  2.5 apple II上的編程之路 39

  第3章 編程語言 45

  3.1 C 語言 46

  3.2 BASIC 50

  3.3 C++ 51

  3.4 彙編語言 54

  3.4.1 概述 55

  3.4.2 程序的本質 57

  3.4.3 寄存器 58

  3.4.4 定址方式 60

  3.4.5 彙編指令 61

  3.4.6 C/C++ 語言和彙編 62

  3.4.7 小結 63

  3.5 其他語言 63

  3.5.1 Forth 63

  3.5.2 Lisp 64

  3.5.3 Java 64

  3.5.4 Python、Lua、更多 65

  第4章 前Windows 時代 67

  4.1 386保護模式 68

  4.2 VGA 到VESA 70

  4.2.1 超越 BGI 70

  4.2.2 VGA 72

  4.2.3 VESA 標準 72

  4.2.4 花絮 74

  4.3 保護模式下的開發工具 75

  4.4 閑話 Allegro 81

  4.4.1 用C與彙編寫成的程序庫 81

  4.4.2 BITMAP 82

  4.4.3 Sprite 85

  4.4.4 幾何圖形和 3D 89

  4.4.5 數據文件 91

  4.4.6 聲音 92

  4.4.7 其他的部分 93

  4.4.8 小結 94

  4.5 cfido 中國惠多網 94

  第5章 Windows 編程 101

  5.1 Windows編程入門 104

  5.1.1 Windows版本綜述 105

  5.1.2 操作系統的核心 107

  5.1.3 Windows API和DLL 110

  5.1.4 COM 111

  5.1.5 Windows的窗口和消息處理與傳遞 114

  5.1.6 Windows GDI 125

  5.2 控制遊戲的速度 130

  5.3 淺談MFC 132

  5.4 小結 132

  第6章 彙編優化 135

  6.1 淺談代碼優化 138

  6.2 並不僅僅是彙編 139

  6.2.1 在演算法實現時減少上下文的依賴關係 139

  6.2.2 低效的靜態變數 140

  6.2.3 數據的組織 141

  6.2.4 消除除法 142

  6.2.5 避免過大的循環 144

  6.3 彙編和C/C++的混合編程 146

  6.3.1 使用外置的彙編編譯器 146

  6.3.2 使用內嵌彙編 148

  6.3.3 C++的函數調用規則 150

  6.3.4 寄存器的使用 152

  6.3.5 _declspec(naked) 152

  6.4 指令使用的技巧 153

  6.4.1 LEA:別樣的內存定址指令 153

  6.4.2 BSWAP:擴展寄存器的個數 154

  6.4.3 縮短指令的位元組數 155

  6.4.4 避免跳轉指令 159

  6.5 Pentium 的彙編優化策略 161

  6.5.1 UV流水線 163

  6.5.2 AGI地址生成互鎖

  (Address Generation Interlock) 167

  6.5.3 Pentium Pro,Pentium II和Pentium III

  的彙編優化策略 168

  6.5.4 Pentium 4的彙編優化策略 178

  6.5.5 如何測試代碼的速度 181

  6.5.6 彙編能幹的事情 183

  第7章 SIMD 指令 185

  7.1 單指令多數據編程 186

  7.1.1 Alpha 混合 187

  7.2 MMX 191

  7.2.1 MMX的指令概況 192

  7.2.2 SSE及其對MMX的擴展 194

  7.2.3 SIMD技術在C語言環境下的使用 196

  7.2.4 MMX 編碼技巧 197

  7.2.5 SIMD 的應用舉例 201

  7.2.6 SIMD編程注意要點 203

  7.2.7 SIMD的性能檢測 204

  第8章 引擎中的優化 205

  8.1 Blit的優化 207

  8.2 臟矩形優化 209

  8.2.1 「風魂」中改進的臟矩形演算法 215

  8.2.2 滾動優化 219

  8.2.3 覆蓋優化 222

  8.2.4 臟矩形在3D遊戲界面中的運用 224

  8.2.5 時間和空間的權衡 229

  8.2.6 關於估算 230

  8.3 自己設計精靈格式 231

  8.4 動態數據載入 234

  8.5 小結 236

  第9章 C 和 C++ 237

  9.1 從C到C++ 239

  9.2 C vs C++,效率至上 243

  9.2.1 全局變數 243

  9.2.2 函數調用的堆棧處理 243

  9.2.3 函數調用的參數傳遞 244

  9.2.4 臨時變數的堆棧使用 244

  9.2.5 代碼生成 244

  9.2.6 異常 244

  9.2.7 inline 245

  9.2.8 多態性 245

  9.2.9 標準庫的差異 245

  9.2.10 動態內存分配 245

  9.3 優雅的C++ 246

  9.3.1 消失了的宏 247

  9.3.2 const修飾及類型轉換 248

  9.3.3 隱藏實現 248

  9.3.4 引用而非指針 250

  9.3.5 名字空間 250

  9.4 C++ 的誤區 251

  9.4.1 類層次過細 251

  9.4.2 濫用操作符重載 252

  9.4.3 濫用標準容器 253

  9.4.4 濫用動態類型識別和異常 253

  9.4.5 濫用多重繼承 254

  9.4.6 忽視C++高級特性的複雜度 255

  9.4.7 學習C++ 256

  9.5 動態內存分配的優化 257

  9.5.1 另一種優化策略:多次分配,一次釋放 266

  9.5.2 垃圾回收 268

  9.5.3 再論動態內存分配 269

  9.6 template 272

  9.6.1 封裝C++的成員函數調用 272

  9.6.2 常數數量的對象複製 274

  9.6.3 對象計數 275

  9.6.4 避免重複代碼 277

  9.6.5 選擇最佳的容器 279

  9.6.6 延遲運算 281

  9.6.7 編譯時計算的遊戲 283

  9.7 小結 286

  第10章 調試 287

  10.1 assert及程序錯誤的提前發現 288

  10.1.1 崩潰的程序不說謊 289

  10.1.2 為軟體維護多個版本 291

  10.1.3 前置條件和後置條件 292

  10.1.4 自己實現一個assert 292

  10.1.5 不正確的assert使用 293

  10.1.6 為assert分級 294

  10.1.7 assert的引申:檢查函數返回值 295

  10.1.8 釋放的指針需要置空嗎 297

  10.2 讓程序更利於調試 298

  10.2.1 錄像 299

  10.2.2 實現一個log類 300

  10.2.3 跟蹤代碼運行的流程 302

  10.2.4 為內存分配加上一個殼 302

  10.3 Release版本的調試 310

  10.4 小結 311

  第11章 腳本 313

  11.1 為什麼需要腳本 314

  11.2 應該用腳本做些什麼 316

  11.3 腳本不應該做什麼 318

  11.4 如何嵌入腳本語言 319

  11.5 選擇一種腳本語言 321

  11.6 實戰嵌入式腳本Lua 5 324

  11.6.1 嵌入Lua 324

  11.6.2 使用coroutine驅動遊戲邏輯 326

  11.6.3 封裝C++中的對象 328

  11.6.4 回調機制 336

  11.7 反外掛技術 338

  11.7.1 防止加速器 338

  11.7.2 防止分析偽造網路包 339

  11.7.3 防止逆向工程 341

  11.7.4 防止代碼鉤子 344

  11.7.5 懲戒外掛作弊者 344

  11.7.6 安全地將信息傳遞給伺服器 345

  11.7.7 防止模擬輸入 346

  第12章 版本控制 349

  12.1 常用版本控制軟體 351

  12.2 版本控制工具在項目中的使用 355

  12.3 不僅僅是程序才需要 358

  第13章 開發方法 361

  13.1 失敗的經驗 363

  13.2 成功的經驗 365

  13.3 對遊戲開發方法的一些思考 369

  第14章 編程和遊戲 373

  14.1 操作 376

  14.2 角色設定 378

  14.3 再談技術 379

  14.4 淺談網路遊戲 381

  14.5 小結 382

  後記 383

  致謝 385

4 遊戲之旅 -作者簡介

  雲風,時年二十七歲。自幼學習編程,十數年從未間斷,對程序設計有所領悟。大學時代開發的遊戲圖像引擎「風魂」曾用於多家遊戲公司的遊戲項目。參與過《大話西遊》系列、《夢幻西遊》、《網易泡泡遊戲》的開發。現從事新一代網路遊戲引擎的研究與開發,並在遊戲模式上做一些新的嘗試。

  性格開朗,興趣廣泛,好交友,絕非沉浸在計算機世界中的書獃子。國學、歷史書籍常備案頭,以先賢之教誨修其心;休息時常作戶外運動,尤其喜愛攀岩。

上一篇[無法習慣]    下一篇 [欒桓子]

相關評論

同義詞:暫無同義詞