Share this story

That statement from Epic Games' Senior Technical Artist and Level Designer Alan Willard doesn't seem like such a big deal on the surface. To a non-programmer, it probably sounds like the blindingly simple and obvious way to add light to a three-dimensional environment ("Computer, drop in a sun, please. And make me some tea, Earl Grey, hot.") But to anyone who has worked with an existing game engine, including Epic's incredibly popular but six-year-old Unreal Engine 3, the ability to simply "drop in a sun" using the upcoming Unreal Engine 4 is a major improvement over the current status quo.

"I don't have to go through and place a ton of lights and process those down into light maps, so just from an iteration standpoint, the engine is able to be worked with at a much higher speed," Willard continues. "I can just begin placing things and they look like I spent three days tweaking the lighting to make it look like that."

Everything in Unreal Engine 4 is driven, at its core, by this new lighting system, as Willard showed off during a pre-E3 demo of the new technology. Scenes in Unreal Engine 4 show the effects of direct light from ambient sources, like that sun, but also the indirect light that is reflected off the objects in that scene, using a fancy-sounding term called "glossy specular reflection." So in the demo, the shiny metal globes sitting in the middle of the castle atrium are being lit by the sunbeams streaming through an opening in the columns, but also by light being refracted off the dull stone walls and the colored carpet. And if the carpet changes color, so does the reflected light, in real time.

Unreal Engine 4 Elemental Demo

It's the kind of effect you take for granted when you look at a real-world scene, but one that takes a lot of nitty-gritty programming work to get looking right under current game engines. With Unreal Engine 4, the engine handles all of this stuff automatically and dynamically, without any programming tricks.

That means you can drop in a rotating, spherical flashlight and trust that the beam it produces will immediately look natural as it rolls around the room. It means a river of flowing lava can cast an intrinsic light that gets brighter as the lava gets hotter, without the need for a programmer to hack together a hidden light source inside of it. It means you can actually see the warped reflection of a snowy mountain in the shiny armor of a stoic knight. It means a ball of water can wet the ground underneath it, and the engine will make that bit of wet stone look slick without any extra effort.

Basically, it just means that everything looks better with less work from the programmer and more work from the engine.

"Lighting will inform everything [in Unreal Engine 4]," Willard says. "You can have 20 different objects that all have different material properties: stone, concrete, plastic, ice, water. The lighting is how all of them are defined by your eye, so it informs not only what something looks like on an individual basis, but how it looks when it's in a realistic environment," Willard says.

While the dynamic, ambient lighting system is the core of the new engine's graphical improvements, UE4 can also handle up to roughly a million, GPU-powered particles in a scene at once, up from mere hundreds under Unreal Engine 3. Willard notes that this not only allows for incredible spark effects that dance and flow through vector displacement fields, but also for volumetric particle effects, which allow for clouds of smoke that realistically block incoming light as they shift and move.

In another neat trick, the new engine also provides built-in support for "full eye adaptation," mimicking the effect of going from a bright room to a dark one (or vice versa). By temporarily changing the exposure range in the scene, the engine makes it seem like your eyes are actually adjusting to the new level of illumination.

Modular programming is faster programming

"We've actually been in the editor the entire time."

This is meant to be the real "wow" moment of the demo, from a programming standpoint: Willard brings down the full-screen view and shows that all those fancy graphical effects we've been watching for the last 15 minutes or so have actually just been a component window of a full-featured live programming environment. But the really impressive moment came a few minutes later, when he began tinkering with the actual nature of that live demo without having to wait for a new build, stop the program from running, or even touch a line of actual code.

The key to these programming abilities is a new version of Kismet, the pseudo-programming environment that has been brought along and fully revamped from Unreal Engine 3. Kismet uses connected puzzle pieces to represent attributes and relationships in and between in-game objects, so designers with minimal programming experience can control everything from the weight of an object to the way it bounces, what should happen when it comes close to another object, and how many hits from a hammer it should take to shatter—all without having to edit a single line of code directly.

"I did all the Kismet for that [room], and I can not program anything," Willard admits. "I'm a complete moron when it comes to actually writing C++, but I sit there and use the scripting tool all day long and write complex scripting behavior, because that's how it's designed to be used, by someone who doesn't necessarily have to know how a programming language works."

Not only that, but by breaking the game code into discrete modules that can be edited independently of one another, Unreal Engine 4 lets designers see the results of their tinkering quickly and directly, without having to worry about rebuilding the game's entire code base from scratch. What's more, the compilation process doesn't even require the designer to stop the live code that is actually running on their machine (unless they want to stop and see how a certain variable is working in real time, of course).

In one example we were shown, the designer changed the value of a "jump height" variable, clicked the compile button, and then continued to play around in the live demo as the machine worked in the background. As soon as the "compile complete" message appeared a few seconds later, the in-game character started immediately jumping about twice as high. Under Unreal Engine 3, such a change would likely require the help of a programmer, as well as a completely rebuilt version of the game that could take hours to make, given the size and scope of today's blockbusters.

"With this kind of direct editing, we get a massive productivity bonus," Willard says, "because it lets [designers] figure out how they want something to work exactly. We're not going to have this iterative process where I spend all night writing the code, you get to see it the next time there's a build and go 'No, that's not right at all,' so it really cuts down on that kind of loop. By making our tools as intuitive and user-friendly as possible, we cut down on a lot of the development iteration loss that goes into having people who don't know how something works but have to explain it to people who want to write it."

Not only will the new Kismet environment save time, but Willard says he can also see it improving game makers' creativity by letting them tinker with their ideas much more quickly and directly. "The ability to whimsically expand the capabilities of any object in the world is going to go a long way to making worlds that do interesting stuff all over the place," he said. "We don't have to be rigidly looked at and go, 'OK, we need to spend time to make this door have some interesting stuff happen when it opens.' We'll just tie that into the surrounding stuff, and later on we can expand that."

Coming soon

A select number of studios have been working with a preview version of Unreal Engine 4 for the last few months, and we can expect the first games using the engine to appear "within the year," Willard said. There's no timetable yet for when amateur programmers and smaller developers will get access to the technology through an Unreal Development Kit-style version of the new engine, however.

You're going to need the latest hardware to get access to all that graphical power, though. The demo we saw was running on a top-of-the-line NVIDIA GeForce GTX 680 graphics card, and we were told explicitly that the engine was currently being targeted for the next generation of console hardware rather than the Xbox 360 and PS3 (the Wii U also seems unlikely to support the engine out of the gate).

That said, once the top-of-the-line version of UE4 is out in the wild, Epic Game spokesperson Dana Cowley said scaled-down versions would eventually be available "on all major platforms, including mobile."

Promoted Comments

for once could they not make a demo w/ evil spiky medieval armor, robots or lava?

Recreating a famous movie scene w/ all the complex lighting - a Wong Kar Wai movie, the "I love america" opening speech from the Godfather, etc - would be even more impressive and reach a wider audience...

This is done on purpose. Fantasy and Sci-Fi settings are natural canidates for building scenes that your eyes are not familiar with. It's easier to makes something look "real" if your brain isn't familiar with all the nuanced details such a scene should have. Graphics programmers have a tendency to do development with scenes that replicate a real setting for the sake of comparing quality (Cornell Box etc). Once you hand the tech over to the art team they go bananas building something completely imaginary because it looks "better."

Share this story

Kyle Orland
Kyle is the Senior Gaming Editor at Ars Technica, specializing in video game hardware and software. He has journalism and computer science degrees from University of Maryland. He is based in the Washington, DC area. Emailkyle.orland@arstechnica.com//Twitter@KyleOrl