Download

UE5 Breaking and Noteworthy Changes

Jun 3, 2021.Knowledge

With UE5 on its way, we’ve gathered up a list of important changes to the engine that users should know about. Our goal is for the upgrade process to UE5 to be as painless as possible, while still being ambitious in what we deliver. We want existing UE4 projects, including our samples, to be able to compile and run in UE5 with minimal effort. We’re striving for our content and code to be fully backwards compatible, including blueprints, public native gameplay and engine classes, and function libraries; however, there are some places we plan on breaking things to make way for new features and workflows.

Among the largest systemic changes we’re introducing are the release of Nanite, Lumen, and Chaos. Nanite and Lumen will require a bit of work to get graphics-centric projects looking the same as UE4. If a project is heavily Physics-based, and didn’t switch to Chaos already, some assets will work differently and there will be some more details to configure. If an upgrade path exists for a feature, our intent is to detail it here, or link to a guide with details as they’re created.

Audio

Removals

Legacy Audio Backends will be replaced by Unreal Audio Mixer. This was already deprecated in 4.24, with a plan for full removal by 5.0.

  • No action is required by users. UE5 will use Unreal Audio Mixer and leverage modern audio backends by default, which are compatible with all audio features.

Deprecations

Audio Volumes, Sound Class Mix, and Sound Cues will be deprecated by 5.0, with plans to remove them in a future release of UE5

  • Sound Cues will be superseded by MetaSounds, which will be available in 5.0.
  • Sound Class Mix will be superseded by the Modulation and Submix systems, which are now available.
  • Audio Volumes will be superseded by a new system we are developing, which will be available in 5.0.
  • Users are encouraged to move to the new versions of these systems sooner rather than later.

Core

Removals

Event-Driven Loader will be replaced with the Zen loader.

  • Since most users do not interface directly with the EDL, this is not expected to add additional steps to upgrading.

Deprecations

Stats System will be replaced by Unreal Insights instrumentation after the initial release of UE5.

  • We won’t be removing the Stats System in 5.0, but we eventually want to remove this system in favor of using Insights Instrumentation. We encourage projects to make the switch sooner rather than later.

Gameplay Framework

Removals

Blueprint Nativization support will be discontinued.

  • This should take no work on the part of users. If a project leveraged this feature, the project should still function, but without nativized blueprints.

  • Some projects that were using this feature could see a performance impact, in which case users will need to reach out about optimization strategies.

Noteworthy Changes

Large World Coordinates are being implemented, meaning projects will no longer have the same limitations on world size caused by the use of single-precision floating point coordinates for absolute positions.

  • This upgrade will most likely be required but quite minor for game code, but we do not currently have a guide available.

Networking

Deprecations

AES, RSA, and RSA Key AES Encryption Handlers will be deprecated as of 5.0 and removed in a future release of UE5, as only DTLS is used at this point.

  • AES GCM will remain in use past 5.0, but will be removed in a future release of UE5.
  • This should only require work by users if they’re using one of the deprecated handlers after they’re removed. Currently there is no upgrade path for this case, but a guide will be available in the future.

Physics

Deprecations

PhysX will be replaced by the Chaos Physics engine as the new default in 5.0, with plans to fully remove PhysX in a future release of UE5.

  • Users in 4.27 should migrate. Legacy destruction was removed. PhysX vehicle components will no longer load.

  • The overall simulation will behave differently and will need tweaking. The tick rate will change for any newly created projects by default. The goal is to have this enabled by default as of 5.0.

    • The tick rate change will be accessible from Tick Async Physics within Project Settings. This new feature will simulate Physics on its own thread instead of on the Game Thread.
      • This allows the Physics simulation to run on a fixed tick interval, which improves determinism.

      • This feature also sets the stage for more easily handling networked Physics, as it allows a server and client to tick at the same rate.

      • Due to having a separate thread, there is a potential delay between Game Thread input and when the Physics Thread evaluates those inputs. This delay needs to be accounted for, as simulated objects may not react to gameplay events instantly. This could lead to unpredictable results if gameplay logic relies heavily on Physics.

        • This can be alleviated by executing Physics-heavy gameplay code in C++ callbacks which are executed on the Physics Thread. This will require some work to port existing projects to use this mechanism.
  • If necessary during the transition, users can still compile from source with PhysX enabled, until we fully remove the system in a later release.

  • Although we don’t currently have a Chaos upgrade guide published, we intend to have one available in the future.

Programming

Removals

Support for Visual Studio 2015 was deprecated in 4.22 and will be removed in 5.0. Additionally, support for Visual Studio 2017 will be removed in 5.0.

  • Developers will need to use Visual Studio 2019

32-bit Platforms will be removed by the time 5.0 is released. This will affect Windows, Android, and HoloLens.

  • Developers will need to switch to the 64-bit versions of the affected platforms if they’re currently using a 32-bit platform. If you have a need to support 32-bit platforms, please let us know.

Legacy C++ Hot Reload will be replaced by the Live Coding plugin in 5.0 for Windows. Support for other platforms is planned for future releases.

  • Developers should now use the Live Coding plugin for their hot reload functionality.

Noteworthy Changes

TObjectPtr will be used by Unreal for pointer properties instead of raw pointers for dependency tracking purposes.

  • Licensee code isn’t required to change to using TObjectPtr, but it’s recommended for future cooking performance improvements.

  • There is a tool named UnrealObjectPtrTool which can be used to help automate a portion of the work of upgrading a project.

  • An upgrade guide document will be provided in the future with advice on how to handle common issues when upgrading a project.

TargetPlatform Names are being standardized. The main change will be WindowsNoEditor → Windows

  • Developers will need to update their build scripts to use new names (and rarely their DeviceProfiles.ini files):
    • Windows → WindowsEditor
    • WindowsNoEditor → Windows
    • MacNoEditor → Mac
    • Mac → MacEditor
    • LinuxNoEditor → Linux
    • Linux → LinuxEditor
    • LinuxAArch64NoEditor → LinuxAArch64

This is mainly an issue if you run the cooker directly, not through UAT; RunUAT BuildCookRun commands should not need to change.

.NET Core will be the .NET runtime for UnrealGameSync, UnrealBuildTool, UnrealHeaderTool, and UnrealAutomationTool

  • There are a few actions that Developers will be required to take:
    • .NET Core 3.1 redistributables will need to be installed for all UE5 users
    • Developers that intend to compile or debug these tools may need to have .NET Core 3.1 SDK installed for their IDEs to work.
    • There will be a migration guide available going over any additional points past these for 5.0.
  • A general breaking changes guide for .NET Framework to .NET Core can be found here: Breaking changes - .NET Framework to .NET Core | Microsoft Docs

Rendering

Removals

Hardware Tessellation support will be removed, as it is made obsolete in most cases by Nanite.

  • For use-cases that Nanite does not support, there is not an immediate upgrade path, so users will need to look at up-ressing assets if necessary.

Light Propagation Volumes (LPV) will be replaced by Lumen

  • Users should use Lumen instead. Lumen provides additional features, much higher quality, and is actively being developed, though it will have a higher baseline performance cost than LPV.

Legacy Tonemapper is now being removed after being previously deprecated.

  • Users shouldn’t have any work to do with this removal.

Distance-Field GI (DFGI) will be replaced by Lumen after having been experimental.

  • Users should use Lumen instead for dynamic global illumination.

Deprecations

Cascade will be deprecated in favor of Niagara in 5.0 and removed in a later release.

  • When we have a reliable Cascade → Niagara automated converter, we’ll set a target release to remove Cascade fully. The converter is in development.

Tools

Removals

Legacy Editable Mesh Plugin will be replaced by the new Geometry editing tools.

  • This was formerly an experimental plugin that’s no longer necessary to have. This shouldn’t require any work on the part of users.

Movie Scene Capture will be replaced by Movie Render Queue

  • Other than using the new Movie Render Queue to capture movies, this shouldn’t require extra work from users.

VR Level Editing will be stripped down to only support VR preview.

  • The Enterprise use case (virtual production scouting) should remain intact, as that’s still leveraged by users.

Sequence Recorder will be replaced by Take Recorder

  • New system is a full superset, so users can use the new system instead.

Camera Anims will be replaced by Camera Animation Sequences.

Editor Feature Packs associated with plugins that are being removed will also be removed.

  • The upgrades will need to be taken on a case-by-case basis for plugins that are being removed that have associated content. Users will need to make sure to not reference the removed content.

Deprecations

Matinee will be replaced by Sequencer after the initial release of UE5.

World Composition will be replaced by World Partition after the initial release of UE5.

  • No runtime code, but it will remain in the initial UE5 release to ensure worlds using it will still load, and it will be removed in a future release of UE5. It will be possible to continue shipping games using World Composition with the initial release of UE5; however, we will discontinue support or fixes for it.

  • We will provide the commandlet to convert from World Composition to World Partition (WorldPartitionConvertCommandlet) for either existing Level Streaming or World Composition worlds.

  • https://udn.unrealengine.com/s/article/World-Partition-Feature-Documentation - Check out this Knowledge Base article for more details.

@Rudy.Triplett It’s an awesome list!

I need to report 2 issues with that

  1. It seems to duplicated docs version, none version having all information?
    Unreal Engine 5 Noteworthy Changes | Unreal Engine Documentation

  2. This guide links to UDN a few times, while UDN isn’t publically available…