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.
Tip
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 (like 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. Like reusing code, encapsulating code and designing classes that represent things. Patterns often amount to a best-practice way of encapsulating, allowing re-use and yet allowing a group of classes to interact.
Tip
As we will see throughout the...