遊戲編程算法與技巧 游戏编程算法与技巧

馬達夫 (Sanjay Madhav)

  • 出版商: 電子工業
  • 出版日期: 2016-10-01
  • 定價: $534
  • 售價: 8.5$454
  • 語言: 簡體中文
  • 頁數: 296
  • 裝訂: 平裝
  • ISBN: 7121276453
  • ISBN-13: 9787121276453

無法訂購

買這商品的人也買了...

相關主題

商品描述

<內容介紹>

本書詳細綜述了應用在許多重要視頻游戲編程中的算法和技術。書中採用了一種獨立於平臺和結構的方法,能協助開發幾乎任何風格、語言和框架的游戲,並展現2D和3D圖像、物理、人工智能、相機等工作的基本技術。書中的每個概念都是用C#、Java或 C++程序員直觀明白的偽代碼闡述的,並且作者已經改進和證實過這些偽代碼。本書最後作者詳細分析了兩個完整的游戲,清楚展現了前面章節講到的很多技術和算法。


<章節目錄>
第1章 游戲編程概述1
游戲編程的發展2
Atari時期(1977—1985年) 2
NES和SNES 時期(1985—1995年) 3
PS和PS2時期(1995—2005年) 3
Xbox360、PS3和Wii時期(2005—2013年) 3
游戲的未來4
游戲循環4
傳統的游戲循環4
多線程下的游戲循環6
時間和游戲8
真實時間和游戲時間8
通過處理時間增量來表示游戲邏輯8
游戲對象10
游戲對象的類型10
游戲循環中的游戲對象11
總結13
習題13
相關資料14
游戲編程的發展14
游戲循環14
游戲對象14
第2章 2D 圖形 15
2D渲染基礎16
CRT顯示器基礎16
像素緩沖區和垂直同步17
精靈18
繪制精靈18
動畫精靈20
精靈表單23
滾屏24
單軸滾屏24
無限滾屏26
平行滾屏27
四向滾屏28
磚塊地圖29
簡單的磚塊地圖29
斜視等視角磚塊地圖31
總結32
習題32
相關資料33
Cocos2D 33
SDL 33
第3章 游戲中的線性代數 34
向量35
加法36
減法37
長度、單位向量和正規化38
標量乘積39
點乘40
問題舉例:向量反射41
叉乘43
問題舉例:旋轉一個2D 角色45
線性插值46
坐標系47
矩陣48
加法/減法48
標量乘法49
乘法49
逆矩陣50
轉置50
用矩陣變換3D 向量51
總結52
習題52
相關資料53
第4章 3D圖形54
基礎55
多邊形55
坐標系55
模型坐標系56
世界坐標系56
視角/攝像機坐標系60
投影坐標系62
光照與著色64
顏色64
頂點屬性65
光照67
Phong光照模型68
著色70
可見性71
再探畫家算法72
深度緩沖區73
再探世界變換74
四元數75
3D游戲對象的表示77
總結77
習題77
相關資料78
第5章 游戲輸入 79
輸入設備80
數字輸入80
模擬輸入82
 基於事件的輸入系統84
  基礎事件系統85
  一個更復雜的系統87
 移動設備輸入89
  觸屏和手勢89
  加速器和陀螺儀91
  其他移動設備輸入92
 總結92
 習題92
 相關資料93
第6章 聲音94
 基本聲音95
  原始數據95
  聲音事件95
 3D聲音98
  監聽者和發射者98
  衰減100
  環繞聲100
 數字信號處理101
  常見數字信號處理效果102
  區域標記102
 其他聲音話題103
  多普勒效應103
  聲音遮擋104
 總結105
 習題106
 參考資料106
第7章 物理107
 平面、射線和線段108
  平面108
  射線和線段109
 碰撞幾何體110
  包圍球110
  軸對齊包圍盒111
  朝向包圍盒111
  膠囊體112
  凸多邊形113
  組合碰撞幾何體113
 碰撞檢測113
  球與球的交叉113
  AABB與AABB交叉114
  線段與平面交叉115
  線段與三角片交叉117
  球與平面交叉119
  球形掃掠體檢測120
  響應碰撞124
  優化碰撞125
 基於物理的移動126
  線性力學概覽127
  可變時間步長帶來的問題128
  力的計算128
  歐拉和半隱式歐拉積分129
  Verlet積分法129
  其他積分方法130
  角力學130
 物理中間件130
 總結131
 習題131
 相關資料131
第8章 攝像機 132
 攝像機的類型133
  固定攝像機133
  第一人稱攝像機134
  跟隨攝像機134
  場景切換攝像機135
 透視投影135
  視場136
  寬高比137
 攝像機的實現138
  基礎的跟隨攝像機138
  彈性跟隨攝像機139
  旋轉攝像機142
  第一人稱攝像機144
  樣條攝像機146
 攝像機支持算法149
  攝像機碰撞149
  揀選149
 總結151
 習題151
 相關資料151
第9章 人工智能152
 “真”AI 與游戲AI 153
 尋路153
  搜索空間的表示154
  可接受的啟發式算法156
  貪婪最佳優先算法157
  A*尋路161
  Dijkstra算法163
 基於狀態的行為164
  AI的狀態機164
  基礎的狀態機實現165
  狀態機設計模式167
 策略和計劃168
  策略168
  計劃169
 總結170
 習題170
 相關資料172
  通用AI 172
  尋路172
  狀態172
第10章 用戶界面 173
 菜單系統174
  菜單棧174
  按鈕175
  打字176
 HUD元素177
  路點箭頭177
  準心180
  雷達181
 其他需要考慮的UI 問題186
  支持多套分辨率186
  本地化187
  UI中間件189
  用戶體驗189
 總結189
 習題189
 相關資料190
第11章 腳本語言和數據格式191
 腳本語言192
  折中192
  腳本語言的類型193
  Lua194
  UnrealScript 195
  可視化腳本系統196
 實現一門腳本語言197
  標記化197
  正則表達式198
  語法分析199
  代碼的執行和生成200
 數據格式202
  折中202
  二進制格式203
  INI 203
  XML 203
  JSON 204
 案例學習:《魔獸世界》中的UI Mod 205
  佈局和事件205
  行為206
  問題:玩家自動操作206
  問題:UI 兼容性206
  結論207
 總結207
 習題207
 相關資料208
第12章 網絡游戲 209
 協議210
  IP 210
  ICMP 211
  TCP 212
  UDP 214
 網絡拓撲215
  服務器/客戶端216
  點對點218
 作弊219
  信息作弊219
  游戲狀態作弊220
  中間人攻擊220
 總結221
 習題221
 相關資料222
第13章 游戲示例:橫向滾屏者(iOS)223
 概覽224
  Objective-C 224
  Cocos2D 225
 代碼分析226
  AppDelegate 226
  MainMenuLayer 227
  GameplayScene 227
  ScrollingLayer 227
  Ship 228
  Projectile 229
  Enemy 229
  ObjectLayer 229
 練習230
 總結231
第14章 游戲示例:塔防(PC/Mac) 232
 概覽233
  C# 233
  XNA 235
  MonoGame 235
 代碼分析236
  設置236
  單件236
  游戲類237
  游戲狀態237
  游戲對象238
  關卡239
  計時器239
  尋路240
  攝像機和投影241
  輸入241
  物理242
  本地化242
  圖形242
  聲音243
  用戶界面243
 練習245
 總結246
附錄A 習題答案247
附錄B 對開發者有用的工具260