《游戏编程算法与技巧》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:(美)SANJAYMADHAV著;刘瀚阳译
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2016
  • ISBN:9787121276453
  • 页数:272 页
图书介绍:本书详细综述了应用在许多重要视频游戏编程中的算法和技术。书中采用了一种独立于平台和结构的方法,能协助开发几乎任何风格、语言和框架的游戏,并展现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

Lua 194

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章 游戏示例:横向滚屏者(iO5) 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