Epic Games released Unreal Engine 4.5 last Tuesday, and it is one of their largest releases since launch. While most point-releases occur on a four-to-six week schedule, this one took about nine weeks.

The headlining feature from the press release is Ray Traced Distance Field Soft Shadows. In the real world, lights have an actual size. A light bulb is not an infinitesimal point, it fills up your hand when you grab it (when it is off and cooled to roughly room temperature, of course). If a surface can see a light, it is lit by it. If the surface cannot see the light, it is not lit by it, which looks like it is covered in shadow. If a light is big enough that part of it lights a part of a surface, but part of it is blocked, you get "soft shadows".

Ray Traced Distance Field Soft Shadows is a dynamic effect, which means that it can update over time. This is very useful if, for instance, the object that is casting a shadow gets blown up by a rocket launcher or, less entertainingly, the sun sets. The effect is also particularly quick, with scenes rendering in just a couple of milliseconds (you get about 16ms to hit 60 FPS). This is faster than cascaded shadow maps (a method to generate shadows that is optimized for shadows near the camera) in benchmarks listed at Epic's documentation.

Unreal Engine 4.5 has also updated Subsurface Scattering. I am not exactly sure what is different, because Unreal Engine 4 had SSS for quite some time now, but they changed something. This technique is useful to create realistic skin, but is also very useful for oceans, ice, and wax.

Although Ray Traced Distance Field Soft Shadows and Screen-Space Subsurface Scattering are the most interesting feature to write about, I would consider C++ Hot Reload to be the most important feature of this version. To explain it, I will need to first describe how Unreal Engine 4 is designed. When you subscribe, you are given source code access to the engine on GitHub; alternatively, you can download the Unreal Engine Launcher, which allows you to manage canonical builds of Unreal Engine. When a version of the engine is run, it will open a project in Unreal Editor. These projects could be programmed either in C++ or Epic's flowchart-based scripting system, "Blueprints". Complete games could be made in Blueprints, and developers are encouraged to do so, but they are often used for simple objects (lights and elevators), modifications of complex objects, and rapid prototyping.

Rapid prototyping is the key part of my explanation. Remember how there is "engine code" that, when compiled, opens an editor to run "game code" for any given project? Despite the E3 2012 demo, many changes in a project's C++ source require the editor to be shut down and reloaded when game code is compiled. This led people to use Blueprints as a prototyping tool, not because of its logical, visual layout, but because you could manipulate objects several times in just a couple of minutes and without closing the editor. Now C++ is said to be a first-class citizen in this regard (unfortunately I have not had time to test this). As long as you are not modifying the engine's code, just the C++ code associated with your project, your changes should be possible while remaining in editor.

Also updated, and finally supported by default, is Unreal Motion Graphics (UMG). UMG is a UI platform that is built upon Slate, which itself is the main UI platform for Unreal Engine 4 (Unreal Editor, for instance, is created with Slate). Basically, it extends Slate and includes a Flash Professional-like editor for it, complete with styles, animations, and scaling for high-DPI devices.

Because I am not in the DirectX 12 private beta, I am unsure whether that branch has been updated. Microsoft has announced that it was based on Unreal Engine 4.4. They have not said anything publicly since, at least not regarding that.

Unreal Engine 4.5 is available now for subscribers through GitHub or the Unreal Engine Launcher.