Multiplayer Game Engine History: Unreal Engine
As Modulate ’s Senior Game Engines Engineer, I work with multiple studios to integrate our tech into a number of engines, giving me a unique perspective for a LinkedIn series on the history of multiplayer game engines. This is the third post in the series. If you'd like to read about the history of the Doom engine or Multi-User Dungeons (MUDs), I'd encourage you to go back and read my second or first posts, but each post stands on its own, so you don't have to read them to understand this post.
Last week, I asked you all to vote on the type of game they play most or played the most when they were kids. I'll dive into the results in a bit, but what if I told you that the engine featured in today's post is able to build 100% of the games you indicated you play?
Technically, both Godot and Unity would fit that description, but today I'm talking about the heavyweight champion of them all: Unreal Engine. You might already be familiar with Unreal Engine 5 (UE5) given all the buzz it's generated in both gaming and virtual production since its launch in 2022, or you might have toyed around with its predecessor, Unreal Engine 4 (UE4), which was the first version of the engine released to the public under a royalty-only model. But, what came before UE4 and UE5? When did Unreal Engine 1 come out, and what did it look like?
If you're in the majority (56%) of those who responded to my poll that first-person shooters (FPS-es) are your jam, you (like me) might believe Unreal Tournament (1999) was the first game to use Unreal Engine 1, but that's wrong! The first game to use the engine was actually, fittingly, just called "Unreal", which Epic MegaGames and Digital Extremes jointly developed between 1995 and May 1998.
Before I get into the technical details of Unreal Engine 1 and its history, it's important to realize what the competitive landscape between 1995 and 1998 looked like. In my last post in this series, I talked about the Doom Engine (aka, "id Tech 1") which was first released in 1993. After Doom, id released the Quake Engine ("id Tech 2") with Quake I (1996), followed up quickly by Quake II (1997). id's last engine release of the 90s ("id Tech 3") debuted with Quake III (1999). Something I left out of my prior post was that John Carmack, the founder and lead developer of id during this time, was the first game developer to implement a real-time rendering system based on Binary Space Partitions (BSP), an algorithm for deciding what parts of a game level need to appear on screen and what parts could be skipped, to avoid taxing the limited computational resources players had access to at the time. It's safe to say that id Software, having released game after game to nearly universal critical acclaim while implementing ground-breaking approaches to computer graphics rendering, was the king of the hill for FPS engines during this time, which meant Unreal Engine had a lot to prove, and prove it did.
Whereas id's entrance to the game engine scene started with Doom (1993) after previously releasing Wolfenstein 3D (1992), the story of Epic MegaGames's entrace to the scene and their launch of Unreal (1998) begins in a totally different game genre with a pinball title. As Tim Sweeney recalled in an interview during the 2017 GamesCom conference, the idea for a 3D game came from James Schmaltz, who had written Epic Pinball (1993), for which Epic was the publisher. As the story goes, after Epic Pinball, Schmaltz started toying around with creating a BSP-based 3D game, showed his progress to Sweeney, and Sweeney offered to write a game editor for it. Epic Pinball provided the bootstrap funding for them to take it to the next level.
After getting hands on with the code that Schmaltz had already written, Sweeney ended up doing a lot more than just making an editor. As Sweeney tells it, the problem with Schmaltz's approach was that it was written in assembly language—basically, rather than the program being written in a way that human developers could easily read and maintain, it had been written in low-level hardware instructions that would execute efficiently but be difficult to extend and use on several platforms. What Sweeney envisioned was something more extensible, object-oriented, and point-and-click than what Schmaltz already had. To meet this challenge, Sweeney turned to the solution that a lot of 90s developers did: Visual Basic.
That's right; the first version of "UnrealEd", the game editor for Unreal, was written in Visual Basic! Perhaps more amusingly, Sweeney implemented a feature in this new editor that he (incorrectly) believed John Carmack from id had already implemented in Doom's editor (id Tech 1): real-time rendering, which allowed game designers to see what the level looked like while they modified it. Sweeney also implemented realistic, colored volumetric lighting with software rendering, a type of image generation that doesn't require a dedicated Graphics Processing Unit (GPU); a feature not seen even by the release of id Tech 2 (by id Tech 3, support for software rendering had been completely dropped in favor of GPU-based rendering, so by then it was moot). Sweeney's quote about this was, "A lot of the features in Unreal arose from fallacies of what I misperceived other people did." Instead of pursuing what he thought were table stakes, Sweeney was unknowingly implementing cutting edge functionality that not even id Software had.
"A lot of the features in Unreal arose from fallacies of what I misperceived other people did." — Tim Sweeney
While Schmaltz's code provided the inspiration for the graphics side of the engine, Sweeney credits Turbo Pascal, a programming environment popular in the 80's and 90's, with the inspiration for the editor side. Sweeney wanted developers to be able to drop objects into a level and iterate on values in real-time until everything looked and felt right. Though Sweeney and team would end up rewriting the user interface for Unreal Engine multiple times over in C++ and later C#, that same "drag-and-drop, edit, and run" iterative design process is the way game designers interact with Unreal Engine 5 today.
In addition to the point-and-click interface, Sweeney also borrowed concepts from his earlier title, ZZT (1991), which featured a simple programming language for modeling puzzles. Thus, Unreal Engine 1 debuted with UnrealScript, which was strongly influenced by Java, an object-oriented programming language Sun Microsystems released in May 1995. This is yet another parallel to what id Software was doing at the time; id Tech 2 sported "QuakeC", a programming language created by John Carmack that was a simple subset of the C programming language. Both Epic and id saw value in providing a way for game designers to write game logic in a safe sandbox, freeing designers from having to worry about memory management or other "gotchas" that the game engine managed for them, allowing them to be productive and focus on their game mechanics.
For those who aren't as familiar with programming language lingo, "object-oriented programming" (OOP) just means thinking of a program as a combination of components (actors, doors, cameras, guns, ammo, etc.) that communicate with one another by sending messages to each other, in a similar fashion to how you, as a human, interact with things in the real world like light switches, appliances, automobiles, etc. Rather than directly controlling lights, heating elements, or the combustion in your car engine, you send messages to each of these objects in the form of flicking switches, pressing buttons, or turning wheels and knobs, leaving the object you're interacting with to turn those interactions into a result. This is in contrast to procedural programming, of the sort that Schmaltz was doing with his assembly code, where you model the program as a series of routines and instructions to follow, and might not draw any strong distinction between each part of the program.
Unreal Engine 3 was the last version to support UnrealScript, but the idea of a simpler programming language for designers didn't end there. Unreal Engine 3 also introduced Kismet, a graphical, drag-and-drop programming language that was later renamed to "Blueprint" in Unreal Engine 4 that allows designers to model increasingly complex gameplay interactions without having to write any actual code. In addition, in 2023, Epic announced Verse as part of the "Unreal Editor for Fortnite" (UEFN), a simplified version of UE 5 that's intended for use by players and users to generate new levels and other user-generated content (UGC) for Fortnite. Verse is thus the spiritual successor to UnrealScript. Having written Unreal-based games using both C++ and Blueprint, my take is that UnrealScript or Verse are important for intermediate developers who are intimidated by C++ but want to be able to develop code with less effort than is possible in Blueprint.
As far as multiplayer support, it was a feature from the start, although Unreal (1998) was primarily a single player game with good (but often laggy) options for multiplayer gaming. As I hinted at earlier, Unreal Tournament (1999) (UT, for short) tends to be the title most people think about when pressed to name the first multiplayer Unreal Engine game. Whereas Unreal was primarily single-player, UT, released on November 22, 1999, was designed to be a multiplayer game, much like id's Quake III, which was released only days later on December 2, 1999. While UT only supported 256-color textures and Quake III supported 16-million colors, UT had the advantage over Quake III in terms of "fun", sporting the following:
领英推荐
id eventually released Quake III: Team Arena a little over a year later on December 15, 2000, that brought more unique weapons, more intelligent bots, some additional movement power-ups, and additional game modes like those that were unique to UT, but UnrealScript still gave UT a definitive advantage in the eyes of modders.
When you compare Unreal Engine to id Tech, another fascinating similarity is how the two engines "fell into" licensing. As I mentioned in my earlier post about Doom, John Carmack initially didn't develop Doom for licensing and actually wasn't keen to do it because he felt providing customer support was a distraction from his passion of developing the next big thing. Meanwhile, Sweeney wrote Unreal Engine for the technical challenge of making Unreal (1998) and was both honored and surprised when studios reached out to ask him about licensing. As Sweeney remembers, "I think it was probably the fact that we released amazing screenshots of our game, but also screenshots of our editor early on, around 1995. That led those companies to call us. Microprose called us and they said, 'we're interested in licensing your engine!' and we're like, 'Engine? What engine? Oh! Right, our engine! It's very expensive.' [laughs] and literally that was the conversation." Where Epic and id differed was on the customer service aspect—Sweeney felt that for the amount of money studios were paying to license the engine, Epic needed to not only support those studios but also enable them to shape the functionality of the engine.
"I think it was probably the fact that we released amazing screenshots of our game, but also screenshots of our editor early on, around 1995. That led those companies to call us. Microprose called us and they said, 'we're interested in licensing your engine!' and we're like, 'Engine? What engine? Oh! Right, our engine! It's very expensive.' [laughs] And literally that was the conversation." — Tim Sweeney
In 2014, after 11 years of development, Epic debuted Unreal Engine 4, and with it a new licensing model for the Engine. Previously, to get access to Unreal Engine 1, 2, or 3, game developers would have to sign a licensing contract with Epic and pay an upfront fee for engine access. Now, game developers could get access to the engine and its source code by agreeing to pay a small $19 monthly fee as well as a 5% royalty after their first $3,000 per product, per quarter in revenue. Then, in 2015, Epic announced that subscriptions would no longer require a monthly fee (and even refunded or credited the fees that had been collected in the prior months!), instead relying only on the royalty to cover the cost of the engine. Then, in 2020, Epic raised the royalty threshold to only apply to revenue after the first $1 million, making the engine extremely attractive for students and independent game developers to jump in virtually risk free.
In addition to opening up licensing, Unreal Engine 4 also opened up the engine for more use cases. Samples included with UE 4 demonstrate how to create many other games and software applications beyond FPSes. Trying to create the next spiritual successor to Super Mario Brothers? UE has a side-scrolling, "Platformer" starter template. Creating a third-person RPG? UE has a third-person starter template, complete with camera control. Trying to create a 3D visualization of your future dream home? UE has an "ArchViz" (short for "architectural visualization") template, as well as a totally separate product from Epic called "TwinMotion". This is why I said every game you voted on in my poll could be built with Unreal Engine!
There are so many other aspects of Unreal Engine I could talk about here, but this post is already my longest yet. So, I'll just highlight some of the features that have set Unreal apart from other engines:
Tim Sweeney's ongoing desire for Unreal Engine to keep redefining the state of the art while maintaining a customer-focused approach to feature development are what I believe have enabled Unreal Engine to not only survive, but to thrive. These are the reasons why it has been the heart of so many well-known, revolutionary, and successful titles through the years. Here's a very brief list of some of these titles:
Unreal Engine 1
Unreal Engine 2
Unreal Engine 3
Unreal Engine 4
Unreal Engine 5
If you find this topic interesting, I highly recommend reading the 2017 interview with Tim Sweeney.
What do you think? Do you have fond memories of Unreal Tournament? Have you created something with Unreal Engine 4 or Unreal Engine 5? Did you find this topic interesting? Did I get any of my history wrong? Drop a comment on this post.
Sources
Game Industry Evangelist at Modulate
3 个月This is great, Guy Elsmore-Paddock! Really well done. And i learned a bunch of stuff to boot. TY!