The History of the Game Engine: Part 11 – Unreal Engine Builds Bridges
If you wanted to become a game developer in the later years of the 20th Century, one thing was always true: you needed to learn how to program.
Typically that meant C++. Yes, there were a whole host of other languages available but the one that you wanted on your CV was the gold standard of the time, especially if you were going for a career in game development.
Professional game engines changed all that. Specifically, Unreal Engine.
The Birth of Something Unreal
As we have already discussed in this series, there were plenty of toolkits that had been developed by the tail end of the 1990s, but none have them had really taken hold until Tim Sweeney’s masterpiece in 1998. As introduced in the previous article in this series, Tim Sweeney had created a strange little game called ZZT, notable not for its gameplay, but for the embedded object-oriented level creation tools. Its financial success and fanbase enthusiasm led Sweeney to work on an even greater project—the Unreal Editor.
Working in conjunction with James Schmaltz. Sweeney saw a need for a level designer for games to take some of the heavy lifting away from the game development. In his own words:
”James is this insanely brilliant programmer, but he only wrote code in assembly language, he didn’t want to learn C. And so – in pure assembly language – he wrote this 3D engine that rendered terrain backgrounds and game objects. He didn’t want to build an editing tool, so he actually built a BSP tree by hand and placed a capsule in the middle of this terrain. When I saw that, I was like ‘No, no, no, James, James… this is not how we do things.’” – Tim Sweeney, interview with David Lightbown, Jan 09, 2018.
The tools were revolutionary. Integrating aspects of 3D design technology with a wireframe editor and texture mapper to a text editor for code functionality, the early version of Unreal Editor gave Sweeney the ability to create virtual 3D environments in real time—something that was, at that point, completely unheard of.
One of the more amusing driving forces behind Sweeney’s rapid development was his understanding that other people had managed many of the different aspects of his dream before him, a belief spurred on thanks to various screenshots and technical demonstrations he had witnessed. Unknown to the Unreal programmer, however, none of these developments were actually working in real time as he had assumed. His faith that these demos worked, and that they were possible to replicate, allowed him to open his mind to create things that no one else truly thought possible.
Unreal Editor paved the way for the modern game engine.
WYSIWYG for Game Developers
Two decades earlier, in 1974, Charles Simonyi had invented the term “WYSIWYG” to describe the revolutionary word processor Xerox Bravo that he was working on. It stood for “What You See Is What You Get” and encompassed the idea that the stuff that appeared on the screen was a true representation of the end printed result.
In the early 80s, Simonyi went on to develop Microsoft Word, perhaps one of the most famous and influential WYSIWYG editors of all time. Soon after that, Apple released the Macintosh and broadened the audience for the concept of WYSIWYG.
What-you-see-is-what-you-get was an important development for users and user interface design. It bridged the gap between the esoteric code-based interactions of a computer and the visual analogue of human methods. It was almost wholly responsible for the uptake of computer systems in workplaces and homes because it was friendly and had user experience at the forefront. No longer were computers something hard to understand, something to be feared and usable by only the geekiest of hobbyist nerds. No, now anyone could produce results, clicking buttons and manipulating text in a way that felt like a natural extension of the real world.
The idea bled. From word processors to spreadsheets, through to photo editing software and publishing tools. Yet, it was decades before it could claim to have taken hold in game design and development.
Enter Visual Basic
Following the early WYSIWYG revolution, in 1991 Microsoft brought the world the first version of Visual Basic, bringing WYSIWYG ideology to programmers. Trying to bridge the gap between user interface and coding, Visual Basic provided an Integrated Development Environment (IDE), with a suite of graphical interface components that generated code in the background. It utilised Microsoft BASIC as its programming language and offered a platform by which fledgling programmers could build complex systems without having to concern themselves with every minutia of the development.
With Visual Basic, it was possible to create on-screen forms to control data without any programming knowledge whatsoever, plus, it was effortless to add typed BASIC code to the project in order to include any components or logic that weren’t already supported by the platform.
In essence, VB (as it became known) did all the mundane and repetitive parts of software development so that the designer could concentrate on the unique aspects of the task at hand.
And yes, VB was utilised by thousands of wannabe game creators to make games. It wasn’t particularly good at the job and produced end results that were quite clunky and lacked a professional look, but its array of tools was excellent at helping programmers automate and understand many of the growing system complexities that otherwise formed an off-puttingly steep learning curve.
Tim Sweeney was among its many fans. At some point, he mused about the idea of a more powerful Visual Basic type of software, something that would bring powerful WYSIWYG technology to game creators. Rather than having BASIC at its core, his tool would form a visual connection between the complexities of C++ coding and the drag-and-drop mentality of user expectations.
In a world of increasingly complicated game design, where player expectation was steadily increasing, Unreal Engine was not just interesting, it was essential.
3D For Everyone
In the second half of the 1990s, computer games went through a major change, moving from two-dimensional graphics as standard to the more desirable 3D. While the technology was certainly there for 3D game development, it was substantially more complicated to code than the previous generation of flat 2D.
Where it had been possible to develop a game from scratch with just a few people (or even one) in the realm of 2D, trying to achieve a decent three-dimensional environment without the backbone of shared code was almost completely out of reach. The barrier to entry was simply too high.
With its focus on 3D games, Unreal Engine provided a toolset that kept the wheels moving for many in the game industry. Making 3D look good wasn’t as simple as drawing some pretty graphics, as had been true a generation earlier. Collision detection, lighting, and textures were all handled by the game engine without developers needing to give it much more than a cursory thought. The years of development time that Sweeney had put into his engine’s development was time that was immediately lifted by anyone utilising it, meaning impressive-looking top-tier games had their creation cycles cut by years, just through the use of Unreal Engine.
It’s All About the Graphics
Gamers are obsessed with graphics. As a metric to define how good a game is, few conversations happen that don’t mention the look of a game. It’s not entirely unfair, as graphics are literally the first thing you see when you load up a game. They’re the easiest part of the game to immediately discuss and something that everyone can have an opinion on.
As 3D took over, graphics were right at the top of the list when it came to player expectations. Consoles and PC builds were ranked based on their graphical capabilities and whether they could handle the newer flood of 3D titles. Game originality, storylines, soundtracks, and even fun played second fiddle to graphics.
There is no doubt that Unreal Engine’s success is tied to its incredible, world-defining, mind-blowing work with graphics. From the outset, gamers would witness titles developed in Unreal Engine and stare open-mouthed at the screen. It all looked fantastic.
Enter the Creatives
Prior to this time, game developers were programmers first, and artists second (or third, or fourth, or not at all). To get into the industry, you showed your coding chops and skills with logic. Whether you were particularly good at game design was secondary, and how well you could draw was barely considered. In any development team, the ratio of programmers to artists veered heavily on the side of coding geeks.
But put top-tier game engine tools into the mix, and the graphic artists found they could take part in the game development side without the difficulty proving insurmountable. Over time, the industry shifted and started to lean more and more on the creative team rather than the technical leads.
Freed from the constraint of needing to learn to code so heavily, game developers as a whole were able to give their creative minds more reign. Decisions on level design and game environments became less about how to achieve it technically, and more about pushing the boundary of what would improve gameplay. Of course, the battle between imagination and ability continued to rage, but as the tools became more impressive, it was a much fairer field on which to fight.
Removing Code from Coding
There was one other key component—that of in-game logic.
While interacting with graphics, movement, and sound follow similar systems that can be converted into automatic modules, such as texture effects, fog, collision sound effects, character movement paths etc., anything truly unique has to be coded by hand.
For the most part, these are the elements of the game that make it stand out in the crowd. After all, there are only so many similar first-person shooters that gamers will play—even if the storyline and setting are new, identical gameplay becomes tired after a while.
So, how can a game engine such as Unreal Engine help the designer with the development of game mechanics that no one has done before? The answer comes from visual programming and scripting.
As Visual Basic had shown years earlier, being able to visualise the logic that a program needs to run is very helpful in allowing those who don’t come from a heavy coding background to create meaningful applications. Professional game engines needed to follow the same criteria, adding graphical interface toolsets in order to provide a full set of logic tools as well as providing a way to get ‘down and dirty, directly adding code to the game in order to not limit what is possible.
Initially, Unreal Engine struggled to do that, instead using its own scripting language that was a little hard to get into.
Scripting Languages and Visual Programming
In the early days, Unreal Script was at the core of Unreal Engine. It was a scripting language that was somewhat easier to use than C++ and provided more game-oriented functionality than the visual tools were capable of offering.
To the untrained eye, Unreal Script was so close to programming languages such as C++ and Java that it could be equally off-putting. However, what was going on behind the scenes was somewhat different and meant that code written in Unreal Script tended to be a little more forgiving than similar functionality written in the more widespread and mainstream language.
So, Unreal Script provided power and functionality to the Unreal Engine but didn’t really solve the problem of ease of use for the non-programmer game developer.
Unreal Engine 3 introduced the world to Kismet in 2004. It was a good early attempt at a visual programming system but was limited and was considered by many to be an additional tool to go alongside Unreal Script and not a replacement. Indeed, the general feel of the time was that writing a game completely in Kismet was all but impossible, and certainly not desirable.
The true breakthrough wouldn’t come until much later when Blueprints. Unreal’s fully-realised visual scripting system, finally completed that bridge between designer and computer in 2014’s Unreal Engine 4. Replacing Kismet, Blueprints is considerably more powerful and, for many, completely replaces the need to learn to program at all. While triple-A titles would still expect a considerable amount of direct C++ programming, Blueprints has enough functionality and power for a designer to create a game without any language-coding knowledge at all.
By 2014 and Unreal Engine 4, game engines were many and varied—the idea of visual programming interfaces was solidly part of the landscape. Unity, the other major top-end game engine to rival Unreal Engine came with a variety of additional visual programming plugins. But, with Blueprints, Unreal Engine finally completed the mission it had set out on sixteen years earlier. Now, anyone could be a game creator.
What game engines are good to start with? Can a game design beginner really make a game without years of study? Join us next time when we take a look at some of the best-loved engines and how they can help anyone make their first game.