Video games are becoming more popular and immersive by the minute. While we often know our favorite production companies by heart, we often lack the different software components that go into the creation of our favorite games. Gaming software could be a game development tool which is a specialized software application that could help with things like textures or 3D models. Game development tools are almost always custom made for a game by the developer. Another piece of software that is used or created for game development is game engines, also known as game architecture and game framework. This project will focus on game engines to create a better understanding of what they are, what they do, their history, and information on some of the most popular and up and coming game engines.
What is a game engine?
A game engine is a software developed to aid in the process of creating a video game. They are used to create games for consoles, personal computers and mobile devices.Game engines are also known as game frameworks because they provide tools and a structured format to allow for more efficient game development. A lot of the time game engines are considered middleware because of how some have the ability to connect and sometimes manipulate other software outside of the game engine itself. Game engines usually optimize memory management and allow for more data-heavy designs that we are now often accustomed to.
Game engines allow developers to reuse past components which make developing faster and easier. A game engine will be the most enticing to a developer if it reduces production time, makes production easier and helps reduce the cost of production.
What are the different components of a game engine?
There are multiple components that a game engine can have. All game engines have a main game program which has all of the games logic which is implemented by the use of algorithms. The rest of the different parts of a game engine may differ but to stay competitive and keep up with technology, game engines are offering more and more capabilities.
One big aspect of many game engines is rendering. While 2D games are often created using game engines, the ability to create 3D objects in them is what makes them so incredible. 3D rendering is the process of creating images (photorealistic or not) based on three-dimensional data stored on your computer. Many game engines allow for real-time rendering which allows for 3D images to occur in real time as the player interacts with the game. Pre-rendering is also an option and usually is better quality but can cause longer load times, uses more CPU and takes up more memory space.
Audio can be another component that usually focuses on loading, decompressing and playing audio files during the correct times of a game. More advanced engines calculate sounds and can produce changes in frequency and echoes. It focuses on creating the correct sounds on the client speaker system
A physics component to an engine allows for a game to simulate the laws of physics realistically when representing collisions, falling, or maybe even a fight scene in a game. There are four main focuses of physics in any computer software particularly designed to aid in game development; They are collision detection, soft-body dynamics, Brownian motion, and paradigms.
Collision detection uses meshes or shapes to represent objects in a game to help create calculation on how objects interact with each other in the game. Discrete collision detection uses frame rates to detect when and where two or more objects will connect. Discrete collision detection is often used for hitboxes in video games which are invisible during gameplay usually but allow a game to know when a punch or bullet lands the target in a game.
Soft Body dynamics allows for the object to have physical properties like volume or toughness that an algorithm can take into consideration. Brownian motion disables physics calculations for certain objects that are not in use, needed, or in range to prevent wasting CPU power. Paradigms combine different physics components help create simulations for animation in the game.
Another growing aspect of many game engines is artificial intelligence capabilities. AI software is usually specific to the game and integrated into the game by use of a game engines capabilitieis