This question already has an answer here:
I am new to Game Development, All I have developed is some
2d Games, using
Game Maker by YoYo Games. There game development is much more easy, just as simple as Drag and Drop.
But, Now I wish to evolve in Game Development, and wanna try some hands with the common programming languages like,
C. In order to achieve this, I came around the first topic,
So, What is Game Engine.?
That is a broad question, with various answers. I came out with some conclusion after reading various links,
A game engine is a system designed for the creation and development of video games. The core functionality typically provided by a game engine includes a rendering engine 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.
It exists to abstract the (sometime platform-dependent) details of doing common game-related tasks, like rendering, physics, and input, so that developers (artists, designers, scripters and, yes, even other programmers) can focus on the details that make their games unique.
Engines offer reusable components that can be manipulated to bring a game to life. Loading, displaying, and animating models, collision detection between objects, physics, input, graphical user interfaces, and even portions of a game's artificial intelligence can all be components that make up the engine.
Now what I understand is, Game Engine takes care of all the common work, like physics, loading etc...
As far my question is concerned, what is a Game Engine (Programmatically)?
Is it a Library? With pre-defined functions and classes, which can be inherited? Or what so ever, what is it?