Summary
So, in this chapter we implemented the foundation for a GUI library that can easily be extended upon. Even without extending the classes, it provided a functional user interface.
Implementing a nice and simple composite GUI library, along with handling its events and rendering were some of the skills attained in the chapter. Also, we have shown how to integrate such a system into what we already had, making the menu and the settings state richer than ever.
Now it is time to keep going into the next chapter, where we will handle gameplay mechanics. This means adding a fun factor to the game we are making, by adding enemies, projectiles, and other gameplay rules, which define a game's quality more prominently than other systems do. After all, who would want to play the best graphically accurate game if it weren't fun?