Epic has released as much of their GDC demo as they are able to in an effort to end E3 2012 with a bang. They have included a second video to walk through the engine for developers to enjoy. We will explain to the masses why it is awesome.
Before we go any further — the video you have been waiting months to see.
Be prepared for a particle-filled generation.
As was the case with Intel’s sand-to-CPU video — the demo is pleasing but the supplementary info is the prize.
Epic released a 10 minute developer walkthrough to highlight the most important features of Unreal Engine 4. You can see it below and read on to see what that all means.
Yes, Unrealscript did not make it to Unreal Engine 4.
The first major feature of the engine is real-time dynamic global illumination and glossy specular reflection. Traditional video game graphics only considers the first bounce of light from a source — if that bounce does not reach the player camera then it does not exist. Global illumination allows objects to be lit not just by light sources but also by light bouncing from neighboring objects.
It has been very popular to calculate how light interacts with objects ahead of time for the last generation as well as a portion of the generation prior to that. With those methods you are able to soften the shadows cast by light and make the scene feel much more naturally lit. The problem arises when anything in the scene moves or changes as obviously happens in a video game.
Unreal Engine 4 has the ability to calculate Global Illumination in real time. Dynamic lights such as muzzle flashes or flames are able to not just illuminate the area around them but also induce that area around it to light each other.
Also, static sources such as moonlight shining in the window against the floor can bounce from the floor and slightly lighten the walls with a bluish tint without being calculated ahead of time. Developers can try lighting effects without waiting for sometimes hours to see the results. This also means that what would have been once a pre-computed lit scene with nothing moving can now be destroyed and still remain properly lit. And now the moon can even move if the designer wants.
Specular material on the gold statue
Diffuse material on the gold statue, notice how the floor lighting from the statue desaturates and changes.
In this scene we see how light can reflect against a statue and influence the objects around it. A specular material has a much smoother and more mirror-like surface than a diffuse material which tends to scatter light in all directions. If you were to shine a laser against a mirror the beam would bounce and you would not see it unless you were in the reflected path whereas if you shine the laser against the wall you would see a dot regardless of how you look at it. This is because the wall, like a projector screen, is like trillions of microscopic mirrors all pointed in different directions which each take a tiny fraction of the light and sends it in a different direction.
In Unreal Engine 4, this effect means that a shiny surface will not only glare if you look at it but also light the objects around it differently than a diffuse surface. You can see that effect against the floor.
Sub Surface Scattering simulates what happens when light enters a solid material but is reflected at some point after the edge of the surface. This effect is most noticeable with flesh color as light passes through the skin and reflects from our flesh and blood back out through the skin. This effect is also required to have a realistic looking ocean material as the light shines upon the waves and bulges.
This example is from the Crysis 2 tech demo which implemented similar feature.
Subsurface Scattering greenish tinting circled.
And this is what it looks like in Unreal Engine 4.
Object can also create deferred decals. The sphere near the center of the screen was rubbing on the floor which painted a wet decal as if it were ice leaving melted water behind it.
After quite a bit more discussion of indirect lighting the demo reached the dynamic particle system.
Column of smoke particles lit by lava particles flying up within it and of course the rest of the world around it.
Unreal Engine 4 has the capability of displaying millions of particles each lit properly, dynamically, and either directly or indirectly. This means we will have much richer smoke, sparks, fire, and water effects in the next generation. This is done by the GPU.
Yep, that’s a lot of particles.
Having a lot of particles is especially exciting to me. While I was spending my time modifying Unreal Engine 3 I was attempting to simulate explosion damage through particle simulations. With this amount of particles it seems quite possible to be achieved.
What this means is that if an explosion occurs in a sealed room with closed windows and doors the particles would be constrained and bump into each other and other objects. As the simulated pressure rises the objects would take damage until they are considered destroyed which would mean the windows would shatter and the door would fly off of its hinges with some initial velocity.
You would also be able to injure people around corners as well as under water by compression damage indirectly.
That obviously is not a part of the demonstration as no game developer has yet to have tried it. It was just an experiment I did a few years ago that was a bit ahead of its time.
Return of the lens flare!!! Oh joy!!!
Lens flare and other post processing effects have also been heavily upgraded with this engine revision. The simulated pupil of the player character will open and shut as the lighting intensity of the scene shifts which would increase or decrease the exposure of the scene.
The sun peeking over the wall as the room darkens.
Time of day has also been implemented as a result of indirect lighting. If the sun goes below the horizon the skybox will switch to night. The angle of the sun will also massively affect the lighting of the scene. If the sun goes below the top of a wall it will shadow darken the rest of the room within.
Kismet flow-chart editor.
The editor kit was also given much of a face lift as well. Unreal Script has been removed in favor of an advanced kismet editor which now supports debugging features like breakpoints and step-through. For the heavy lifting you now go through C++.
When editing the game’s C++ you are able to play while it compiles and have the changes pop in when they finish. They showed the example of modifying the jump strength of a player which properly modified the character specs without even relaunching the editor window.
Currently no games have been confirmed to use Unreal Engine 4. We can all hope would be that Epic will create a new version of the UDK for us to play around with and for independent developers to use the newest toys with.
And that is a fairly decent possibility.