1.0 Introduction
Game engines are like the bread of a sandwich, without it, you would just have a clump of extras with nothing to hold them together. A game engine is a culmination of all the non-game parts of a video game, which is responsible for AI, physics, processing and core programming for the game, which allows it to run smoothly. The game engine also handles world generation, graphics processing and prompts for everything in the game. A game engine can be used for a number of games as it acts as assembly points for each game peripheral, which are the outside things that are created which are added to the game engine to put the game together.
The assets of the game will have to be changed if the game is to be different. The assets of a game are all the character designs, world designs, weapon designs, scripts, cut scenes and consequences for each action you take in a game. These can be cut and changed for each game but the base video game engine stays the same.
2.0 Types of Game Engines
2.1 2D Engines
2D engines are not as complex as 3D engines as they only have to deal with 2 planes, the X and Y plane when it comes to collision detection, character design, character movement and game physics. A 2D game engine can be derived from a 3D game engine and so 3D game engines are more common as they have backwards compatibility with 2D games and their graphics. 2D engines collision detection is also on the X and Y planes and is a lot simpler than 3D collision detection. The 2D collision detection has real life physics in its engine but only on the X and Y-axis since it only has 2 planes to work on. 2D engines need to piece together all the assets that come with the 2D game engine to be able to render the game properly and for all the prompts, character designs, movements and physics to collaborate properly together to complete the game.
2.2 3D Engines
3D engines are more complex than 2D engines as they have to deal with 3 planes, the X, the Y and the Z planes. The physics in 3D engines when in tangent with collision detection and the consequences of the collision are also a lot more complex as there are a lot more angles and data to work with when one object hits another. 3D characters are also require a lot more detail and coding depending on what kind of art style the game requires. 3D engines also need to put together more game assets, as 3D games require a lot more information and data to be able to play the game correctly due to the adding of the Z plane when compared to 2D graphics.
2.3 Mobile Engines
Mobile engines can either be 2D engines or 3D engines depending on the phone but most modern phones use a 3D engine for their games. The mobile phones would download all the asset data from the app store or the Internet and a whole new engine. The phones 3D engine then takes these assets and compiles them together to create the game that was advertised on the Internet or app store.
Similarities
Both are platforms in which program assets are used and compiled together to construct and complete a game. Both game engines are used for rendering graphics 2D and 3D, along with animation, sound, physics detection, collision detection. Both use similar programming and both need to be designed on a pc before going to their retrospective platforms. Both engines can use similar physics engines and collision detection programs for each game which will allow the same game to be on multiple platforms.
Differences
Mobile game engines are designed to run on a lot less processing power than a PC game engine as the processor chips in mobiles are significantly less powerful than PC ones. Mobile game engines have to render graphics in the same amount of time as a PC game engine; therefore these graphics will be lower quality than the PC graphics as a mobile game engine has less processing power. Mobile game engines also have to cater for different actions from the player as most mobile game engines use touch as their input to play the game therefore the mobile game engine has to implement this into the game for it to run properly whereas a PC game engine has to implement the players mouse movements or controller movements into the game. PC game engines offer a lot of freedom when it comes to which program assets in constructs into a game as a player can replace these assets with customised ones; these are known as ‘mods’ whereas mobile game engines do not offer this kind of freedom as easily as PC does as generally a mobiles programs cannot be edited as easily as a PC’s.
2.4 Game Mods
Game mods are simply changing the assets that are inputted and compiled by the game engine. These assets can be changed in their appearance such as characters and their design, in game items and even the game world. New game stories or character actions and prompts can also be added in and the game can completely change with just a few game mods depending on what they are.
3.0 Purposes
3.1 Graphic Rendering
Graphic rendering is how the graphics appear and how quick they come up on the screen. This is mainly done by a graphics card but is supported by a processer. Graphic rendering is the generation of an image from a 2D or 3D model, which will be obtained from the assets of the game. The rendering also contains the physics and mathematics of the image generated along with all the art forms such as texture, viewpoint, lighting and shading.
In a video game, graphic rendering is a vital part of making a game look aesthetically pleasing through its use of physics, mathematics and art styles. A character would simply be a plain model with no effects from the world surrounding this model such as lighting or viewpoint, the game object and the game itself would look very dull and incomplete.
3.2 Collision Detection
Collision detection is done using a grid system in a game and when one object enters another’s area then the system will detect a collision, this is known as collision detection. Usually all games all laid out in a grid system although some games differ from others and other ways to detect collisions. Using geometry and mathematics a programmer can calculate whenever an object will collide with another using this grid system and can take the necessary steps as to what to do next.
In video games, collision detection is vital throughout the whole game because if there was no collision detection then everything would end up falling through the world, passing by everything, slipping through everything and there would be no structure at all throughout the game. A good example of collision Detection would be Battlefield. Battlefield’s collision detection can detect if and where bullets will hit a building or character and taking the necessary steps through the game physics to carry out the next action.
3.3 Artificial Intelligence (AI)
Artificial intelligence (AI) is the science, engineering and construction of intelligent programs, which are made to replicate the human thinking process and carry out whichever conclusion the program comes to. Artificial intelligence is also made to replicate the human learning process and pick up new ways to do things, new ways to communicate and come up with the most efficient and logical way to do something.
In video games, AI is used for NPC’s and other characters, items, and other peripherals, which are not controlled by the user. The complexity and efficiency of an AI system in a video game is determined by what skill level you are playing the game at; for example, an enemy when on the mode ‘easy’ for a game, will have a very simple and slow AI system purposely to make the game easier for the player, whereas when the game mode is ‘hard’ then the enemies and other peripherals will have a much more complex, faster and more effic
ient AI system, although it will still not be perfect as the game has to be beatable.
3.4 Sound
Sound is vital to any video game. A good soundtrack can make or break a video game and can really make the experience for a player. Sound effects such a gunshot or a sword slash is a helpful way to immerse a player in the video game. Crashes and bangs, known as retaliation sounds, are vital to any game as if the player crashes their car then they expect a retaliation sound to come from that crash.
Music in a game at the right points can make a good game into a great one. Good background music, which sets the scene of a big moment in a game, can make that moment stick in that persons mind or make them feel emotions that they would not have expected to come from the game or from that moment. Music which is misplaced or does not set the scene well will result in a poor experience for the video game and can draw reviews from players that the game was a disappointment or cheesy.
3.5 Physics
Computer animation physics or game physics is the implementation of the laws of physics into a video game engine or simulation. These physics laws are mainly applied in 3D computer graphics; this is to make the graphics and effects seem more real to the player. These physics are typically only an approximation of real life physics and computation is performed using discrete values. Newtonian laws are sometimes applied in these games which is newton’s laws from real life.
There are several elements that form components of simulation physics:
• Physics engine is a program code that is used to simulate Newtonian physics within the environment
• Collision detection is used to determine whenever 2 or more objects cross each other’s path or collide.
Physics in video games are very important as they dictate how the game pans out in terms of character movement, character reactions and movement and reactions in general throughout the game. A lot of real life mathematics and physics is used for calculations in realistic games, as they want to resemble how things are carried out in real life. Other games such as Mario kart and Monkey Ball Racing have different physics as they are meant to match the style of the game and make the game more fun than if the game had real life physics.
4.0 Middleware
4.1 What is middleware?
Middleware is taking other game developers or peoples programs to use in their own game. This can be done in multiple aspects of a video game such as artificial intelligence, physics, graphics and networking middleware can be taken from other game developers with their permission and used in another party’s game to improve the games performance.
4.2 Why use middleware?
The reason why game developers choose to use AI middleware because their own skills are not as refined or they are not as knowledgeable as other game developers in the aspect that they are using the middleware in. This can improve their game performance if they are not experienced in a certain aspect of their game.
4.3 AI Middleware
AI middleware provides services for game engines for performing the AI function in computer games. AI middleware is obtained from different companies for other company’s games if they do not have their own AI program. It has recently emerged as a serious category of products that some developers are considering over their own AI systems. For the most part, AI middleware will find itself located outside the game engine and the process of producing the desired behaviour of agents or non-player characters (NPC) or decision making objects found in a computer.
Typically, character and game state status flow from the game engine to the AI middleware and then character control requests flow from the AI middleware to the game engine and are acted out by the characters.
4.4 Physics Middleware
Game developers can take another’s physics programming to use in their own game to improve their game movement and fluidity for reactions and actions in their game. An example of this would be Red Dead Redemption and Grand Theft Auto 5. GTAV uses the same physics system as Red Redemption as the company took the physics programming as middleware for GTAV.
4.5 Graphics Middleware
Taking graphics as middleware can be of a big advantage to games as long as the graphics is suitable to the game theme. Graphics middleware can cost a lot of money but can save a lot of time for the game developers as it clears up an area which would have taken weeks, possibly months to put together if done manually. This will make one game look very similar to another but if the graphics are of a good standard and they suit the game theme then no one will complain if they do look similar.
4.6 Networking Middleware
For playing games online with friends, a lot of companies use Networking middleware as it is the most efficient way to set up online multiplayer in their game without having to create their own form of networking. If another company has a good networking system then another game developer should definitely look into using it as players would be familiar with it which would be convenient and of benefit to the player.