A game engine is a software framework designed for the creation and development of video games. Video game developers use them to create games for video game consoles, mobile devices and personal computers. The core functionality typically provided by a game engine includes a rendering engine (‘renderer’) for 2D or 3D graphics, a physics engine or collision detection (and collision response), sound, scripting, animation, artificial intelligence, networking, streaming, memory management, threading, localization support, and a scene graph. The process of game development is often economized, in large part, by reusing/adapting the same game engine to create different games, or to make it easier to “port” games to multiple platforms. A game engine is the software, i.e. some algorithms, solely responsible for the game mechanics and is strictly speaking not the rendering engine. Like e.g. the physics engine, the rendering engine is just middleware. The rendering engine is responsible for the rendering or rather 3D rendering and not for the game mechanics.