If you want to make a video game, you need a game engine. Typically, this is a software framework that includes tools for things like rendering graphics, implementing physics and collision detection, adding sound and animation, and managing networking, localisation and myriad other things required for a game to function. In the early days, a programmer often created all these functions from scratch for each game, sometimes reusing or adapting code from a past title.