Summary
This was quite a chunky chapter but we have learned a huge amount. We have learned how we can subdivide this project into more classes than ever before to keep the code simple but at the expense of a more complicated structure. We have also coded our first interface to enable controlled communication between different classes.
In the next chapter, we will learn about and implement the Observer pattern, so we can handle the player's interaction with the HUD without cramming all the code into the GameEngine
class. In addition, we will also code a cool exploding star-burst particle system effect that can be used to make shooting an alien a much more interesting event.