├── .gitignore ├── 00-Acknowledge­ments.md ├── 01-Introduction.md ├── 01.1-Architecture, Performance, and Games.md ├── 02-Design Patterns Revisited.md ├── 02.1-Command.md ├── 02.2-Flyweight.md ├── 02.3-Observer.md ├── 02.4-Prototype.md ├── 02.5-Singleton.md ├── 02.6-State.md ├── 03-Sequencing Patterns.md ├── 03.1-Double Buffer.md ├── 03.2-Game Loop.md ├── 03.3-Update Method.md ├── 04-Behavioral Patterns.md ├── 04.1-Bytecode.md ├── 04.2-Subclass Sandbox.md ├── 04.3-Type Object.md ├── 05-Decoupling Patterns.md ├── 05.1-Component.md ├── 05.2-Event Queue.md ├── 05.3-Service Locator.md ├── 06-Optimization Patterns.md ├── 06.1-Data Locality.md ├── 06.2-Dirty Flag.md ├── 06.3-Object Pool.md ├── 06.4-Spatial Partition.md ├── LICENSE ├── README.md ├── SUMMARY.md ├── cover.jpg └── res ├── architecture-cycle.png ├── arrow-inherits.png ├── arrow-references.png ├── bytecode-ast.png ├── bytecode-code.png ├── bytecode-literal.png ├── bytecode-numbers.png ├── bytecode-stack-1.png ├── bytecode-stack-2.png ├── bytecode-stack-3.png ├── bytecode-ui.png ├── command-buttons-one.png ├── command-buttons-two.png ├── command-stream.png ├── command-undo.png ├── component-uml.png ├── dirty-flag-multiply.png ├── dirty-flag-pirate.png ├── dirty-flag-title-bar.png ├── dirty-flag-update-bad.png ├── dirty-flag-update-good.png ├── dogshot.jpg ├── double-buffer-face.png ├── double-buffer-slaps-1.png ├── double-buffer-slaps-2.png ├── double-buffer-tearing.png ├── event-queue-central.png ├── event-queue-crawl.png ├── event-queue-loop.png ├── event-queue-queue.png ├── event-queue-ring.png ├── flyweight-tiles.png ├── flyweight-tree-model.png ├── flyweight-trees.png ├── game-loop-fixed.png ├── game-loop-simple.png ├── game-loop-timeline-close.png ├── game-loop-timeline.png ├── object-pool-heap-fragment.png ├── observer-linked.png ├── observer-list.png ├── observer-nodes.png ├── prototype-class.png ├── prototype-delegate.png ├── prototype-hierarchies.png ├── prototype-object.png ├── prototype-spawner.png ├── prototype-weapon.png ├── spatial-partition-adjacent.png ├── spatial-partition-battle-line.png ├── spatial-partition-grid.png ├── spatial-partition-linked-list.png ├── spatial-partition-neighbors.png ├── spatial-partition-quadtree.png ├── state-flowchart.png ├── state-pushdown.png ├── type-object-breed.png ├── type-object-subclasses.png ├── update-method-remove.png └── update-method-uml.png /.gitignore: -------------------------------------------------------------------------------- 1 | res/Thumbs.db 2 | -------------------------------------------------------------------------------- /00-Acknowledge­ments.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/00-Acknowledge­ments.md -------------------------------------------------------------------------------- /01-Introduction.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/01-Introduction.md -------------------------------------------------------------------------------- /01.1-Architecture, Performance, and Games.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/01.1-Architecture, Performance, and Games.md -------------------------------------------------------------------------------- /02-Design Patterns Revisited.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/02-Design Patterns Revisited.md -------------------------------------------------------------------------------- /02.1-Command.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/02.1-Command.md -------------------------------------------------------------------------------- /02.2-Flyweight.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/02.2-Flyweight.md -------------------------------------------------------------------------------- /02.3-Observer.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/02.3-Observer.md -------------------------------------------------------------------------------- /02.4-Prototype.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/02.4-Prototype.md -------------------------------------------------------------------------------- /02.5-Singleton.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/02.5-Singleton.md -------------------------------------------------------------------------------- /02.6-State.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/02.6-State.md -------------------------------------------------------------------------------- /03-Sequencing Patterns.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/03-Sequencing Patterns.md -------------------------------------------------------------------------------- /03.1-Double Buffer.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/03.1-Double Buffer.md -------------------------------------------------------------------------------- /03.2-Game Loop.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/03.2-Game Loop.md -------------------------------------------------------------------------------- /03.3-Update Method.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/03.3-Update Method.md -------------------------------------------------------------------------------- /04-Behavioral Patterns.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/04-Behavioral Patterns.md -------------------------------------------------------------------------------- /04.1-Bytecode.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/04.1-Bytecode.md -------------------------------------------------------------------------------- /04.2-Subclass Sandbox.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/04.2-Subclass Sandbox.md -------------------------------------------------------------------------------- /04.3-Type Object.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/04.3-Type Object.md -------------------------------------------------------------------------------- /05-Decoupling Patterns.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/05-Decoupling Patterns.md -------------------------------------------------------------------------------- /05.1-Component.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/05.1-Component.md -------------------------------------------------------------------------------- /05.2-Event Queue.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/05.2-Event Queue.md -------------------------------------------------------------------------------- /05.3-Service Locator.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/05.3-Service Locator.md -------------------------------------------------------------------------------- /06-Optimization Patterns.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/06-Optimization Patterns.md -------------------------------------------------------------------------------- /06.1-Data Locality.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/06.1-Data Locality.md -------------------------------------------------------------------------------- /06.2-Dirty Flag.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/06.2-Dirty Flag.md -------------------------------------------------------------------------------- /06.3-Object Pool.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/06.3-Object Pool.md -------------------------------------------------------------------------------- /06.4-Spatial Partition.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/06.4-Spatial Partition.md -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/README.md -------------------------------------------------------------------------------- /SUMMARY.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/SUMMARY.md -------------------------------------------------------------------------------- /cover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/cover.jpg -------------------------------------------------------------------------------- /res/architecture-cycle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/architecture-cycle.png -------------------------------------------------------------------------------- /res/arrow-inherits.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/arrow-inherits.png -------------------------------------------------------------------------------- /res/arrow-references.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/arrow-references.png -------------------------------------------------------------------------------- /res/bytecode-ast.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/bytecode-ast.png -------------------------------------------------------------------------------- /res/bytecode-code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/bytecode-code.png -------------------------------------------------------------------------------- /res/bytecode-literal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/bytecode-literal.png -------------------------------------------------------------------------------- /res/bytecode-numbers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/bytecode-numbers.png -------------------------------------------------------------------------------- /res/bytecode-stack-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/bytecode-stack-1.png -------------------------------------------------------------------------------- /res/bytecode-stack-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/bytecode-stack-2.png -------------------------------------------------------------------------------- /res/bytecode-stack-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/bytecode-stack-3.png -------------------------------------------------------------------------------- /res/bytecode-ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/bytecode-ui.png -------------------------------------------------------------------------------- /res/command-buttons-one.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/command-buttons-one.png -------------------------------------------------------------------------------- /res/command-buttons-two.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/command-buttons-two.png -------------------------------------------------------------------------------- /res/command-stream.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/command-stream.png -------------------------------------------------------------------------------- /res/command-undo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/command-undo.png -------------------------------------------------------------------------------- /res/component-uml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/component-uml.png -------------------------------------------------------------------------------- /res/dirty-flag-multiply.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/dirty-flag-multiply.png -------------------------------------------------------------------------------- /res/dirty-flag-pirate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/dirty-flag-pirate.png -------------------------------------------------------------------------------- /res/dirty-flag-title-bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/dirty-flag-title-bar.png -------------------------------------------------------------------------------- /res/dirty-flag-update-bad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/dirty-flag-update-bad.png -------------------------------------------------------------------------------- /res/dirty-flag-update-good.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/dirty-flag-update-good.png -------------------------------------------------------------------------------- /res/dogshot.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/dogshot.jpg -------------------------------------------------------------------------------- /res/double-buffer-face.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/double-buffer-face.png -------------------------------------------------------------------------------- /res/double-buffer-slaps-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/double-buffer-slaps-1.png -------------------------------------------------------------------------------- /res/double-buffer-slaps-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/double-buffer-slaps-2.png -------------------------------------------------------------------------------- /res/double-buffer-tearing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/double-buffer-tearing.png -------------------------------------------------------------------------------- /res/event-queue-central.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/event-queue-central.png -------------------------------------------------------------------------------- /res/event-queue-crawl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/event-queue-crawl.png -------------------------------------------------------------------------------- /res/event-queue-loop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/event-queue-loop.png -------------------------------------------------------------------------------- /res/event-queue-queue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/event-queue-queue.png -------------------------------------------------------------------------------- /res/event-queue-ring.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/event-queue-ring.png -------------------------------------------------------------------------------- /res/flyweight-tiles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/flyweight-tiles.png -------------------------------------------------------------------------------- /res/flyweight-tree-model.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/flyweight-tree-model.png -------------------------------------------------------------------------------- /res/flyweight-trees.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/flyweight-trees.png -------------------------------------------------------------------------------- /res/game-loop-fixed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/game-loop-fixed.png -------------------------------------------------------------------------------- /res/game-loop-simple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/game-loop-simple.png -------------------------------------------------------------------------------- /res/game-loop-timeline-close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/game-loop-timeline-close.png -------------------------------------------------------------------------------- /res/game-loop-timeline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/game-loop-timeline.png -------------------------------------------------------------------------------- /res/object-pool-heap-fragment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/object-pool-heap-fragment.png -------------------------------------------------------------------------------- /res/observer-linked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/observer-linked.png -------------------------------------------------------------------------------- /res/observer-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/observer-list.png -------------------------------------------------------------------------------- /res/observer-nodes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/observer-nodes.png -------------------------------------------------------------------------------- /res/prototype-class.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/prototype-class.png -------------------------------------------------------------------------------- /res/prototype-delegate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/prototype-delegate.png -------------------------------------------------------------------------------- /res/prototype-hierarchies.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/prototype-hierarchies.png -------------------------------------------------------------------------------- /res/prototype-object.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/prototype-object.png -------------------------------------------------------------------------------- /res/prototype-spawner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/prototype-spawner.png -------------------------------------------------------------------------------- /res/prototype-weapon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/prototype-weapon.png -------------------------------------------------------------------------------- /res/spatial-partition-adjacent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/spatial-partition-adjacent.png -------------------------------------------------------------------------------- /res/spatial-partition-battle-line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/spatial-partition-battle-line.png -------------------------------------------------------------------------------- /res/spatial-partition-grid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/spatial-partition-grid.png -------------------------------------------------------------------------------- /res/spatial-partition-linked-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/spatial-partition-linked-list.png -------------------------------------------------------------------------------- /res/spatial-partition-neighbors.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/spatial-partition-neighbors.png -------------------------------------------------------------------------------- /res/spatial-partition-quadtree.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/spatial-partition-quadtree.png -------------------------------------------------------------------------------- /res/state-flowchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/state-flowchart.png -------------------------------------------------------------------------------- /res/state-pushdown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/state-pushdown.png -------------------------------------------------------------------------------- /res/type-object-breed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/type-object-breed.png -------------------------------------------------------------------------------- /res/type-object-subclasses.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/type-object-subclasses.png -------------------------------------------------------------------------------- /res/update-method-remove.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/update-method-remove.png -------------------------------------------------------------------------------- /res/update-method-uml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zilongshanren/Game-Programming-Patterns-CN/HEAD/res/update-method-uml.png --------------------------------------------------------------------------------