Epic Games announced that Unreal Engine 5.1 is now available, and along with all the usual big new features, they continued improving their Linux support in this release. You can see the official release post here, release notes here.
After quietly making the Linux Editor for Unreal Engine properly official, it's nice to see them continue to make developing games on and for Linux better. In their press email, they mentioned how over "half of all announced next-gen games are being created with Unreal Engine" which is quite a few.
Going over the changelog, here's what's new and changed for Linux in Unreal Engine 5.1:
Clang 13 Support
Linux IDE Workflow Improvements
- Clang 13 is now the required version when compiling for Clang-based platforms such as Linux.
New / Fixed
- In UE 5.1, we improved support for VS Code as a default option for IDEs in Linux. Error handling and messaging is also present when you have multiple IDEs and the code accessor fails to find the correct one.
- Improved process for exporting to Raspberry Pi 4.
- Added a new vendor ID for Broadcom.
- Split ASTC and ETC2 support into separate texture formats for Vulkan, as ASTC may not be supported.
- USD: Added support for the usdMtlx plugin on Windows and Linux The usdMtlx plugin included with USD adds a file format plugin for reading MaterialX documents and translating them into UsdShade shading networks.
- USD: added support for the usdAbc plugin on Windows, Mac, and Linux.
- Added .so and .dylib as files to consider as library files to help reduce relinking on Mac and Linux.
- Implemented a quick workaround to allow munmaps to happen with Mutex unlocked. Currently, We can't define UE_ALLOW_OSMEMORYLOCKFREE on Linux as we'll deadlock with the OsAllocatorCacheLock.
- Mutex locks Munmap calls on Linux can take quite a bit of time (few ms in some cases). This should allow these to happen without the Mutex and remove some hitching.
- Updated Mac and Linux to use libcurl 7.83.1.
- Enabled the experimental Unreal Cloud DDC on Mac and Linux.
- Added all files under Unreal Build Tool output directory to fix an issue running build setup on linux builders.
- Added support for IsGamepadAttached on Linux.
- Added support for Linux to search (using "which") for CLion outside of the default expected location.
- Linux windows now have a reasonable minimum size, and no longer can be scaled down to 1 pixel wide/tall.
- UE on Linux now locates any standalone Rider installation if it is either installed to the default location "/opt" (Rider Installation Guide), or anywhere else that is on the PATH.
- Fixed an issue where global shaders would get cooked for Linux Server platforms if it had any targeted RHIs enabled.
- The Chromium Embedded Framework (CEF) library that powers the Web Browser Widget has been updated to use Chromium's "Ozone" rendering backend under Linux. As a result, the Web Browser Widget now renders correctly in Linux environments that lack an X11 server, such as desktops running Wayland without the XWayland compatibility layer, and headless environments such as containers.
- Fixed missing quotes in GenerateProjectFiles.sh.
- Fixed QMake project generator defines.
- Added DumpGPU viewer script for Linux and Mac. Currently requires the Chrome Browser to view the dump files.
- Fixed landscape not updating on changes to water on Mac and Linux.
- The GPU Dump Viewer now dumps both .sh and .bat so a dump can be opened either on Mac, Linux, or Windows regardless of the platform the files were dumped from.
- Platform Linux for the LiveLinkOverNDisplay Plugin was whitelisted in nDisplay.
- Changed the minimum driver version for Nanite on Vulkan, and also added a check for Linux.
- DriverDenyList support was added to Linux.
- Added DriverDenyList entries for Vulkan on Windows and Linux.
- Added support for OpenVDB and Blosc on Mac and Linux in addition to Windows.
- Fixed audio crashing when outputting audio with Blackmagic on Linux.
- Enabled ShotGrid plugin for Linux.
- SwitchboardListener: Fixed expansion of %TEMP% in file destination paths on non-Windows platforms. This was causing a crash attempting to launch nDisplay devices running on Linux.
Nice to see so many additions and fixes for Linux, hopefully it will continue to see this kind of attention.