Epic's Tim Sweeney lays out the case for Unreal Engine 4
This week, Epic Games announced
that Unreal Engine 4 will follow a dramatically different licensing model than the company used during the last generation: For a $19 subscription a month (and 5 percent of gross revenues on any games you monetize in any way developed for the engine) you get full access to Unreal Engine 4, including the source code, and can publish games using it on Mac, PC, iOS, and Android.
Console -- PlayStation 4 and Xbox One -- are a bit trickier. (More on that later.)
To find out more, and also what makes Unreal Engine 4 worth considering, Gamasutra spoke to company founder Tim Sweeney at Epic's GDC booth.
Sweeney Breaks Down the Subscription Model
Why go subscription? "The best way to make it available was to have a very straightforward subscription model," Sweeney says. For that price, you get "all of our code, all of our tools," says Sweeney.
The subscription page (and engine download) went live
concurrently with the announcement. So how many have already signed up? "Thousands so far, and it's just the very beginning," Sweeney says.
Of course, there's some pushback -- the fact that you have to pay Epic 5 percent off the top of your game is, at the very least, a serious consideration. Unity hasn't announced its pricing scheme for the pro version of the just-revealed Unity 5
(and its CEO, David Helgason, told Gamasutra "no comment" on that topic at GDC) but Unity 4 is available for a flat fee. Meanwhile, CryEngine is going subscription
, too -- but with no royalty.
These facts in mind, how can Epic justify charging so much? "To build it as a long-term business for Epic," says Sweeney, the decision was made "to have a royalty attached."
But he knows the company's decision to charge a premium puts it in the spotlight. He's aware that "5 percent is a lot to ask." How can it be worth it? "It's up to Epic to prove it. If our engine doesn't deliver that kind of value, then of course we would expect to fail in this effort," Sweeney says.
"The only way it makes sense is if Unreal Engine allows developers to make way better games than they can otherwise, or makes them more productive than otherwise," he says. And he seems calmly confident that both of these are the case.
"You can't assume your revenue is some fixed number determined by fate," says Sweeney. He thinks Unreal is the key to unlocking your game's potential. "The difference between having the one game in a genre that's a big hit and the one that doesn't end up in the top 1,000 chart often comes down to small details: graphical features, or polish, or release timeframe, and I think the engine can have a really significant effect on these things."
Sweeney also says that the decision was made because it is been crucial to turn Unreal into a service. "That's the ideal way to build software," says Sweeney. "You're not getting a version of the engine that stagnates over time, and you can expect frequent updates from us in the future, so you're always getting the latest capabilities... What's really valuable to developers is getting that steady stream of capabilities."
The model also "suggests not just a transaction, but a longtime, community-driven relationship between the supplier of software and the users of the software," says Sweeney.
The Advantages of an Expanded Audience
Improvements to Unreal Engine made by licensees have often found their way back into the software -- and this time, Sweeney expects to see those efforts expand to a bigger audience, now that all subscribers can download the engine's source code from GitHub.
It's already been happening with early licensees of the engine, he says.
Microsoft's Lionhead studio "has been a big contributor" to Unreal Engine 4, says Sweeney. "They built the new system for realtime global illumination with light propagation values, and contributed that to Epic -- and we merged it. And now you're seeing it in this version of the engine that we released."
"We're really looking forward to opening that up to the wider community, with thousands or hundreds of thousands of programmers, to use it and contribute."
Not every developer can contribute such a huge piece of technology, but even "a one line bug fix can be incredibly valuable to the community at large," says Sweeney. "It will be really exciting."
He also envisions that the Marketplace (available in the engine right now) will grow to resemble Unity's Asset Store -- "a really brilliant innovation" on the part of Unity, Sweeney says, and "a real inspiration."
At the moment, the Marketplace contains free code, materials, projects, and the like -- all provided by Epic, but that's just the beginning. "Right now, we have these free examples, but the marketplace resembles the App Store and it is headed in that direction rapidly... It will take months, but now it's up to the community to start building cool content."
The Console Access Problem
But the community won't, initially, be building content for the next-generation console platforms, because Epic can't freely offer the version of its engine that can build to them. The version that you can subscribe to can only publish to PC, Mac, iOS and Android.
To get access to a version that can build to the next-gen boxes, developers need to be officially sanctioned by Sony or Microsoft to gain access to the code for PlayStation 4 and Xbox One. Epic also has to verify that on its end, too, before releasing it to them.
"These are the early days for any development on console; I think in the long run, we'll have a more seamless process for it," Sweeney says. "Sooner, rather than later, we will be able to provide direct access to all it," but for now, it's just not possible. "The first step is to talk to our business team -- email@example.com."
A New Breed of Workhorse
Unreal Engine 4 isn't compatible with projects from Unreal Engine 3, because it's been extensively redeveloped -- it's 80 percent new, says Sweeney, and major decisions were made to replace parts of it that were outdated.
"Unreal Engine development began in 1995," he says. "Computers are now about 10,000 times faster than they were then. Fundamentally the way you can build an optimal engine for different platforms changes."
"All of the systems that are performance-intensive have to be rethought," he says. "We replaced really large parts of the engine."
For example, the team has developed new multithreading technology designed to handle up to 10 cores (UE3 couldn't really do much with more than two, he says.) That may expand to as many as 100 if it's necessary ("it's really hard to predict computer architecture a decade out," says Sweeney.)
And there's more: "This generation is about being able to unify the graphics pipeline. Everything from apple's iPhones up to the fastest PC NVidia card you can buy are capable of running the same high-end, shader-based post-DX10 render code," Sweeney says.
Another realization the team had was that the separation between the C++ code and UnrealScript in Unreal Engine 3 held things back for the engine and for programmers of games. "You end up with basically two different programming worlds," says Sweeney. "Each is nice in its own way, but the boundary between is a very messy place."
Every time the team added a new feature to the engine, "we had to decide which side to add it on... and add a lot of interoperability code." What "started out a really nice, happy trade-off" became an Achilles Heel of the engine by UE3.
"Around 2012, we had a big meeting, and everybody got together, and we were debating the future of scripting in UE4, and I came out as the advocate of killing all scripting," Sweeney said. This despite the fact that he developed UnrealScript: "That was my baby there."
"We removed UnrealScript, and went strictly to C++, and we have seen huge dividends from that," says Sweeney. "It would have been almost impossible to get to the point we were today, to release the whole codebase."
Visual Scripting with Blueprint
On the other hand, the new visual scripting system, Blueprint, is much more robust compared to UE3's Kismet.
Kismet "was great for creating one-off actions in game levels" but "it wasn't great for creating reusable behavior," says Sweeney. Blueprint was designed so developers can create "reusable components" -- "a flowchart-based description of how objects should move, and interact, and affect other objects."
The goal, then, is that programmers can focus on straight C++ and artists and designers can concentrate on working with Blueprint.
Blueprints are for "artists and designers who want to control the action within the engine," says Sweeney. "Designers just want to click on objects in their world, place them, drag and drop, and define their behaviors in a visual way."
It not only provides that solution, he says, but "the interface between programmers and designers."
In the old days, he says, a designer would write a document or describe desired behavior to a programmer, who then had to implement it based on that communication. "Now the designer can go in and just create the action," he says.
Of course, once in a while the designer will "run into a stumbling block." For example, say the designer "can't create a weapon that fires with a physics-based response." The programmer can then develop a Blueprint node that gives that ability which slots into the work the designer is already doing.
That Blueprint node can then even be shared back into the engine, so every other designer in the world has access to it, Sweeney suggests.