What is a game engine?
A game engine is a software development environment that is optimized and simplified for quick development of video games, usually across multiple different languages and platforms. Modern game engines usually provide a graphics rendering engine with 2D and/or 3D rendering capabilities, a physics engine to have movement logic for your objects, AI for NPC (Non-Player Character) movement, a sound engine for manipulating and hooking sound to game events, an animation engine to make game objects move naturally, and more.
Game engines used to be created in-house by developers to be used only for one particular game, but eventually it was found to be quite inefficient, so they opted for maintaining and updating one engine over time to produce more games on the same engine. Nowadays, developers have many different choices to choose from, and they have different pros and cons. The next few pages will tell you about a few of these.