游戏开发:世嘉新人培训教材

0
(0)

游戏开发:世嘉新人培训教材

作者:[日]平山尚

出版社:人民邮电出版社

原作名:ゲームプログラマになる前に覚えておきたい技術

译者:罗水东

出版年:2020-4

页数:853

定价:198.00元

装帧:平装

ISBN:9787115525758

内容简介
······

1.专业经典

本书由世嘉一线开发者执笔,并被选为世嘉新人培训教材,荣获游戏开发者奥斯卡CEDEC AWARDS 2009著作奖。

2.系统全面

全方位介绍游戏开发者必须掌握的基础技术,包括游戏编程、数学和物理等,内容充实,帮助读者建立起一套扎实的知识体系。

3.实践导向

不借助任何引擎,从简单的命令行游戏开发讲起,到2D游戏开发,最终带领读者开发出一个3D游戏,并在此过程中介绍游戏开发中会遇到的各种问题及解决方案,实践性强。读者可下载随书附带的源码,边做边学。

4.拒绝枯燥

采用口语化的行文方式,以设计思路为切入点进行讲解,每一步都有明确的逻辑依据,让读者在知道“怎么做”的同时,明白“为什么”这么做。

作者简介
······

作者简介:

平山尚

1977年生于日本北海道,曾在京都大学研究生院工学研究科进行基因研究,毕业后进入世嘉株式会社,参与了《电脑战机》(PS2)、《超级网球大奖赛3》(AC、PS3)的开发。著有《我的第一本编程书》。

译者简介:

罗水东

游戏开发工程师,15年软件和游戏开发经验。热爱技术,乐于分享心得。目前主要关注的领域为3D休闲游戏开发和底层引擎技术。

目录
······

第1部分 2D 游戏  1

第1章 第一个游戏  2

1.1 开发一个益智游戏  3

1.2 示例代码解说  7

1.3 添加读取场景数据的功能  16

1.4 C++ 课堂  21

1.5 补充内容:标志位和位运算  26

1.6 补充内容:指针和内存  34

1.7 补充内容:引用  41

1.8 本章小结  46

第2章 从像素开始学习2D 图形处理  47

2.1 什么是2D 图形处理  48

2.2 准备工作  50

2.3 打印一个点   54

2.4 移植《箱子搬运工》  55

2.5 补充内容:结束处理  58

2.6 本章小结  60

第3章 使用图片素材  61

3.1 读取图片文件  62

3.2 带图片的《箱子搬运工》的示例代码  72

3.3 使用透明通道  75

3.4 头文件包含关系的组织策略  82

3.5 补充内容:透明混合的性能优化  86

3.6 补充内容:加法混合  88

3.7 本章小结  90

第4章 实时游戏   91

4.1 什么是实时游戏  92

4.2 运行动画  95

4.3 带动画的《箱子搬运工》  96

4.4 获得游戏的帧率  101

4.5 解决帧率差异  103

4.6 补充内容:根据帧率变化动态改变游戏运行速度  105

4.7 补充内容:影像撕裂现象   110

4.8 本章小结   111

第5章 简单的状态迁移  113

5.1 往类库追加功能  114

5.2 相对直接的做法  117

5.3 试着增加状态  119

5.4 代码审查   122

5.5 示例代码解说  128

5.6 本章小结   136

第6章 文本绘制方法  137

6.1 字体图片   138

6.2 文本绘制函数  138

6.3 一些改进   140

6.4 成果验证   142

6.5 示例代码解说  143

6.6 注意著作权  147

6.7 示例类库的功能  147

6.8 本章小结   148

第7章 动作游戏初体验  149

7.1 用到的类库  150

7.2 开发《炸弹人》  151

7.3 示例代码解说  152

7.4 添加背景显示  157

7.5 配置移动的对象  164

7.6 游戏的改进方向  169

7.7 本章小结   170

第8章 2D 平面内的碰撞处理  171

8.1 碰撞检测   172

8.2 碰撞响应   174

8.3 发生多个碰撞时的问题  179

8.4 碰撞响应与操作性  180

8.5 移动的物体相互碰撞  184

8.6 《炸弹人》的碰撞处理  184

8.7 本章小结   186

第9章 各种输入设备  187

9.1 获取输入设备实例  188

9.2 键盘   189

9.3 鼠标   189

9.4 手柄   190

9.5 在《炸弹人》游戏中使用手柄  191

9.6 本章小结   193

第10章 状态迁移详解  194

10.1 问题定位   195

10.2 使用继承   195

10.3 实际运用   198

10.4 补充内容:简化状态迁移的代码  201

10.5 补充内容:跨层级的状态迁移处理的改进  204

10.6 补充内容:继承的原理  208

10.7 本章小结   213

第11章 播放声音  215

11.1 关于音频类库  216

11.2 补充内容:计算机如何播放声音  218

11.3 补充内容:音高和音量  219

11.4 补充内容:音色  220

11.5 补充内容:声音的叠加  221

11.6 补充内容:do、re、mi 的原理  222

11.7 补充内容:演奏乐谱  223

11.8 补充内容:读取WAV 音频文件  225

11.9 补充内容:使用Sound 模块来合成声波  226

11.10 本章小结  226

第12章 旋转、缩放与平移  227

12.1 旋转  228

12.2 引入向量和矩阵  241

12.3 利用顶点来实现  246

12.4 缩放  253

12.5 在缩放的同时进行旋转  255

12.6 矩阵的力量  256

12.7 补充内容:旋转公式的由来  263

12.8 补充内容:更为实用的旋转处理方法  266

12.9 补充内容:数学中的矩阵  267

12.10 本章小结  271

第13章 显卡的力量  272

13.1 关于使用的类库  273

13.2 使用显卡绘制三角形  273

13.3 将图像贴到三角形中  275

13.4 混合模式   278

13.5 旋转、缩放和移动  278

13.6 移植《炸弹人》  281

13.7 本章小结   284

第2部分 3D 游戏  285

第14章 绘制立体物体  286

14.1 关于类库   287

14.2 开始制作3D 动作游戏《机甲大战》  287

14.3 绘制三角形  289

14.4 按位置前后绘制物体  290

14.5 将远处的物体绘制得小一些  294

14.6 坐标变换   303

14.7 用矩阵表示透视变换  316

14.8 开始制作《机甲大战》  322

14.9 补充内容:Z 缓存的精度问题  335

14.10 本章小结  338

第15章 类库的封装方法  340

15.1 整体设计   341

15.2 资源的详细内容  342

15.3 试运行  350

15.4 从文件载入  352

15.5 补充内容:将类库从游戏中分离  354

15.6 本章小结   363

第16章 伪XML 文件的读取  364

16.1 确定文件格式  365

16.2 创建前的准备  366

16.3 处理流程   368

16.4 字符串解析  371

16.5 编写代码   373

16.6 运用  375

16.7 示例代码解说  378

16.8 补充内容:生成数据文件  382

16.9 本章小结   385

第17章 编写高性能的代码  386

17.1 算法与时间复杂度  387

17.2 数据结构基础  390

17.3 吞吐量与延迟  402

17.4 并行处理   404

17.5 内存问题   404

17.6 STL 和数据结构  411

17.7 性能瓶颈分析  416

17.8 补充内容:函数调用的开销  417

17.9 补充内容:高效运算与低效运算  420

17.10 本章小结  422

第18章 3D 碰撞处理  423

18.1 长方体的碰撞处理  424

18.2 使用浮点数的碰撞检测  427

18.3 三角形和线段的相交检测  436

18.4 实用性  445

18.5 其他问题   447

18.6 本章小结   448

第19章 《机甲大战》的设计  450

19.1 状态迁移   451

19.2 操作  451

19.3 发射导弹   454

19.4 将功能整合到一起  457

19.5 前端展现   461

19.6 不足之处   463

19.7 本章小结   464

第20章 光照  465

20.1 看见物体的过程  466

20.2 光的衰减过程  469

20.3 尝试计算   473

20.4 整合到《机甲大战》中  479

20.5 补充内容:性能优化  480

20.6 补充内容:更好的绘制效果  483

20.7 本章小结   484

第21章 角色动画  485

21.1 相对运动   486

21.2 层级Model 类  492

21.3 自动构建树结构  495

21.4 将动画数据化  500

21.5 补间方法   506

21.6 引入到《机甲大战》中  518

21.7 补充内容:联立方程组vs 斜率指定法  519

21.8 补充内容:不足之处  520

21.9 本章小结   523

第3部分 通往商业游戏之路  525

第22章 高效的碰撞检测  526

22.1 低效的循环判断方法  527

22.2 性能改善的基本思路  528

22.3 基于排序的方法  531

22.4 依靠分割实现的方法  539

22.5 补充内容:改进等分切割法  545

22.6 补充内容:空间分割的高级技巧  548

22.7 本章小结   552

第23章 数据加载  554

23.1 为何加载时间越来越长  555

23.2 文件加载类  556

23.3 通过合并文件提升性能  562

23.4 通过压缩提升性能  571

23.5 补充内容:多线程异步处理  579

23.6 补充内容:编码技术  590

23.7 补充内容:用于加密的合并与压缩  591

23.8 本章小结   592

第24章 float 的用法  593

24.1 位数限制   594

24.2 float 的实现  594

24.3 位数截断带来的误差  596

24.4 误差程度   597

24.5 减小误差的方法  600

24.6 特别的数   606

24.7 本章小结   608

第25章 随书类库概要  609

25.1 类库中的类  610

25.2 启动设定   611

25.3 Framework 模块  613

25.4 WindowCreator 模块  614

25.5 FileIO 模块  614

25.6 Base 模块  615

25.7 Math 模块  616

25.8 Threading 模块  618

25.9 Input 模块  620

25.10 Sound 模块  620

25.11 PseudoXml 模块  621

25.12 Graphics 模块  621

25.13 Scene 模块  628

25.14 抗锯齿处理  630

25.15 将《机甲大战》改用最终版类库实现  631

25.16 X 文件   633

25.17 本章小结  634

第26章 bug 的应对方法  635

26.1 防火与灭火  636

26.2 bug 的种类  636

26.3 bug 的预防  641

26.4 bug 的处理  654

26.5 《机甲大战》的处理  656

26.6 补充内容:如何检测内存溢出  657

26.7 本章小结   660

第27章 进阶方向  662

27.1 应该学习什么  663

27.2 工具开发   664

27.3 AI  667

27.4 网络  667

27.5 shader  668

27.6 参考文献   669

27.7 一些期待的书  672

后记  675

致谢  676

"游戏开发:世嘉新人培训教材"试读
······

2012 年夏天,我在东京的书店里闲逛时偶然发现了本书,翻了几下就被吸引住了。当时就想如果能把它翻译成中文该多好。然而考虑到版权等问题,此事就搁浅了。机缘巧合,三年前得知图灵引进了这本书的中文版权,于是便自告奋勇,开始了本书的翻译。
作为一个在游戏行业摸爬滚打了十几年的人,为何我对本书情有独钟呢?
在我的日常工作中,除了游戏产品的研究开发,我还负责公司的一些..

  • 译者序
  • 前言

评论 ······

书通俗易懂非常棒,这在游戏开发入门书籍中是难得一见,因为它拯救我这个曾经无数次想开发游戏最终因为书籍太难懂而失败的人。所以我感谢此书的作者也感谢为了翻译此书三年来兢兢业业呕心沥血的翻译工作人员。给你点个赞👍❤

如果你对这本书感兴趣的话,可以先看一下一位叫javidx9的YouTuber的视频来确定这本书是否适合你。个人觉得这本书更适合对编程的兴趣大于游戏兴趣的人,但如果你对此感兴趣,你可以从中收获到很多乐趣。

书是好书,就是名字看起来不太吸引人。。。又是“培训新人”又是“教材”的,给人一种拒人千里的感觉,但其实该作者恰恰以生动易懂为特点,全然没有教科书的那种死板生硬。

其实是用 C++ 手撸了一个游戏引擎。覆盖了包括编码、操作系统、图形学、物理甚至十二平均律的很多知识,受益匪浅,尤其作者结合亲身经历讲述的一些 C++ 奇技淫巧。
但是也有问题,一方面成书时间其实比较早了,大概在十年前,有些地方有点过时了,甚至连 C++ 11 都没有。另一方面有些地方其实有点拗口,又因为是从日文翻译过来,没有英文原文可以对照,不知道是不是翻译的锅(随书附赠的代码里的注释是机翻,倾…

点击星号评分!

平均分 0 / 5. 投票数: 0

还没有投票!请为他投一票。

推荐阅读

评论 抢沙发

评论前必须登录!

 

登录

找回密码

注册