前言
学习笔记源自 Bob Nystrom 的《Game Programming Patterns》(游戏编程模式)
关于本书
《Game Programming Patterns》是由游戏开发者 Bob Nystrom 撰写的一本经典书籍,旨在帮助游戏开发者写出更清晰、更灵活、更易维护的代码。书中介绍了 18 种适用于游戏开发的设计模式,涵盖架构设计、解耦、性能优化等多个方面。
笔记说明
本仓库是我学习过程中的个人笔记,包含:
- 各模式的核心理念与动机
- 关键代码示例(C++)
- 与游戏开发场景的具体结合
- 个人理解和思考
注意:本笔记仅供个人学习参考,建议配合原书阅读以获得最佳效果。
一、再探设计模式
Revisiting Design Patterns
设计模式的经典概念在游戏开发中同样适用,但用法和侧重点与传统软件工程不同。本部分重新审视最常用的几个设计模式在游戏场景中的应用。
命令模式 (Command)
将一个请求封装为一个对象,从而使你可以用不同的请求对客户进行参数化。
动机
代码示例
适用场景
优缺点
笔记与思考
享元模式 (Flyweight)
观察者模式 (Observer)
原型模式 (Prototype)
单例模式 (Singleton)
状态模式 (State)
二、序列化模式
Sequencing Patterns
游戏的核心是“循环“——每一帧都在重复执行特定的操作序列。本部分探讨如何优雅地组织这些时间上的顺序逻辑。
双缓冲模式 (Double Buffer)
游戏循环模式 (Game Loop)
更新方法模式 (Update Method)
三、行为模式
Behavioral Patterns
当游戏对象的行为变得复杂,硬编码会让代码迅速腐烂。本部分介绍如何为对象赋予灵活、可扩展、可替换的行为。
字节码模式 (Bytecode)
子类沙箱模式 (Subclass Sandbox)
类型对象模式 (Type Object)
四、解耦模式
Decoupling Patterns
大型游戏项目中,模块之间互相纠缠是最大的维护噩梦。本部分专注于如何让代码各部件松耦合、独立演化。
组件模式 (Component)
事件队列模式 (Event Queue)
服务定位器模式 (Service Locator)
五、优化模式
Optimization Patterns
游戏必须跑满 60 帧。本部分介绍在不牺牲代码可读性的前提下,如何通过巧妙的设计提升运行时性能。