What is a game engine?
Game engines provide the basis for the creation and development of video games. They are used to create games on a variety of platforms, such as consoles, PCs and mobile devices. Typically, these engines contain core components that allow the creation of video games, such as a rendering engine for 2D and 3D graphics that draw the components of the game from models created for the game. Game engines will also contain a physics engine that is used to create a simulation of different types of physical systems, such as collision detection between objects within the game, along with fluid dynamics to create realistic movements for liquids and gases, for example water and smoke. These engines will also contain sound, scripting and animation capabilities, along with many other functions. These functions combined allow everything in the game to come together and be seen on screen so the game can be played. In general, game engines will be re-used in order to create different games in order to save development money, and it also allows developers to more easily port their games over to different platforms, such as having games on both the Xbox One and the PlayStation 4. Furthermore, thanks to the growing popularity and development of game engines, there have been many more opportunities for game enthusiasts to create their own addition for games, by changing the content within the game that alters the way that the game runs or, in some cases, creating a whole new game, which is known as a total conversion. Game engines and their development kits are becoming more and more accessible to the general public, which allows fans of games to create their own content, such as new weapons characters and models, that they can include in their game, and release on popular sites such as Mod DB or Nexus Mods in order for other players to try out their creations.
The Purpose of Game Engines
The main purpose of a game engine is to provide a visual development suite for game developers that simplifies the development of games and allows the developers to create games in a much faster time, along with supplying reusable software. The majority of game engine suites provide content that will ease in the creation of games such as graphics, physics and a sound engine. Game engines are known in the business world as middleware, as they provide software that is flexible and reusable, whilst providing the core features that help to reduce costs, both monetarily and time-wise, which are both important factors in the video game industry. Another purpose of game engines is that they developers to create games for the majority of different platforms without having to significantly alter the source code, which also helps developers to save money and time as they do not have to write out different code for when they want to release the game on a new platform.
The Evolution and Development of Game Engines
Unreal Engine
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxzuU6_zF2_8lJo6pwtnNbHc4EbuhRlduuIoFtHlcz1hoXLcQcUVG3zvDv3hyphenhyphennEdPgbFfE_ceCxei9iQM3vhRfS6u_LbwM8IrC3xZfWVEPYsQWVabpHP0DHx9xZh57CADOGRBX_jOEBSk/s320/deusex_bemutato_05.jpg)
The release of Unreal Tournament, developed in the unreal engine, helped to make great strides in network performance, and both Direct3D and OpenGL support. The engine became popular due to it's inclusion of scripting language UnrealScript, which allowed easy access to modding, and helped to create the total conversion mod, Tactical Ops: Assault on Terror, which began as mod for Unreal Tournament before being released as a standalone version.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2LloBL0DcdZuBLBQX-u-FhOe1XSWax4XHAunjXjq8XLXIgT-UHo2xZB255UOEGWTyZ1yiWOMH4FSvLV5iEl74_KAzJpIn4bj_0H1UCuS7PgzetslCmHeQs71kdV58vpiz9Be77PDDTTc/s320/bioshock-screencap1.jpg)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSqm1dZFSJDMA0i6Q5dc7v2Cp4iHtORzK3ss9EE40lpk162XdHoBkOzvAWT86yfvNZD_WAFkkZGZHQ2EJRa5Nee8T5KuvVVaIWJnFPVCDNwpRVZ7KIN7XwO1SY3YqvF7i3Ddk6X3qSBfo/s1600/batman.jpg)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg59UFfU4K_d9QVdjJjY8NEVIYXuLt2lYrZHzNtg8xOVTGOh5OWvMNwiHuyJRtkVe3zaAP9-hEACeiDKiGyP4zYNZ4C6Ndyjjt3LBG6Upk8pYVeuHAY70wxIC-Y72ImPnClGdx9IypL9SA/s320/maxresdefault.jpg)
CryEngine
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNPLC3N_3al0XEK_gjxtq-qO5TMulE8du7_y6vrC6L6q-Zb4MbfcV-CdJDBGWQR4sGeZbbrWYxuKKejO9lEjtMKYCWWdp4vMs-WALpYlOCWsre4koEp6JxiI5T-_lUl_T5iOjSogVzw64/s320/Far-Cry-1-Free-Download.jpg)
CryEngine 2 is used in Crytek's game Crysis, and an updated version in Crysis Warhead. In March 2009 at the Game Developers Conference, CryEngine 2's successor, CryEngine 3, was shown on the Xbox 360 and PlayStation 3. CryEngine 2 was first licensed out to French company IMAGTP who specializes in architectural and urban-planning communication. The purpose of licensing the engine was to create a program to allow clients to see exactly what a building or other structure would look like before any actual construction was started. On May 11, 2007, Crytek announced that they would be using the engine to create a game based on their new “intellectual property”. On September 17, 2007, Ringling College of Art & Design became the first higher education institution in the world to license CryEngine 2 for educational purposes
CryEngine 3 was developed for use on Microsoft Windows, PlayStation 3, Xbox 360 and the Wii. In terms of the PC, the engine was said to support development in DirectX 9, 10 and 11. CryEngine 3 was released on October 14 2009. On March 1, 2010, a new tech demo of the engine was released for the i3D 2010 symposium, which demonstrates 'Cascaded Light Propagation Volumes for Real Time Indirect Illumination'. As of July 1, 2011, the Mod SDK version of CryEngine 3 specifically to create custom maps, mods and content for Crysis 2 is available on Crytek's website. Crytek also released a free-to-use version of the CryEngine for non-commercial game development. It was released as of August 17, 2011 under the name CRYENGINE® Free SDK.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuiDJaD6rEsHv7Bekt1sY4YwtGT05LZ-3PiizCef9eXT0FN1LlhLe3J49q_lXjtKoI_De-gGfqjy8VrFooGEuNO-eJa5ogpFX_UYx3tQttR8XxLFFS0Xd2iTV5twbsYOj9515IOwgvgHM/s320/Ryse-Son-Of-Rome-Marius-clashing-shields-gameplay.jpg)
On March 22, 2016, Crytek announced a new version of CryEngine, called CryEngine V, which features native DirectX 12, Vulkan and virtual reality (VR) support. Additionally, a new licensing model was introduced with a "pay what you want" model for usage and access to the source code.
Frostbite Engine
Battlefield Bad Company (Frostbite 1)
The Frostbite engine is an example of an engine being exclusive to one developer, or group of developers, with the Frostbite engine being used exclusively by Electronic Arts. The engine was developed by EA Digital Illusions CE (DICE), who are the creators of the Battlefield Series and is currently designed for use on Microsoft Windows, PlayStation 3 and 4, Xbox 360 and the Xbox One. Although first used in order to develop First-Person Shooters, the engine has now been expanded to cover a wide range of genres such as racing, RPG and RTS games.
Battlefield Bad Company 2 (Frostbite 1.5)
The tool set comprises three primary components: FrostEd, Backend Services, and Runtime. FrostEd is a desktop program for developers to create Frostbite games in a realtime workflow. Frostbite 3 (known as simply Frostbite as of 2015) is the most recent iteration of Frostbite. The workflows and runtimes are highly configurable and cover all aspects of development including audio, animation, cinematics, scripting, artificial intelligence, physics, destruction, rendering, and visual effects. Frostbite 3 introduces new features such as new weathering systems, physically based rendering (PBR) and support for various development techniques (such as photogrammetry). The game engine has had several upgrades including improved tessellation technology. It also features Destruction 4.0, which enhances the in-game destruction over its predecessors.
Battlefield 3 (Frostbite 2)
Battlefield 4 (Frostbite 3)
REDengine
REDengine is an independently developed game engine create by CD Projekt RED, designed exclusively for their nonlinear, role playing games. RED is portable across both 32 and 64 bit platforms and currently runs under Microsoft Windows. REDengine allowed CD Projekt RED to create a complex, nonlinear storyline that was not possible to create in previous game engines. Prior to this engine, many developers had to rely on game engines that forced trade offs when creating games. On one hand, developers could create a vast open world, but were limited in the complexity of the story that they could tell, often having to have a much more simplified story. On the other hand, developers could create a complex nonlinear story, however they would sacrifice the ability to have a vast open game world and be stuck with creating something much more limited. For REDengine 2, middleware such as Havok was added for physics, Scaleform GFx was for added for better UI capabilities and FMOD was added for audio. This version of the engine was used to bring The Witcher 2 to Xbox 360.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqBipvNvqjAQwu3EaSZUo3YMdisgnarBjy-8o6rOKpha84iMdYfTTppB0E3FdIkPSUuh9iA_EmNd7cm7iIFfnyiYdXFfl4iJLX1I0csweiMRO70wIokLAbWTqe-s_nVBOBmQZoo5lHvj4/s320/Witcher-3-1.jpg)
GameMaker: Studio
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgr8aOjFTuZFkbk7eiCRV0Pg2uB5zWsUSaoyLtnLtgULvgriyYpwgMJGI3u0cbpUj_YaZenIhcmvXDr2LaqpYUw9bv1aYznJI-bUtAKyxbywib3nZOP0Wpf33-eDROGqxt6WpqNz45GHo0/s320/spelunky.jpg)
Features of Game Engines
Graphic Rendering - Rendering is the final process when creating an image or an animation from a computer model. When rendering a scene containing objects or characters, among others things, the file is made up of strictly defined language which contains a description of the information about the scene. This information has facts such as the geometry of the objects, it's viewpoint, the textures of the objects, and also how the lighting and shading on the object is perceived. This data is then passed through a rendering program and is outputted as a digital or raster graphics image file. Though the technical details of rendering methods vary, the general challenges to overcome in producing a 2D image from a 3D representation stored in a scene file are outlined as the graphics pipeline along a rendering device, such as a GPU. A GPU is a purpose-built device able to assist a CPU in performing complex rendering calculations. If a scene is to look relatively realistic and predictable under virtual lighting, the rendering software should solve the rendering equation. Due to the importance of video game graphics these days, this is the part of the engine that tends to be criticised the most and compared to other game engines, as it determines how the game will look.
Artificial Intelligence - Artificial Intelligence, or A.I, is used to create and simulate intelligent behaviour patterns, primarily in non playable characters within the game. This is generally used to give the NPCs a human-like intelligence, and one of the main goals of game developers is to create the AI appear more human. Since game AI for NPCs is centered on appearance of intelligence and good gameplay within environment restrictions, its approach is very different from that of traditional AI and in many cases the computer abilities must be toned down to give human players a sense of fairness. This, for example, is true in first-person shooter games, where NPCs' otherwise perfect aiming would be beyond human skill. An example of AI in game engines is that of pathfinding, which is the method for determining how an NPC gets from one point to another, whilst also taking into consideration the terrain and obstacles that may be in the way of the NPC. Recently, there has been more development into the use of survival instincts for AI. This allows the the NPCs to recognise items and objects within the game, and determine whether they are beneficial or dangerous. For example, in shooters the AI will look for cover when taking part in shoot outs with the player, and also when they have to reload their weapons, allowing them to stay out of the line of fire whilst they are vulnerable.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfMakHoCQoGH-QoQF1qGIc-gKuqYG6_g9mbHpnjyEj4KHjyFEmF1BJUitoGAR1eTwQ_tEiqlahyphenhyphenIgdXy21HqxCNES8UPkhmHgVu-4eRuuK5quHmcixsbhpYrD6DufiHjfZVN7qQLyBZgw/s320/havok.jpg)
Ragdoll physics is a type of animation that is often used as a replacement for static death animations within games. The ragdoll is a skeletal replica of the object that has died, and then reacts appropriately to manner in which the object has died, which makes the game seem more realistic. For example, when an enemy is killed by a grenade within a shooter, instead of just dying where they were, they would be blown backwards or in some other direction as if they had actually been blown up. One approach that is used in ragdoll animation is that of Inverse Kinematics, which relies on playing a pre-set death animation and then using Inverse Kinematics to force the character into a possible position after the animation has been completed.
Within games, there will be a lot of interactions between objects, the player and the environment which is why having a competent collision engine is important. In general, most 3D objects are made up of two separate meshes, with one being highly complex, whereas the other is a simplified, invisible mesh used to represent the object to the physics engine so that the physics engine treats the object as a simple shape. This is done for speed purposes. One method of intersect detection is ‘Bounding Sphere’, which is a sphere defined by a point, centre and radius that is placed around a character or object. Anything that penetrates this sphere is a detection of intersection, then usually an appropriate response is assigned to take. This is one of the simplest levels method of detection and is most ideal when accuracy isn’t a huge factor. Another aspect of precision in collision detection is the framerate. Each frame is treated as separate from each other, and the space between the frames is not calculated. Therefore, this means that when there is a low framerate and a fast moving object, that object will appear to jump from one point in space to the next as each of the frames is calculated. In physics engines such as the Havok engine, this does not happen due to continuous collision detection.
Middleware - Although game engines themselves can be referred to as middleware, in the context of video games middleware is used to refer to the subsystems that provide functionality within a game engine. Some game middleware only serves one purpose, however it provides a much more efficient job than just general purpose middleware. The four most widely used middleware packages include RAD Game Tools' Bink, Firelight FMOD, Havok and Scaleform GFx. Bink was developed for basic video rendering, Firelight FMOD provides a low cost audio library and toolset. Havok provides a physics simulation engine along with a suite of animation and behaviour solutions, and finally Scaleform provides GFx for high performance Flash UI, along with a high quality video playback solution. Some middleware contains full source code, while others just provide an API for a compiled binary library.
No comments:
Post a Comment