Win32 prebuilt libraries

TL;DR I need the prebuilt libraries that ship in the Engine/Binaries/Win64 to be compiled for Win32.

I spent last night getting the editor to build for Win32. It seems as though the Win32 platform was neglected as I had to resolve multiple build and link errors, even had to find win32 libraries for the p4 api from an external source as none shipped with the engine. Now the engine builds for Win32 but it needs the binaries that come in Engine/Binaries/Win64 to be built for Win32 otherwise it fails to start (the x64 ones don’t seem compatible). I searched around the code to see if I could build the Win32 versions but couldn’t find it. Could someone at Epic build these and put them on github? Or if I can build them myself could you point me to where I can build them from?

The reason I need to build the editor for win32 is because I have integrated Havok Complete for prototyping, unfortunately they only provide access to their win32 prebuilt libraries.

Thank you,
-Jacob

We don’t officially support building the Editor in Win32. That being said, we also don’t explicitly prevent Win32 builds, but as you found out the hard way it may take a bit of tweaking.

Which pre-built binaries in particular are you blocked by? We really only have third-party dependencies on Github for which you may or may not find 32-bit versions on your own.

It turned out the reason the application was failing to start was because the fbxsdk-2013.3 dll I was using was compiled for x64. I switched it out for x86 version and the editor starts to load but it is currently getting runtime crashes that I am working through now.

On git hub there are two required zip files that contain assets and prebuilt binaries. If you navigate to Required_1of2.zip/Engine/Binaries/Win64 you will notice there are multiple executables and dlls that come in that folder. Ex: ShaderCompilerWorker.exe, ShaderCompilerWorker-Core.dll, UnrealLightmass.exe UnrealLightmass-core.dll, AgentInterface.dll, Unrealpak.exe. I won’t list all of them here but there are some examples. The zip file comes with Mac version and win64 versions but no Win32. I assumed those dll’s were delay loaded so if I tried to copy them to the win32 directory it would fail. I suspect the source for ShaderCompiler, UnrealLightmass, and UnrealPak are internal to epic which is why you shipped the binaries in the zip file?

I will respond back once I work through the runtime crashes, but I suspect once I resolve them, it is going to fail when it tries to compile the shaders since Win32 doesn’t know about the shadercompilerworker.

Wow I don’t know how I missed it but Shadercompilerworker, unreallightmass, and unrealpak are part of the project >.< They error out when trying to build for win32 because it appears its trying to use a Win64 target, but once I work through those errors I should be good to go. Thanks for your time.

Yep, all code should be included. We do not ship any binaries without source, except for maybe some third-party dependencies that we don’t have or own the code for. ShaderCompileWorker, UnrealLightmass, AgentInterface and UnrealPak are all part of our tool suite.

When trying to build the Editor, the most common errors you will likely run into are struct alignment errors when passing such structs by value in various functions. Those should be easy to fix by either removing the alignment (may have negative performance impact) or passing them by reference.

We generally do not consider building the Editor in Win32, because of the limited amount of memory that is addressable. By the time the Editor is started up, you don’t have a whole lot of RAM left to actually get any work done.

That being said, if you succeed in building for Win32 and have a concise list of changes that need to be made, I would be interested in taking a look at it. Perhaps we can make some of those changes on our end, so even though we won’t support Win32 Editor, it might make it easier to get it to work if desired.

You could email me the diff’s (max.preussner@epicgames.com) or upload them somewhere. Thanks!

Alright I finally got it up and running in 32 bit. I would be happy to share the changes I had to make. I use p4 for my source control so it’s easy to go back and get a concise list. What would be the best way to share them with you?