Somehow I missed this news last month: Epic Games is offering the Unreal Engine 4 – the latest version of the engine that drives a huge number of AAA games – for just $19 a month. Since you can cancel access at any time, it means you can get access to the engine and all the source code for about the cost of an MMO subscription and a cup of coffee.
(Note that I’m going to be a little bit loose with terms here. I’m not going to draw distinctions between game engines or graphics engines. Also I’m not going to get into the other engines, like CryEngine, Unity, or id Tech. We can do that in another column if you like.)
Previously, they didn’t license the game engine to individuals like this. If your company wanted access to a full-featured game engine, then you went to Epic Games (or iD, or Crytek) and negotiated a price. That price would run somewhere from hundreds of thousands to millions of dollars. Then you would sign some form of non-disclosure agreement stating who was allowed to see the code and promising you wouldn’t share it with anyone else. The code was treated like this secret, sacred, and incredibly expensive thing.
And now Epic Games is willing to let scrubs like me at their code for about one hundred thousand times less. (To be clear, they also get a cut of the profits if you ever use it to make a commercial game, but that’s a topic for another time.) It might seem like a crazy move, but it actually makes a lot of sense.
In the past, code was guarded because it usually contained important secrets. There were very few programmers in the business that could make an engine that could hold up to Quake, for example, in terms of visuals and performance. A lot of tricks were used to get the thing to run as fast as possible while using the least possible resources. Those tricks were discovered either through long cycles of R&D or through the inventiveness of your far-above-average coders. (Usually both.) If someone got the source code, they could copy those techniques and write their own game engine that would compete with yours. Your rendering tricks and techniques were like the “secret formula” for Coke. (Or would be, if all cola didn’t taste the same to me.) It was the thing that gave your company value and allowed you to stand out in the market.
But now? Those days are mostly over. Everyone knows how to do this stuff. The industry has largely settled on a small number of core techniques and those ideas have been pretty well explored and documented. Game colleges are pumping out folks that can already wrap their heads around the stuff you need to turn art assets into polygons on screen. That’s not to say there aren’t secrets at all, but there are fewer of them and they don’t matter as much. If I come up with some trick that lets my game engine push twice as many polygons (unlikely) it’s not going to wow the audience today the way it did back in 1996. In fact, they probably won’t even notice. If you’re really interested in making your game pretty then it’s far more important to hire talented artists and make sure they have a clear artistic vision. Giving them more polygons will make their job a bit easier, but it won’t make them better artists.
Today the value of a game engine isn’t in its secret sauce of clever mathematical shortcuts and visual trickery. Today the value is in the whole. Games are now huge, complex beasts and developing them takes a lot of time. You want a stable, reliable platform that’s made from code that is clear, well-documented, and free of bugs. (And Unreal Engine 4 is reportedly in great shape, code-wise.) You want built-in tools (like level editors) that are stable and easy to use. You want an engine that plugs right in to the big tool sets (like Photoshop or Blender) so people can use their favorite creative programs without jumping through a bunch of hoops or going through some annoying and highly technical conversion process. You want an engine that handles all of the various file systems you might throw at it, so your coders can write one bit of code for (say) loading a save game without needing to worry if that game is being loaded on an Xbox, a Playstation, or a PC. Ideally, you also want a bunch of tools and concepts that are common to all games but not really part of the C++ programming language. You want sound, physics, collision detection, and a clean way to handle controller inputs so you don’t have to re-write your player controls every time you port the game. These things are not secrets. Any coder worth his student loans ought to be able to build any of these systems. The problem is that it takes time to do it right, and time is money.
Developers are finally playing the long game. In the past, the quality of code didn’t matter as much. Sure, maybe our 1998 shooter was kind of slapdash if you looked at the source code, but that was fine. By 2001 we’d have thrown most of that code away and replaced it with a new batch of tricks. Code was relatively cheap and disposable. (It’s actually bad to write sloppy code, but it’s easy to make the mistake of overlooking code discipline when you know another re-write is just around the corner.) Today when you write some code you need to keep in mind that it’s going to be around for a long time. You can’t half-ass it, because people will likely still be using the code a decade and a half from now when they’re developing on the Playstation 5 and the Xbox Two-sixty. (Or Xbox Zero. Or whatever they call it. Seriously Microsoft, did you think this through?)
In short, you can’t just look at the source code for the Unreal Engine 4 and run off and make your own. Not unless you’ve got several talented developers and a decade to spare. It’s literally cheaper to license Unreal Engine 4 than to steal it. (Assuming you’re not just going to copy & paste the code and pretend you wrote it yourself. That would be incredibly easy to detect. You can’t just change a couple of files and expect that people won’t notice your art path, filesystem, scripting, and asset storage are all exactly the same as one of the most popular engines on the market.) You can steal the formula for Coke (again, assuming you want to and that it would matter) but you can’t “steal” the entire manufacturing, bottling, shipping, and marketing apparatus of the Coca-Cola company.
This is an interesting and shrewd move on the part of Epic Games. While blockbuster AAA games aren’t going anywhere, they are becoming a smaller part of the growing whole. We have more indies, more mobiles, and more web-based games than ever before. Charging people $60 for a game isn’t the gold mine it used to be, and it turns out there’s a lot of money to be made selling $10 games and $5 games in volume. This move will potentially put the engine in the hands of many indies who could never otherwise afford something high-end like this.
The other thing that makes this a smart move is that they’re making it easy to use the Unreal Engine as the default educational platform, where the network effect could drive it to ubiquity. If it’s cheap, then game dev schools will use it to teach. If that’s what people learn in college, it’s what they’ll prefer to use once they enter the field. And if everyone is using it, then companies are more likely to choose it for their games because it will be easier to hire experienced people. If this plan works out, then there could come a day when most developers use Unreal by default. Maybe the $19 a month is small, but there’s likely a good bit of cash to be made as “the Microsoft Office of games development”.
Will indies use it? I don’t know. I wouldn’t, but I tend to write my engines from scratch because I’m always mucking around with low-end procedural stuff. If I was a real indie dev who cared about shipping a game, this might look really appealing. Then again, AAA engines like this can be expensive to use, even if the engine itself is nearly free. There’s a reason so many indies make 2D side-scrolling platformers. It takes a lot of time and expertise to make a high-poly, normal-mapped, fully-rigged and animated human figure and get them into a 3D world. Sure, it happens, but it’s the exception rather than the rule and I don’t think this will change that. On the other hand, you don’t have to make a shooter just because you’re using the Unreal Engine.
I don’t know what indies will do with it, but this is an exciting move. We’ll see how it works out in a couple of years.
Shamus Young left behind the glorious world of 3D programming to write a blog. About 3D programming.