In this chapter, we explored how to add dynamic lighting to our scene and the implications it has on both game resources and performance. You learned how to add normal maps to a flat sprite in order to add depth to it and allow dynamic lighting to function with it. We also looked at dynamic shadow creation using shadow mapping and shadow volumes. Finally, we looked at some details, such as reflections and combining static and dynamic lighting in a scene.
We are now able to add dynamic lighting effects to a sprite-based scene using normal maps. We can also apply dynamic shadows to a scene and are aware of many handy shortcuts. We should not use more dynamic shadows than absolutely necessary.
In the next chapter, we will look at implementing user interfaces for our games.