As a Game Designer and Engineer, I know that a strong understanding of engineering concepts can enable greater creative possibilities. So, I completed a course on Game Programming Patterns!
In this course, I learned about the following patterns. You can click on each pattern below to learn more about it.
The Command Pattern, which is useful for easily assigning and reassigning user-inputs to functionality.
The Flyweight Pattern, which is useful for creating many items that share the same attributes without sacrificing too much performance.
The Observer Pattern, which facilitates decoupled communication between classes.
The Prototype Pattern, which allows you to save on performance by cloning an existing object rather than creating one from scratch.
The Singleton Pattern, a pattern for ensuring that only instance of a class exists. It can be useful for creating universally-accessible GameManger-type classes, but can be dangerous because it can make your code tightly coupled.
The State Pattern, which is useful for programming AI behavior and functionality as a set of self-contained states.
The Object Pool Pattern, which is useful for creating a large number of similar objects. I discussed using the Object Pool pattern in depth in my earlier blog post.