Game engine was introduced in the mid 1990s, there were many
first-person shooter games created at that time, a game called Doom, developed by
id Software was extremely popular. It was well architected by developers and consisted
of many core software components, such as, 3D graphics rendering, the tool to
detect collision, many different art assets and the different game levels that
made up the game as well as enhanced the gamers gaming experience. This is when
developers started editing the game with different assets, such as characters,
gaming levels, layouts and retooling the game with very minimal enhancements.
This is how the ”mod community” started, from then developers have been
editing the game using the free toolkits that was available to individuals.
What is game engine architecture and what are the core
A game engine is a software which gives an individual the
authority to create and develop games for different platforms, such as
computers, consoles, mobile phones etc. It consists of a number of core
features, components, tools which can be used for the creation and development
of games. The developers would also look for ways to economise the game
development process and one common way of doing this, is by reusing/editing the
same game engine to create different version (updated) of the same games, or
even create different games. Another reason why developers may use the same
game engine is to make it easier to develop the games for the different
platforms. Game engines provide great enhancement tools that ease the
development process, such as, audio, the graphics, physics and different AI functionalities.
These type of game engines are also commonly known as ”middleware”, this is
because the purpose of ”middleware” is to provide an efficient and reusable
software which offers all the core functionalities and features needed to
develop games for different platforms, while reducing costs, complexities and
other significant factors that are highly relevant in the gaming industry. Examples
of middleware programs; Gamebryo, RenderWare and JMonkey Engine. There are also
other game engines known a graphics engine, also known as a rendering engine,
these only provide real- time 3D rendering functionalities, this is aimed at
developers who highly only need the functionalities and the capabilities of
real- time 3D rendering.
As mentioned above, game engines provide different
functions, features and tools needed for the development of games, these are
Rendering Engine(2D/3D)- The rendering engine creates 3d
animated graphics using the method chosen by the developers, such as
rasterization, ray-tracing or any other techniques. Rendering engines are built
in a way that rather than being programmed to execute on the CPU or even the
GPU they use multiple rendering application, also known as programming
interfaces(API’s), this provides a abstraction of the GPU.
Collision and Physics-
Sound- This is also known as an audio engine, this is the
component which has algorithms all related to sound. This algorithm can
calculate on the CPU, an ASIC. Many other features such as, abstraction APIs,
SDL audio etc. are available on the game engine.