Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

前言

学习笔记源自 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 帧。本部分介绍在不牺牲代码可读性的前提下,如何通过巧妙的设计提升运行时性能。

数据局部性模式 (Data Locality)

脏标记模式 (Dirty Flag)

对象池模式 (Object Pool)

空间分区模式 (Spatial Partition)