Epic Games released Unreal Engine 4.15 with 79 improvements submitted by the community of Unreal Engine developers on GitHub. The newest version features significant gains in overall stability, enhancements to developer workflows, and improvements to runtime performance resulting in greater efficiency during development and superior end user experiences after release.
Compile times for programmers are drastically reduced – by as much as 50%! Reloading content while Unreal Editor is running, Reroute nodes in Materials, a new Blendspace Editor, new mathematics Blueprint nodes, and more contribute to an even more streamlined development process in this release.
For those looking to squeeze out every drop of performance, Cooking Blueprints to C++ native code is no longer an experimental feature, the Texture Streaming system has gotten an overhaul, and Alternate Frame Rendering with NVIDIA SLI gives a boost on high end systems.
The Cinematics and Animation pipelines continue to strengthen with Animation blending now possible in Sequencer, linking Animation Curves to bones for culling in LODs, and modifying curves in Animation Blueprints with the Modify Curve node. Level Sequences can now be embedded in Actor Blueprints, and early support for Level Sequence Components is available for early adopters.
Developing for Nintendo Switch is available as experimental as part of the platform improvements. GPS data is now accessible on iOS and Android using the new Location Services. Also on iOS, streaming audio and remote notifications are fully supported. Monoscopic Far Field Rendering is an option for mobile VR platforms, HDR display output is available in an experimental state, and the ability to use Playstation VR Aim Controllers is also added.
Let’s look at some of the new features:
NEW: NINTENDO SWITCH SUPPORT
Epic Games partnered with Nintendo to help Unreal Engine 4 developers bring their games to Nintendo Switch!
They have added early support for developing games for the Nintendo Switch console. It is still considered experimental in this release. They plan for it to be in a shippable state in the next release.
NEW: PHYSICALLY BASED DEFAULT POST-PROCESSING SETTINGS
The default tonemapper now provides a more film-like color and tone response!
The filmic tonemapper matching the Academy Color Encoding System (ACES) is now on by default. This tonemapper also enables the engine to target multiple display types including HDR displays. Bloom settings have been updated to provide a more physically correct result by default.
The filmic tonemapper will look different than the tonemapper in previous versions of the engine. You can switch the tonemapper back by adding r.TonemapperFilm=0 to the SystemSettings section of your project’s DefaultEngine.ini.
NEW: IMPROVED TEXTURE STREAMING
The Texture Streaming system has been optimized to reduce CPU usage, memory usage, and load times while eliminating low resolution artifacts and automatically handling limitations of varying memory budgets of different platforms.
Texture Memory Usage Improvements – The texture streaming system now handles per component visibility and computes (smaller) per material bounds for static geometry resulting in as much as a 40% reduction in texture memory usage.
Texture Loading Time Improvements – Texture load times are 2 to 3 times faster due to tracking visible mips, enabling the streamer to focus on visible textures followed by prefetch data and forced load data.
CPU Time Reduction
Game thread update time is reduced by 50% by moving dynamic component processing and other tasks to the async texture streaming task, enabling them to occur in parallel with other game thread tasks.
Texture processing stalls for streaming levels are reduced up to 98% due to amortized processing.
Low Resolution Artifacts Reduction – Mesh UV densities are now computed per material instead of per mesh and take into account LODs. Texture streaming is also now supported on a wider variety of Component types, including Particle Systems and Instanced Static Meshes.
Automatic Memory Budgeting – The Texture Streaming system now automatically adjust its behavior to deal with varying memory budgets without making manual tweaks. The system selects which textures need to be reduced using a variety of heuristics to maintain visual quality.
NEW: COOKING BLUEPRINTS TO C++
Packaging Blueprints into native source code to reduce the overhead that goes into executing Blueprints is now production ready!
You can either exclusively nativize individual Blueprints or inclusively nativize all Blueprint assets. Large projects may run into executable size issues on some platforms when using the Inclusive mode; for many projects the best practice is to use Exclusive mode and target only performance critical Blueprints. For more information, see Blueprint Nativization documentation.
NEW: FASTER C++ COMPILE TIMES
The Unreal Engine 4 codebase now compiles up to 50% faster! Header files only include other headers they need, rather than every source file including large monolithic headers like Engine.h and UnrealEd.h.
NEW: UI BLUR RECTS
You can now blur other UI and the 3D scene in UMG using the new Background Blur widget! Background Blur widgets also have a content slot which can be used to add widgets that will not be blurred.
There is a single strength value that defines how blurry the background content is, which goes from 0 (off) to 100 (full strength) and can be animated to modify the amount of blurring over time.
NEW: MATERIAL EDITOR REROUTE NODES
Reroute nodes are now available in the Material Editor to enable better organization of your Material graphs! They function identically between Blueprints and the Material Editor and are purely visual so they should have no impact on the final instruction count of your Materials.
NEW: SEQUENCER ANIMATION BLENDING
Sequencer now supports weighted blending between multiple animations enabling complex animation sequences to be constructed from existing animations. Any number of animations, including additive (Local Space) animations, can be blended at any given time.
NEW: SEQUENCER ANIMATIONS IN BLUEPRINTS (EXPERIMENTAL)
The new Actor Sequence plugin – which adds an Actor Sequence Component – makes it possible to embed Sequences into Actor Blueprints! This enables reuse of Sequences by binding the animations to the Blueprint instance and triggering them using the Event Graph. You can also add an Actor Sequence Component to any Actor in the world to add animations to a single instance of an Actor.
NEW: HIGH DYNAMIC RANGE DISPLAY OUTPUT (EXPERIMENTAL)
Unreal Engine 4 can now output to High Dynamic Range (HDR) displays taking advantage of features such as higher contrast and wider color gamut!
These are simulated images and are for demonstration purposes only
HDR display output support has been added for Windows Direct3D 11 (NVIDIA-only), and Mac Metal platforms. Other devices are coming in future releases or will be available through GitHub as added. The current implementation handles full processing of the rendered scene through the standard ACES transforms (look modification -> reference rendering -> output display) and currently has paths implemented for 1000-nit or 2000-nit display outputs. They bake the device-specific transforms to a lookup table as part of the tonemapping pass which includes most of the standard white balance and color grading controls. By default the film-mapping curve is disabled during HDR output due to poor compatibility with LDR controls.
NEW: MOBILE RENDERING PREVIEW (OPENGL ES 3.1, METAL, VULKAN)
You can now preview high-end mobile features in the editor’s viewport using the improved Mobile Preview feature. This mode will emulate the feature set available to iOS Metal, Android OpenGL ES 3.1 and Android Vulkan devices.
NEW: MAP/SET CONTAINERS FOR BLUEPRINTS
Collections of items can now be stored in Blueprints using Map and Set variable types in addition to the previously available Array variable type. Maps and Sets guarantee that they contain only unique items, with no repeating entries; no repeating ‘keys’, where maps are concerned. In particular, they are useful when doing frequent lookups on large datasets.
You can find all the details on the latest version here.