This game uses a singleton design pattern over several classes to ensure that only one instance of each class exists and to provide access to that instance. In this case, the singleton pattern is implemented as a template class that other classes inherit from, which guarantees that only one instance of each class exists in the game. InputHandler, RenderDevice, TextureHandler, and Application are all singletons that inherit from the Singleton class.