Game programming patterns and the structure of the Scrolling Shooter project
Before we dive in too deeply, it is probably worth stating exactly what a design pattern is.
A design pattern is a solution to a programming problem. More specifically, a design pattern is a tried and tested solution to a programming problem.
What makes design patterns special is that the solutions have already been found by someone else, documented in books and other media (such as websites), and they even have names, so they can be readily discussed.
There are lots of design patterns. We will be learning about the Observer, Strategy/Entity-Component, Singleton, and Factory design patterns.
Design patterns are already-proven ways of enabling the ideas we have already discussed, such as reusing code, encapsulating code, and designing classes that represent things. Patterns often amount to a best-practice way of encapsulating, allowing reuse, and allowing a group of classes to interact.
Tip...