游戏编程算法与技巧

游戏编程算法与技巧
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: , ,
2016-10
版次: 1
ISBN: 9787121276453
定价: 89.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 296页
字数: 408千字
正文语种: 简体中文
117人买过
  • 本书详细综述了应用在许多重要视频游戏编程中的算法和技术。书中采用了一种独立于平台和结构的方法,能协助开发几乎任何风格、语言和框架的游戏,并展现2D和3D图像、物理、人工智能、相机等工作的基本技术。书中的每个概念都是用C#、Java或 C++程序员直观明白的伪代码阐述的,并且作者已经改进和证实过这些伪代码。本书最后作者详细分析了两个完整的游戏,清楚展现了前面章节讲到的很多技术和算法。     刘瀚阳,腾讯互娱高级工程师,Life-long级别的游戏玩家。兴趣使然,大学本科就选择了游戏专业,毕业后一直专注于游戏研发。参与过游戏引擎、大型商业MMORPG、中小型手游的开发。擅长游戏架构设计与开发,代码写得贼溜,略懂产品。一直在游戏行业中默默前进,希望有一天也能做出一款伟大的游戏。 
        Sanjay Madhav 是南加利福尼亚大学的讲师,在那里他教授了几门与游戏编程相关的课程。而在全职加入南加利福尼亚大学之前,他作为程序员在许多公司工作过,包括Electronic Arts、Neverso 及Pandemic Studios。虽然他在很多系统上都有着丰富的开发经验,但是他*感兴趣的还是游戏机制的开发。他所参与的游戏包括《荣誉勋章:太平洋突袭》(Tony Hawk’s Project 8)、《指环王:征服》(Lord of the Rings: Conquest)和The Saboteur。 
        从2008 年开始,Sanjay 在南加利福尼亚大学兼职,当时他还是全职游戏程序员当中的一员。在2009 年年末Pandemic Studios 关闭之后,他决定专注于教越来越重要的游戏程序员。他的主要课程是面向本科生的游戏编程课程,而且已经连续教了10 个学期。 

    目录
    第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
  • 内容简介:
    本书详细综述了应用在许多重要视频游戏编程中的算法和技术。书中采用了一种独立于平台和结构的方法,能协助开发几乎任何风格、语言和框架的游戏,并展现2D和3D图像、物理、人工智能、相机等工作的基本技术。书中的每个概念都是用C#、Java或 C++程序员直观明白的伪代码阐述的,并且作者已经改进和证实过这些伪代码。本书最后作者详细分析了两个完整的游戏,清楚展现了前面章节讲到的很多技术和算法。
  • 作者简介:
        刘瀚阳,腾讯互娱高级工程师,Life-long级别的游戏玩家。兴趣使然,大学本科就选择了游戏专业,毕业后一直专注于游戏研发。参与过游戏引擎、大型商业MMORPG、中小型手游的开发。擅长游戏架构设计与开发,代码写得贼溜,略懂产品。一直在游戏行业中默默前进,希望有一天也能做出一款伟大的游戏。 
        Sanjay Madhav 是南加利福尼亚大学的讲师,在那里他教授了几门与游戏编程相关的课程。而在全职加入南加利福尼亚大学之前,他作为程序员在许多公司工作过,包括Electronic Arts、Neverso 及Pandemic Studios。虽然他在很多系统上都有着丰富的开发经验,但是他*感兴趣的还是游戏机制的开发。他所参与的游戏包括《荣誉勋章:太平洋突袭》(Tony Hawk’s Project 8)、《指环王:征服》(Lord of the Rings: Conquest)和The Saboteur。 
        从2008 年开始,Sanjay 在南加利福尼亚大学兼职,当时他还是全职游戏程序员当中的一员。在2009 年年末Pandemic Studios 关闭之后,他决定专注于教越来越重要的游戏程序员。他的主要课程是面向本科生的游戏编程课程,而且已经连续教了10 个学期。 

  • 目录:
    目录
    第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
查看详情
相关图书 / 更多
游戏编程算法与技巧
游戏数据分析:从方法到实践
数数科技分析师团队 编著
游戏编程算法与技巧
游戏动漫人体结构&类人角色绘画造型技法
[韩]朴炯旭
游戏编程算法与技巧
游戏UI设计原则与实例指导手册(第2版)
李世钦
游戏编程算法与技巧
游戏和博彩中的数学(影印版)
Edward Packel
游戏编程算法与技巧
游戏故事写作(创意写作书系)
[美]迈克尔·布劳特(Michael Breault)
游戏编程算法与技巧
游戏中的科学【全6册】在科学游戏中训练游戏思维培养习惯中小学课外阅读书籍青少年儿童书籍6-8-12儿童科普大百科激发孩子科学兴趣培养动手能力
陈亮亮
游戏编程算法与技巧
游戏活动指导——游戏是儿童的生命(幼儿园班级管理丛书)
崔利玲 主编;朱水莲
游戏编程算法与技巧
游戏动漫人物设计指南 设计思想人体结构角色创作
[英]凯文·克罗斯利(Kevin Crossley)
游戏编程算法与技巧
游戏架构设计与策划基础(第3版)
刘炎
游戏编程算法与技巧
游戏UI设计项目实战
周婷 主编;张婕 副主编;彭阳;李琳
游戏编程算法与技巧
游戏出海合规指引
李金招;蒋晓焜
游戏编程算法与技巧
游戏力:儿童游戏治疗基础与进阶(第2版)
[美]泰瑞·科特曼 著;张婷婷 秦红梅 郑淑丽 译
您可能感兴趣 / 更多
游戏编程算法与技巧
前列腺癌挽救性治疗
Sanchia S. Goonewardene Raj Persad Karen Ventii David Albala Declan Cahill
游戏编程算法与技巧
德语Telc C1 大学入学语言测试 考试高分突破解析
Sandra Hohmann;Sibylle Weidinger;Simone Weidinge
游戏编程算法与技巧
颞下颌关节紊乱病与口腔正畸临床指南
SanjivanKandasamy
游戏编程算法与技巧
汗青堂丛书045·东西街:灭绝种族罪和危害人类罪的起源
Sands 著;[英]菲利普·桑兹、Philippe、吴筱筠 译
游戏编程算法与技巧
服务管理:运作、战略与信息技术(原书第9版)
SanjeevBordoloi、James Fitzsimmons、Mona Fitzsimmons 著;张金成 、范秀成、杨坤 译
游戏编程算法与技巧
机械测试实验技术(英文版)
Sang、Yong 著
游戏编程算法与技巧
大学学术英语视听说教程(上册学生用书)/专门用途英语课程系列
Sanabria 著;Kim、杨惠中 编
游戏编程算法与技巧
Cambridge Igcse? Physics Coursebook
Sang, David
游戏编程算法与技巧
Mosby's Essential Sciences for Therapeutic Massage
Sandy Fritz BS MS NCTMB 著
游戏编程算法与技巧
Mosby's Fundamentals of Therapeutic Massage速成教程:心脏血管系统
Sandy Fritz BS MS NCTMB 著
游戏编程算法与技巧
Homage to Florence (Omaggio a ...)
Sandro Vannucci 著
游戏编程算法与技巧
GirlsAreBest
Sandi Toksvig 著