Confused on Steam Play and Proton? Be sure to check out our guide.
We do often include affiliate links to earn us some pennies. See more here.

While the Epic Games Store may not support Linux, at least Unreal Engine does and it appears to have been given quite a lot of attention in the Unreal Engine 4.25 release that went out officially today.

Apart from the usual SDK updates which you tend to see in each release, scrolling over the release notes was actually pretty damn interesting. It's not just a list of bug fixes either, there's plenty that's brand new on the Linux side and it really seems like a lot of attention has been given. Some of it includes: support for the MDL Importer on Linux for Unreal Datasmith, support for Linux offscreen Vulkan rendering, they moved to a newer llvm clang 9.0.1 v16 tool-chain and a lot more.

It's also quite fun to see a rather large and clear Linux icon on their supported platforms image:

Want to see the big list of Linux improvements in Unreal Engine 4.25? We've included it all below in a handy clickable spoiler for you. We've removed some that weren't for the normal Linux desktop like AArch64.

Changelog, click me
  1. Bug Fix: Fixed issue that prevented editor windows from restoring when minimized.

  2. Bug Fix: Set UserTempDir for Linux to $TMPDIR or fallback to /var/tmp

  3. Bug Fix: Added missing space to SanitizerInfo string.

  4. Bug Fix: Implemented module path name for Unix to avoid hard coded default path.

  5. Bug Fix: Addref Vulkan memory allocation so it's released when not used by framebuffer and surface FrameBuffer ctor was creating a view directly onto a texture surface, but was not holding the allocated memory. If the texture was freed before the framebuffer was destroyed, we could run into use after free type issues.

  6. Bug Fix: Fixed Linux address sanitizer builds.

  7. Bug Fix: Reduced NullRHI static buffer size by using dynamic buffer Reduces allocation size & fixes potential silent buffer overrun.

  8. Bug Fix: Fixed issue with shell script not being able to handle quoted arguments.

  9. Bug Fix: Send 127.0.0.1 by default for Linux/Mac as well for UnrealInsights. Since there's no Event to close dont need to check for this.

  10. Bug Fix: Added win64 platform check for VisualStudioDTE.

  11. Bug fix: Fixed Linux build break with case sensitive headers.

  12. Bug Fix: FixedLinux build break (SEnumComboBox.h -> SEnumCombobox.h)

  13. Bug Fix: Fixed race when two threads are trying to create a folder on Linux.

  14. Bug Fix: Fixed command quoting in Linux chmod command.

  15. Bug Fix: Override GetPortableCallstack to avoid 1MB allocations in crash signal handler.

  16. Bug Fix:: Removed VulkanLinuxPlatform RenderOffScreen logging.

  17. Bug Fix: Fixed Linux build break (includes paths with backslashes)

  18. Bug Fix: Fixed UnrealBuildTool unused variable warnings.

  19. Bug Fix: Fix for ISPCTexComp dll not loading on projects on a different directory. Fixes this warning on UE4Editor startup: LogCore: Warning: dlopen failed: /epic/UE4.git/Engine/ThirdParty/IntelISPCTexComp/Linux64-Release/libispc_texcomp.so: cannot open shared object file: No such file or directory LogTextureFormatIntelISPCTexComp: Warning: Unable to load ../../../Engine/ThirdParty/IntelISPCTexComp/Linux64-Release/libispc_texcomp.so

  20. Bug Fix: Ensures start time for events is now greater than last end time for all nodes.

  21. Bug Fix: GpuProfilerEvent times now clamp to valid values, SanitizeEventTree was not clamping start times to be >= to previous root start times, so we were hitting asserts in TraverseEventTree() for: lastStartTime >= GpuProfilerEvents[Root].GetStartResultMicroseconds(). Also removed unused variables.

  22. Bug Fix: Now using secure_getenv() instead of getenv().

  23. New: Missing toolchain warning now only appears on Linux + Win64.

  24. New: Added linux sanitizer information to build details if set.

  25. New: Build nvTriStrip and ForsythTriOptimizer with UE clang toolchain (link with libstdc++) Removed stdc++ dependency for MeshBuilderCommon.

  26. New: Added VULKAN_ENABLE_DUMP_LAYER to VulkanLinuxPlatform.h.

  27. New: System compiler is no longer the default fall-back on Linux. We now only check for and use the system compiler if "ForceUseSystemCompiler" command line is passed Also, no longer default to epic compiler if ForceUseSystemCompiler is specified and the system compiler can’t be found.

  28. New: Moved Linux architectures to Linux package project submenu. Added a PlatformSubMenu ini entry to DataDrivenPlatformInfo sections, and coalesced these in FPackageProjectMenu::MakeMenu().

  29. New: Added a more descriptive error messages for Linux SDK Toolchain Not Found for three cases:

    • .$ LINUX_MULTIARCH_ROOT=/tmp/foobar make BlankProgram bash "/epic/UE4-23.git/Engine/Build/BatchFiles/Linux/Build.sh" BlankProgram Linux Development Fixing inconsistent case in filenames. Setting up Mono Building BlankProgram... Unable to locate Linux SDK toolchain at /tmp/foobar/x86_64-unknown-linux-gnu. ERROR: GetBuildPlatform: No BuildPlatform found for Linux make: *** [Makefile:183: BlankProgram] Error 5

    • make BlankProgram ARGS="forceusesystemcompiler" bash "/epic/UE4-23.git/Engine/Build/BatchFiles/Linux/Build.sh" BlankProgram Linux Development forceusesystemcompiler Fixing inconsistent case in filenames. Setting up Mono Building BlankProgram... Unable to locate system compiler (-ForceUseSystemCompiler specified). ERROR GetBuildPlatform: No BuildPlatform found for Linux make: *** [Makefile:183: BlankProgram] Error 5

    • LINUX_MULTIARCH_ROOT= make BlankProgram bash "/epic/UE4-23.git/Engine/Build/BatchFiles/Linux/Build.sh" BlankProgram Linux Development Fixing inconsistent case in filenames. Setting up Mono Building BlankProgram... Unable to locate Linux SDK toolchain. Please run Setup.sh. ERROR GetBuildPlatform: No BuildPlatform found for Linux make: *** [Makefile:183: BlankProgram] Error 5

  30. New: Added support for Linux offscreen Vulkan rendering, which is enabled with -RenderOffScreen flag. This fixes several Slate issues when rendering offscreen.

  31. New: Moved to new llvm clang 9.0.1 v16 toolchain.

  32. New: Added bGdbIndexSection bool to LinuxToolChain.

  33. New: Linux now always uses lld linker with clang v9 and above.

  34. New: Can now generate .debug_pubnames and .debug_pubtypes sections in a format suitable for conversion into a GDB index. This option is only useful with a linker that can produce GDB index version 7.

  35. New: Added protected to bGdbIndexSection bool.

  36. New: New build of python2.7 for Linux now supports zlib, bz2, and ssl.

  37. New: Use msbuild in mono for Linux when using an installed copy and mono >= 5.0.

  38. New: Batch writing of ini files is now possible.

As for Vulkan API support, looks like that saw huge improvements too across the board. There's 50+ improvements just for Vulkan including new features like DXC integration (DirectX Shader Compiler) into their Vulkan shader compiler, they added support for Virtual Texture Streaming for Vulkan on Linux and there's even some Vulkan VR improvements

It's interesting since there's more and more games coming to Stadia, which uses Debian Linux and Vulkan so it's probable a lot of the interest there is due to that and thanks to it Unreal Engine on Linux as a whole will get better. See the release announcement here.

Article taken from GamingOnLinux.com.
20 Likes
About the author -
author picture
I am the owner of GamingOnLinux. After discovering Linux back in the days of Mandrake in 2003, I constantly checked on the progress of Linux until Ubuntu appeared on the scene and it helped me to really love it. You can reach me easily by emailing GamingOnLinux directly. You can also follow my personal adventures on Bluesky.
See more from me
The comments on this article are closed.
All posts need to follow our rules. For users logged in: please hit the Report Flag icon on any post that breaks the rules or contains illegal / harmful content. Guest readers can email us for any issues.
30 comments
Page: 1/2»
  Go to:

mphuZ May 5, 2020
with tons of Linux...
AArch. Not interesting

Also:

Improvements for Steam Audio;
RT is ready for production;
Initial support for PS5/XSX;
Official termination of Win32 support starting from 4.27 version.
Mountain Man May 5, 2020
And yet Epic still won't port their most popular game to Linux.

Not that I would ever play Fortnite -- nothing about it appeals to me -- but it shows how Epic really feels about the Linux platform.
elmapul May 5, 2020
is that the SteamOS logo or steam logo? because i dont see the logo for other stores, including their own store, so why its there mixed with a lot of platform logos...
Sweeney must have double personality....
Pikolo May 5, 2020
is that the SteamOS logo or steam logo? because i dont see the logo for other stores, including their own store, so why its there mixed with a lot of platform logos...
The Visual Studio logo doesn't make that much sense either tbh...
CatKiller May 5, 2020
View PC info
  • Supporter Plus
is that the SteamOS logo or steam logo? because i dont see the logo for other stores, including their own store, so why its there mixed with a lot of platform logos...

Weirdly, I think it's likely to be neither, but "Steam Machines" instead, as a platform. And likely mostly so they didn't have a visual gap. Although it does means that the Steam logo gets to be on there twice, which is funny coming from Epic.

That selection of icons is really odd in general: they've clearly put the wide icons with text on one side and the mostly square icons on the other so that they all line up visually, which is fair enough, but what's going on with the ordering? Steam gets the top row and Windows is down slumming it with Linux & Android. Very strange.
Avehicle7887 May 5, 2020
Have they finally fixed the Vulkan performance issues with native Linux builds? As of a few months ago it was so bad that the same Windows version of a game ran twice as fast with DXVK.
Purple Library Guy May 5, 2020
If Liam's surmise is accurate, which wouldn't surprise me, this is exactly the kind of reason I find Stadia interesting despite having no interest in using it personally and disliking the games-over-the-cloud model in general. Stadia can create pressure for tools, drivers and so forth to work well with Linux and get developers familiar with Linux.
Leopard May 5, 2020
Have they finally fixed the Vulkan performance issues with native Linux builds? As of a few months ago it was so bad that the same Windows version of a game ran twice as fast with DXVK.

Probably not.

![](https://i.ibb.co/1fZrLLp/Ekran-Goruntusu-2020-04-29-06-08-05.png)

![](https://i.ibb.co/5Ksxhvf/Ekran-Goruntusu-2020-04-29-06-08-43.png)
Shmerl May 5, 2020
support for Linux offscreen Vulkan rendering

This is for Stadia I suppose?

Also, what happened to this?
Avehicle7887 May 5, 2020
Have they finally fixed the Vulkan performance issues with native Linux builds? As of a few months ago it was so bad that the same Windows version of a game ran twice as fast with DXVK.

Probably not.

![](https://i.ibb.co/1fZrLLp/Ekran-Goruntusu-2020-04-29-06-08-05.png)

![](https://i.ibb.co/5Ksxhvf/Ekran-Goruntusu-2020-04-29-06-08-43.png)

Good thing the devs of the game are still supporting OpenGL, 50 fps on the main menu is not looking good, Can't imagine how it performs during gameplay.
Disharmonic May 5, 2020
View PC info
  • Supporter
with tons of Linux...

Official termination of Win32 support starting from 4.27 version.
So all UE4 games on WIndows will be Metro apps or am I misunderstanding that?
Avehicle7887 May 5, 2020
with tons of Linux...

Official termination of Win32 support starting from 4.27 version.
So all UE4 games on WIndows will be Metro apps or am I misunderstanding that?

I think it more means "no more 32bit games" which I'd say it's about time,
mphuZ May 5, 2020
So all UE4 games on WIndows will be Metro apps or am I misunderstanding that?
Original:

We are officially deprecating our Win32 support. It will be included in Unreal Engine 4.25 and Unreal Engine 4.26, but support for 32-bit Windows operating systems will be removed in a future release.
That sounds vague to me. They will either stop supporting 32-bit systems, or switch to UWP completely.
Liam Dawe May 5, 2020
So all UE4 games on WIndows will be Metro apps or am I misunderstanding that?
Original:

We are officially deprecating our Win32 support. It will be included in Unreal Engine 4.25 and Unreal Engine 4.26, but support for 32-bit Windows operating systems will be removed in a future release.
That sounds vague to me. They will either stop supporting 32-bit systems, or switch to UWP completely.
Win32 in UE is not the same as the Win32 platform you might be thinking of. Unreal uses win32/win64 naming simply for 32/64bit. It means they're retiring 32bit building. Not that any of that matters to us...


Last edited by Liam Dawe on 5 May 2020 at 11:32 pm UTC
salamanderrake May 6, 2020
People complaining about UE4 on Linux are just mostly mad about UT3 not being ported to Linux and can't just let it go and move on.
Linux

Bug Fix: Fixed issue that prevented editor windows from restoring when minimized.

Bug Fix: Added PLATFORM_LINUXAARCH64 to Platform.h

Bug Fix: Set UserTempDir for Linux to $TMPDIR or fallback to /var/tmp

Bug Fix: Added missing space to SanitizerInfo string.

Bug Fix: Implemented module path name for Unix to avoid hard coded default path.

Bug Fix: Disabled ispc for Linux AArch64 Currently using ispc v1.12 which has add "experimental AArch64" support.

Bug Fix: Addref Vulkan memory allocation so it's released when not used by framebuffer and surface FrameBuffer ctor was creating a view directly onto a texture surface, but was not holding the allocated memory. If the texture was freed before the framebuffer was destroyed, we could run into use after free type issues.

Bug Fix: Fixed Linux address sanitizer builds.

Bug Fix: Reduced NullRHI static buffer size by using dynamic buffer Reduces allocation size & fixes potential silent buffer overrun.

Bug Fix: Fixed issue with shell script not being able to handle quoted arguments.

Bug Fix: Default LinuxAArch64 platform in binary now builds to the same default as Linux platform.

Bug Fix: Don't add local launch device for Linux AArch64 platform Local device right now will never be an Arm64 device.

Bug Fix: Set PrecompileForTargets to None for AArch64 builds of SoundVisualizations and Kiss_FFT.

Bug Fix: Send 127.0.0.1 by default for Linux/Mac as well for UnrealInsights. Since there's no Event to close dont need to check for this.

Bug Fix: Added win64 platform check for VisualStudioDTE.

Bug fix: Fixed Linux build break with case sensitive headers.

Bug Fix: FixedLinux build break (SEnumComboBox.h -> SEnumCombobox.h)

Bug Fix: Fixed race when two threads are trying to create a folder on Linux.

Bug Fix: Fixed command quoting in Linux chmod command.

Bug Fix: Override GetPortableCallstack to avoid 1MB allocations in crash signal handler.

Bug Fix:: Removed VulkanLinuxPlatform RenderOffScreen logging.

Bug Fix: Fixed Linux build break (includes paths with backslashes)

Bug Fix: Fixed UnrealBuildTool unused variable warnings.

Bug Fix: Fix for ISPCTexComp dll not loading on projects on a different directory. Fixes this warning on UE4Editor startup: LogCore: Warning: dlopen failed: /epic/UE4.git/Engine/ThirdParty/IntelISPCTexComp/Linux64-Release/libispc_texcomp.so: cannot open shared object file: No such file or directory LogTextureFormatIntelISPCTexComp: Warning: Unable to load ../../../Engine/ThirdParty/IntelISPCTexComp/Linux64-Release/libispc_texcomp.so

Bug Fix: Ensures start time for events is now greater than last end time for all nodes.

Bug Fix: GpuProfilerEvent times now clamp to valid values, SanitizeEventTree was not clamping start times to be >= to previous root start times, so we were hitting asserts in TraverseEventTree() for: lastStartTime >= GpuProfilerEvents[Root].GetStartResultMicroseconds(). Also removed unused variables.

Bug Fix: Now using secure_getenv() instead of getenv().

New: Missing toolchain warning now only appears on Linux + Win64.

New: Added linux sanitizer information to build details if set.

New: Build nvTriStrip and ForsythTriOptimizer with UE clang toolchain (link with libstdc++) Removed stdc++ dependency for MeshBuilderCommon.

New: Added LinuxAArch64Server and LinuxAArch64Client build targets.

New: Added VULKAN_ENABLE_DUMP_LAYER to VulkanLinuxPlatform.h.

New: System compiler is no longer the default fall-back on Linux. We now only check for and use the system compiler if "ForceUseSystemCompiler" command line is passed Also, no longer default to epic compiler if ForceUseSystemCompiler is specified and the system compiler can’t be found.

New: Moved Linux architectures to Linux package project submenu. Added a PlatformSubMenu ini entry to DataDrivenPlatformInfo sections, and coalesced these in FPackageProjectMenu::MakeMenu().

New: Added a more descriptive error messages for Linux SDK Toolchain Not Found for three cases:

.$ LINUX_MULTIARCH_ROOT=/tmp/foobar make BlankProgram bash "/epic/UE4-23.git/Engine/Build/BatchFiles/Linux/Build.sh" BlankProgram Linux Development Fixing inconsistent case in filenames. Setting up Mono Building BlankProgram... Unable to locate Linux SDK toolchain at /tmp/foobar/x86_64-unknown-linux-gnu. ERROR: GetBuildPlatform: No BuildPlatform found for Linux make: *** [Makefile:183: BlankProgram] Error 5

make BlankProgram ARGS="forceusesystemcompiler" bash "/epic/UE4-23.git/Engine/Build/BatchFiles/Linux/Build.sh" BlankProgram Linux Development forceusesystemcompiler Fixing inconsistent case in filenames. Setting up Mono Building BlankProgram... Unable to locate system compiler (-ForceUseSystemCompiler specified). ERROR GetBuildPlatform: No BuildPlatform found for Linux make: *** [Makefile:183: BlankProgram] Error 5

LINUX_MULTIARCH_ROOT= make BlankProgram bash "/epic/UE4-23.git/Engine/Build/BatchFiles/Linux/Build.sh" BlankProgram Linux Development Fixing inconsistent case in filenames. Setting up Mono Building BlankProgram... Unable to locate Linux SDK toolchain. Please run Setup.sh. ERROR GetBuildPlatform: No BuildPlatform found for Linux make: *** [Makefile:183: BlankProgram] Error 5

New: Added Linux AArch64 FreeType2 libraries.

New: Added support for Linux offscreen Vulkan rendering, which is enabled with -RenderOffScreen flag. This fixes several Slate issues when rendering offscreen.

New: Enabled Neon instrinsics for Linux AArch64.

New: Moved to new llvm clang 9.0.1 v16 toolchain.

New: Added bGdbIndexSection bool to LinuxToolChain.

New: Added Linux AArch64 libs for FreeType2 v2.10.0, ICU 64.1, and HarfBuzz 2.4.0 Includes BuildForLinuxAArch64.sh cross compilation scripts Adds LinuxAArch64 back to installed engine builds.

New: Linux now always uses lld linker with clang v9 and above.

New: Can now generate .debug_pubnames and .debug_pubtypes sections in a format suitable for conversion into a GDB index. This option is only useful with a linker that can produce GDB index version 7.

New: Added protected to bGdbIndexSection bool.

New: New build of python2.7 for Linux now supports zlib, bz2, and ssl.

New: Use msbuild in mono for Linux when using an installed copy and mono >= 5.0.

New: Batch writing of ini files is now possible.

And this isn't even everything, this is just the Linux section, and Tim's(and Epic's for that matter) issue with Linux has to do with development of games ON Linux, as in getting a user base of developers on it using UE4, but people are just to petty to be willing to do it.
Purple Library Guy May 6, 2020
People complaining about UE4 on Linux are just mostly mad about UT3 not being ported to Linux and can't just let it go and move on.
That seems fairly unlikely. And an unnecessarily provocative attitude.
Eike May 6, 2020
View PC info
  • Supporter Plus
People complaining about UE4 on Linux are just mostly mad about UT3 not being ported to Linux and can't just let it go and move on.

Not at all. I heard there's several games made with Unreal.
Beamboom May 6, 2020
it shows how Epic really feels about the Linux platform.

... Well, yeah: The same thing that 98% of other game developers "feel", I would suppose? That our segment is too small, so there's no ROI?
Luke_Nukem May 6, 2020
Argh. That bloody awful penguin looks out of place amongst all other logos. It needs a serious update.
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
The comments on this article are closed.