Summary
We covered a lot of code in this chapter. The main lesson in this chapter was learning how to render 2D and 3D at the same time. We then added code to load all of our 2D resources as sprites. We also added the ability to render text, and now we can see our score, stats, and credits.
We implemented that state machine for the game and wired that into the input, update, render, and game loop systems. This included creating states for a splash screen, loading resources, playing the game, and displaying various game screens.
You now have a complete 3D game. Sure, there is more that you can do with it. In the next and final chapter, we will learn a few new tricks, then the rest is up to you!