新書推薦:
《
可转债——新手理财的极简工具
》
售價:HK$
66.7
《
新加坡教育:神话与现实
》
售價:HK$
98.9
《
“口袋中的世界史”第一辑·冷战中的危机事件
》
售價:HK$
299.0
《
绝美的奥伦堡蕾丝披肩编织
》
售價:HK$
181.7
《
狂飙年代:18世纪俄国的新文化和旧文化(第二卷)
》
售價:HK$
177.0
《
万有引力书系 纳粹亿万富翁 德国财富家族的黑暗历史
》
售價:HK$
112.7
《
中国常见植物野外识别手册:青海册
》
售價:HK$
78.2
《
三星堆对话古遗址(从三星堆出发,横跨黄河流域,长江流域,对话11处古遗址,探源多元一体的中华文明)
》
售價:HK$
89.7
編輯推薦:
前EA杰出游戏工程师经验凝结4大类13种游戏编程模式精彩呈现
多数游戏程序员所面临的挑战就是实现他们的游戏。许多游戏在其高度复杂的代码库中折戟沉沙,没能问世。本书是为解决此问题而生。本书作者在多年的游戏开发工作中,收集了许多已经证实的设计模式来帮助解构、重构以及优化游戏。
通过阅读本书,你将深刻理解经典的设计模式是如何应用于游戏之中的,学会如何编写一个健壮的游戏循环、如何应用组件来组织实体,并利用CPU缓存来提升游戏性能。
本书包含的4大类13种游戏编程模式包括:
序列型模式
● 双缓冲
● 游戏循环
● 更新方法
优化型模式
● 数据局部性
● 脏标记模型
● 对象池
● 空间分区
行为型模式
● 字节码
● 子类沙盒
● 类型对象
解耦型模式
● 组件模式
● 事件队列
● 服务定位器
內容簡介:
游戏开发一直是热门的领域,掌握良好的游戏编程模式是开发人员的应备技能。本书细致地讲解了游戏开发需要用到的各种编程模式,并提供了丰富的示例。
全书共分20章,通过三大部分内容全面介绍了与游戏编程模式相关的各类知识点。首部分介绍了基础知识和框架;第二部分深入探索设计模式,并介绍了模式与游戏开发之间的关联;第三部分介绍了13种有效的游戏设计模式。
本书提供了丰富的代码示例,通过理论和代码示例相结合的方式帮助读者更好地学习。无论是游戏领域的设计人员、开发人员,还是想要进入游戏开发领域的学生和普通程序员,都可以阅读本书。
關於作者:
Robert Nystrom是一位拥有2 0 年以上职业编程经验的开发者,而他在其中大概一半的时间从事游戏开发。在艺电(El e c t r o n i c Arts)的8年时间里,他曾参与劲爆美式足球(Madden)系列这样庞大的项目,也曾投身于亨利海茨沃斯大冒险(Henry Hatsworth in the Puzzling Adventure)这样稍小规模的游戏开发之中。他所开发的游戏遍及PC、GameCube、PS2、XBox、X360以及DS平台。但他引以为傲的,是为开发者们提供了开发工具和共享库。他热衷于寻求易用的、漂亮的代码来延伸和增强开发者们的创造力。Robert与他的妻子和两个女儿定居于西雅图,在那里你很有可能会见到他正在为朋友们下厨,或者在为他们上啤酒。
目錄 :
目录
第1篇 概述
第1章 架构,性能和游戏 3
1.1 什么是软件架构 3
1.1.1 什么是好的软件架构 3
1.1.2 你如何做出改变 4
1.1.3 我们如何从解耦中受益 5
1.2 有什么代价 5
1.3 性能和速度 6
1.4 坏代码中的好代码 7
1.5 寻求平衡 8
1.6 简单性 9
1.7 准备出发 9
第2篇 再探设计模式
第2章 命令模式 13
2.1 配置输入 14
2.2 关于角色的说明 16
2.3 撤销和重做 18
2.4 类风格化还是函数风格化 21
2.5 参考 22
第3章 享元模式 23
3.1 森林之树 23
3.2 一千个实例 25
3.3 享元模式 26
3.4 扎根之地 26
3.5 性能表现如何 30
3.6 参考 31
第4章 观察者模式 33
4.1 解锁成就 33
4.2 这一切是怎么工作的 34
4.2.1 观察者 35
4.2.2 被观察者 35
4.2.3 可被观察的物理模块 37
4.3 它太慢了 38
4.4 太多的动态内存分配 39
4.4.1 链式观察者 39
4.4.2 链表节点池 42
4.5 余下的问题 43
4.5.1 销毁被观察者和观察者 43
4.5.2 不用担心,我们有GC 44
4.5.3 接下来呢 44
4.6 观察者模式的现状 45
4.7 观察者模式的未来 46
第5章 原型模式 47
5.1 原型设计模式 47
5.1.1 原型模式效果如何 50
5.1.2 生成器函数 51
5.1.3 模板 51
5.1.4 头等公民类型(First-class types) 52
5.2 原型语言范式 52
5.2.1 Self 语言 53
5.2.2 结果如何 54
5.2.3 JavaScript如何 55
5.3 原型数据建模 57
第6章 单例模式 61
6.1 单例模式 61
6.1.1 确保一个类只有一个实例 61
6.1.2 提供一个全局指针以访问唯一实例 62
6.2 使用情境 63
6.3 后悔使用单例的原因 65
6.3.1 它是一个全局变量 65
6.3.2 它是个画蛇添足的解决方案 66
6.3.3 延迟初始化剥离了你的控制 67
6.4 那么我们该怎么做 68
6.4.1 看你究竟是否需要类 68
6.4.2 将类限制为单一实例 70
6.4.3 为实例提供便捷的访问方式 71
6.5 剩下的问题 73
第7章 状态模式 75
7.1 我们曾经相遇过 75
7.2 救星:有限状态机 78
7.3 枚举和分支 79
7.4 状态模式 82
7.4.1 一个状态接口 82
7.4.2 为每一个状态定义一个类 83
7.4.3 状态委托 84
7.5 状态对象应该放在哪里呢 84
7.5.1 静态状态 84
7.5.2 实例化状态 85
7.6 进入状态和退出状态的行为 86
7.7 有什么收获吗 88
7.8 并发状态机 88
7.9 层次状态机 89
7.10 下推自动机 91
7.11 现在知道它们有多有用了吧 92
第3篇 序列型模式
第8章 双缓冲 95
8.1 动机 95
8.1.1 计算机图形系统是如何工作的(概述) 95
8.1.2 第一幕,第一场 96
8.1.3 回到图形上 97
8.2 模式 98
8.3 使用情境 98
8.4 注意事项 98
8.4.1 交换本身需要时间 98
8.4.2 我们必须有两份缓冲区 99
8.5 示例代码 99
8.5.1 并非只针对图形 102
8.5.2 人工非智能 102
8.5.3 缓存这些巴掌 106
8.6 设计决策 107
8.6.1 缓冲区如何交换 107
8.6.2 缓冲区的粒度如何 109
8.7 参考 110
第9章 游戏循环 111
9.1 动机 111
9.1.1 CPU探秘 111
9.1.2 事件循环 112
9.1.3 时间之外的世界 113
9.1.4 秒的长短 113
9.2 模式 114
9.3 使用情境 114
9.4 使用须知 114
9.5 示例代码 115
9.5.1 跑,能跑多快就跑多快 115
9.5.2 小睡一会儿 115
9.5.3 小改动,大进步 116
9.5.4 把时间追回来 118
9.5.5 留在两帧之间 119
9.6 设计决策 120
9.6.1 谁来控制游戏循环,你还是平台 121
9.6.2 你如何解决能量耗损 121
9.6.3 如何控制游戏速度 122
9.7 参考 1