In order to understand what a game engine is, it is necessary to take a moment and understand what video games are made of. It ain't sugar and spice.
Video games are composed of two things: code and data. Code is what makes a game function, and data is what makes it fun
. Take Super Mario Bros.
as an example. The game code defines the rules of the game: that Mario can jump; that Mario can run; how fast he runs; that there are monsters, some of which can be stomped on; etc. The game's data defines what Mario looks like, how he animates, and most importantly the arrangement of terrain and monsters that form levels.
ROM hacking Super Mario Bros.
can lead to many Mario-like games. You can replace Mario's sprite, change what fireballs look like, and give it a total makeover. But unless you change the code itself, the game will have certain Mario-isms:
The game will always be to some degree Super Mario Bros.
A game engine is game code that is designed to be data-driven
. Unlike the above example, a proper game engine would allow the behavior of in-world entities to be defined in almost every way through data. Virtually all games have some data component, but only relatively recently has this component become flexible enough that two games built from the same engine can be very different from each other. That is, data defines both the function and the fun, while the code is just there to make the data do its job.
One of the first cases of a true game engine was Quake
. It was a first-person shooter, but the game engine was much more flexible. It did not even make the assumption that the game was first-person; a user of the engine could pull the camera away to a third-person perspective. And the main character would be rendered there in third person with all of the controls intact and functional. With some work, Quake
could have run a game like Super Mario 64
, all without directly changing the code of the engine.
Please note that this is a simplification of a complex topic
. Many game engines don't quite fit this definition, as the method of customizing an engine often involves writing code in addition to data. Half-Life 2
's game engine, the Source engine, is modified by loading DLLs, which are compiled C/C++ code. Even Quake
mods, written in so-called QuakeC, were compiled directly into virtual machine assembly code. Scripting throws a wrench into this as well, as scripts are code that is loaded like data. In that case, a game engine is basically just a library or module that handles 80% of the grunt-work in making a game: collision detection, that things can move, rendering things, etc. It is then up to the user to add the 20% that makes the game unique, whether through data and code or purely data.
Also making this more complex are people who sell licenses to engines that involve handing over source code, which is pretty much any commercially available engine. No game developer worth his salt is going to build his game based on your assurance that your engine is bug-free. This allows developers using the engine to actually change the engine code itself, not just layering new code on top of the engine. And developers frequently avail themselves of this opportunity. So a game developer that claims to be using the X engine probably made some changes to X.
The general rule of thumb is this: You know it's an engine if you don't have to actually change the engine's core code
to make a game that is substantially
different from other games made with this engine.
As a bonus, games that are significantly "enginified" are also very easily modded
, and games using the same engine are easy to port if other games using the same engine have already been ported.
Engines can be internal, restricted to a particular development company, or external, which can be licensed for use by others. In-house "engines" are really just common codebases that multiple development teams in a company share. It is impossible to know whether these truly fit the definition of "game engine" because the different teams modify the source code for their own needs. Unless an engine is external, it is difficult to know what you can do with it without
modifying the source code.
This may sound like a Game Maker
, but there is a difference. A Game Maker is limited to a specific style within a genre. This limitation is what allows them to be easier to use. Game Engines cover a wide range of possible game types. Super Mario World level editing
is effectively a Mario-style Game Maker. You can never make anything other than that kind of game. The line between the two, of course, is somewhat fuzzy. And when you touch that fuzzy, it can get dizzying.
External Game Engines:
- SCUMM (Script Creation Utility for Maniac Mansion) by LucasArts (while it's only possible to make adventure games with it, it's usually considered an engine due to its complexity and wide variety of games): Maniac Mansion (obviously), Monkey Island series (up to Curse), Sam & Max Hit the Road, The Dig, Loom, the Indiana Jones adventure games. Humongous Entertainment used it for every single game they made, such as the Putt-Putt, Freddi Fish, Pajama Sam, SPY Fox, and Backyard Sports series. Went through 11 versions, each one adding more features. Also popular for fanmade games, thanks to ScummVM.
- id Tech engines by id Software
- Wolfenstein 3D engine: Wolfenstein 3D, Rise of the Triad, Corridor 7, Operation Body Count. A slightly enhanced version was used in the Blake Stone games.
- Doom Engine: Doom, Hexen, Heretic, Strife, Chex Quest.
- Quake engine: Quake I, Hexen II
- Gold Source Engine by Valve, a modified Quake engine: Half-Life, Counter-Strike
- Quake II Engine: Quake II, Heretic II, Daikatana, Soldier of Fortune
- id Tech 3 (aka the Quake III Arena Engine): Call of Duty 1, Quake III: Arena (and by extension, Quake Live), American McGee's Alice, Return to Castle Wolfenstein, Star Trek Voyager: Elite Force (whose sequel uses a heavily modified version), Star Wars: Jedi Knight II - Jedi Outcast, Star Wars: Jedi Knight - Jedi Academy
- IW Engine (a derivative of id Tech 3) by Infinity Ward, as the name implies: used for Call of Duty (from Call of Duty 2 onwards) and the newer James Bond licensed games.
- ioquake3: an open-source fork of id Tech 3. Used in Open Arena and Urban Terror, among others.
- id Tech 4 (aka the Doom 3 Engine): Doom 3, Quake IV, Prey, Wolfenstein
- id Tech 5: Rage, Doom 4, Wolfenstein: The New Order, The Evil Within, Dishonored 2
- Unity 3D, while not a powerhouse of the likes of Unreal, has become quite popular with indie developers for liberal licensing and quick development time. Like most engines, it handles much of the grunt work required for games (rendering, collision, input, etc). However game entities are completely undefined outside of the concept of a game object, which is little more than a logical representation of a point in space. Everything else - including organizational structure, preservation of player data, and the like, is handled by the creator through a modular, component based system.
- The Unreal Engine series by Epic Games (named for the Unreal series, which was the flagship series for it until the more commercially-profitable Gears of War took over the role)
- Unreal Engine 1: Unreal I, Unreal Tournament, Rune, Klingon Honor Guard, Deus Ex, The Wheel of Time, Clive Barker's Undying. (And if they hadn't been canned, Jazz Jackrabbit 3D and a Hired Guns sequel to the old DOS /Amiga game.)
- Duke Nukem Forever (finally released in 2011) used a heavily modified version of Unreal Engine 1, as shown here.
- Unreal Engine 2 (and 2.5): Unreal Tournament 2004, BioShock, Splinter Cell, Deus Ex: Invisible War, XIII, Rainbow Six 3, Red Steel, Tribes: Vengeance, Red Orchestra, Killing Floor, Postal 2, SWAT 4, etc.
- Unreal Engine 3 (probably the most popular engine during The Seventh Generation of Console Video Games): Gears of Warnote , Unreal Tournament III, Bulletstorm, Rainbow Six: Vegas, BioShock Infinite, the Mass Effect series, The Last Remnant, Lost Odyssey, Mirrors Edge, Batman: Arkham Asylum, Batman: Arkham City, Asura's Wrath, Dungeon Defenders, Lollipop Chainsaw, Transformers: War for Cybertron, Army of Two, XCOM: Enemy Unknownnote , Guilty Gear Xrd, etc. It has also seen use in the TV series LazyTown
- Unreal Engine 3 also has it's own offshoot, the UDK (Unreal Development Kit), a free version of Unreal Engine 3 (with low cost licensing for indie developers) designed to compete with Unity for the aforementioned indie developer market. The two engines, both with high popularity in the indie community, have developed a bit of a Fandom Rivalry.
- Epic sued Silicon Knights over the use of Unreal Engine 3 code in Too Human and X-Men: Destiny. Silicon Knights charged Epic with selling the engine unfinished and giving bad support for developers licensing it. What really happened according to the judges, was that Silicon Knights reverse-engineered the engine for Too Human until they believed there was no more Epic code left and stopped paying Epic royalties... except there still was some Epic code left in the "new" engine used in the released product, and so Epic won the lawsuit. This cost Silicon Knights their existance, by the way.
- Unreal Engine 4, which both advances the graphics of the Unreal Engine to next-gen levels while simplifying the development process in many ways (such as switching to a fully dynamic lighting pipeline and, perhaps controversially removing UnrealScript in favor of extending Kismet (Unreal's visual scripting system) and C++ access). Like the UDK, Epic has been attempting to reach out to indies far more with UE4 compared to UE3, likely to compete with the rising popularity of Unity.
- Source Engine by Valve: Half-Life 2, Counter-Strike: Source, Left 4 Dead, Portal, Portal 2, Team Fortress 2, Dota 2, Vampire: The Masquerade – Bloodlines, Postal 3, Titanfall.
- The Torque Game Engine family by Dynamix (later, Garage Games): Penny Arcade Adventures, Tribes 2, Blockland.
- The NetImmerse/Gamebryo engine: Bully, Catherine, The Elder Scrolls from Morrowind to Oblivion, Warhammer Online, Freedom Force, Fallout 3, Epic Mickey, Fallout: New Vegas, Prince of Persia 3D, Dark Age Of Camelot, Simon the Sorcerer 3D, Star Trek: Bridge Commander
- Bethesda's Creation Engine, which, based on independent research, seems to be based on the same heavily modified Gamebryo Bethesda used from Morrowind onwards. Used in Skyrim
- Infocom's decades old Z-machine, still in use for Interactive Fiction.
- The Freescape engine from Incentive (now Superscape), designed for the implementation of full-3D games even on 8-bit machines. On those it managed about one frame every two seconds, but hey, the fact that it worked at all was amazing back then. Versions of it were used in Driller, Dark Side, Total Eclipse and Teque Software's Castle Master.
- Crytek's CryEngine : Far Cry, Crysis, Ryse: Son of Rome, Aion, MechWarrior Online, Monster Hunter Online, Star Citizen, State of Decay, Sonic Boom , TimeSplitters Rewind
- GameMaker (1999-present): Started out as Animo, a 2D animation program. It is now technically complex enough to be considered a full-fledged 2D Game Engine, not a Game Maker. Ironic. If you know what you're doing, you can even make 3D games with it. Those are much less common, though, and with good reason; They are much harder to do than any 2D game.
- Build engine (was written by Ken Silverman), which was used in Witchaven, William Shatner's Tekwar, Duke Nukem 3D, Redneck Rampage, Shadow Warrior, Blood, Exhumed and a couple of lesser obscure games.
- BioWare made a habit of making a new engine for each Next Big Thing they bring out (except Mass Effect and Star Wars: The Old Republic; they also seem to have switched to Frostbite after ME3). The earlier ones have been licensed to other companies:
- Serious Engine by Croteam (named for Serious Sam):
- Serious Engine 1: Serious Sam (The First Encounter and The Second Encounter), Carnivores: Cityscapes, Deer Hunter 2003, Bird Hunter 2003: Legendary Hunting, Nitro Family, Alpha Black Zero: Intrepid Protocol
- Serious Engine 2: Serious Sam II
- Serious Engine 3: The HD remakes of Serious Sam, Serious Sam III: BFE
- The Robot Odyssey engine was also used in Think Quick!, Gertrude's Secrets and Rocky's Boots.
- PhyreEngine, engine provided by Sony Computer Entertainment for developing PS3, PSP, PS Vita, and (assumedly) PS4 games. Version 3.70 was leaked to the internet so you too can learn what makes your favorite console games tick. Games build on this engine include: Hyperdimension Neptunia, Demons Souls, Dark Souls, the Atelier series from Rorona to Ayesha, Disgaea 4: A Promise Unforgotten, and Journey.
- Star Wars: Galactic Battlegrounds is built on the Age of Empires II engine.
- For fans of MUDs and MUCKs, there are a plethora of different engines upon which one can build - and with enough work in scripting, one can even turn a MUCK into a MUD.
Internally Developed Game Engines:
- The 007 GoldenEye engine by Rare, used in both the game of the same name, and the Spiritual Successor Perfect Dark.
- The MT Framework, made by Capcom: Dead Rising, Lost Planet, Devil May Cry 4, Resident Evil 5, Marvel vs. Capcom 3
- Crystal Tools (originally called the White Engine) by Square Enix: Final Fantasy XIII, Final Fantasy XIV, and Final Fantasy XV. Not to be confused with the Crystal Engine, which was used in Square Enix-published games Tomb Raider Legend and Deus Ex: Human Revolution.
- Men Of War has the GEM Engine, previously used for the prequel Faces of War.
- Lithtech: every Monolith Productions game since 1998
- The Rockstar Advanced Game Engine (RAGE), which is used in Grand Theft Auto IV, Midnight Club: Los Angeles, Red Dead Redemption, and Max Payne 3.
- The Dark Engine created by Looking Glass Studios and used in the first two Thief games and System Shock II.
- Hedgehog Engine by Sega: An engine built to render CGI-quality graphics using global illumination (allowing for complex lighting and directional shadows) very quickly. Used in the HD versions of Sonic Unleashed, Sonic Generations and Sonic Lost World.
- Frostbite by DICE: Battlefield series (from Battlefield 1943 onwards), Need for Speed: The Run, the Medal of Honor reboot's multiplayer. In 2013, the EA seems to have made a strategic decision to move all of its internal development onto the Frostbite rails, even the less shooter-y games like Dragon Age: Inquisition.
- UbiArt Framework by Ubisoft: Rayman Origins
- LucasArts' also has the following, besides SCUMM:
- Terminal Reality's Infernal Engine: created for Ghostbusters: The Video Game; licensed for Def Jam: Rapstar, the Wii version ofThe Force Unleashed II and Mushroom Men: The Spore Wars.
- SSI's Gold Box engine, used for numerous Dungeons & Dragons and Buck Rogers games.
- The Filmation engine, created by Ultimate and used in their Isometric Projection games Knight Lore, Alien 8 and Pentagram. Its more action-oriented successor Filmation II was used in Nightshade and Gunfright.
- The Crusader games reused the engine from Ultima VIII.
- The "Vision" engine from Wing Commander Prophecy was developed in part to be easily modified. In addition to being used in the sequel, Wing Commander Secret Ops, it's also the basis of several fan Game Mods due to the aforementioned ease of modification.
- The HPL Engine (named after H.P. Lovecraft) by Frictional Games:
- HPL Engine 1: Penumbra franchise. HPL1 was released as open source to the public in 2010.
- HPL Engine 2: Amnesia franchise
- HPL Engine 3: Currently in development. Will be utilized in Frictional Games' next project, SOMA.
- Lobotomy Software's Slavedriver engine, which was used in the console versions of PowerSlave, and the Sega Saturn ports of Duke Nukem 3D and Quake.
- Apogee Software reused the Crystal Caves engine in Secret Agent.
- Most of Sierra's adventure games were based on AGI (Adventure Game Interpreter) or its successor SCI (Script Code Interpreter/Sierra's Creative Interpreter), which went through several revisions. King's Quest IV: The Perils Of Rosella marked the transition, and several AGI games were later remade for SCI.
- The Diesel Engine, originally created by the developer GRIN, and used for all of their games like Bandits Phoenix Rising, the PC versions of Ghost Recon: Advanced Warfighter, and the Bionic Commando remake. Overkill Software, headed by the same people after GRIN's bankruptcy, continues using the engine for PAYDAY: The Heist and the sequel. The way the engine is composed makes it very difficult for a casual modder to work with (mostly due to how the models are rendered and how they are bundled to be used by the game), hence why the developers haven't released a friendly version modding tool yet. Granted, the more dedicated modder can easily modify the game's files.
- CyberConnect2 has a special "Sensible Art Innovation" Engine that they made for the Seventh Generation Of Consoles onward, albeit it was first used for the .hack//G.U. trilogy movie, and has been used for all future Dot Hack installments and related projects on consoles, as well as their Naruto Ultimate Ninja Storm installments.
- Neversoft had an engine best known for its use in the Tony Hawk's Pro Skater series, though it was originally developed for Apocalypse.
- The X-Ray engine, created by GSC and used in the S.T.A.L.K.E.R. series.
Things That Are Commonly Called Engines But Aren't:
- The Havok "Engine". This is not an engine; it is a physics library.
- Renderware, developed by Criterion Games and bought out by Electronic Arts (notable for making PlayStation 2 development a lot easier). This is not in the most technical sense an engine, because it does not provide a means for using it without modifying the source code. It is a codebase, a large code library that serves as a useful starting point for making games, but it has no inherent extensibility built into it besides writing code. Games made using this codebase include Burnout (Criterion's flagship series), Grand Theft Auto (III, Vice City, and San Andreas), Sonic Heroes and SpongeBob SquarePants: Battle for Bikini Bottom.
- Cocos2d (along with its cross-platform offshoot, Cocos2d-X) (2008-present)): It is commonly used for making iOS Games, but like Renderware above, it is not an engine in the above definition.
- Old Apple Macintosh users might remember the Sprite Animation Toolkit (SAT), which was a 2D animation code library, though not a complete game engine.