Hi there,
This is my first post here, so apologies if this isn’t the correct place to post this.
I’m a veteran Linux user, but a newb with Unreal Engine. A cloned and compiled UE4, then went on to create a default FPS project just to see if the build would be successful on my system (Debian 9) without any modifications. It was. However, I’m concerned about a few things.
First, is the result of the build. According to Epic Games, the ‘Linux Demos’ were built on Windows. What I noticed was that the game ‘SwingNinja’ had a small binary in ‘./SwingNinja/SwingNinja/Binaries/Linux/’ named ‘SwingNinja’ with a 47 MB file size. My project, however, had a “MyProject.sh” file with the following content:
#!/bin/sh
UE4_TRUE_SCRIPT_NAME=$(echo \"$0\" | xargs readlink -f)
UE4_PROJECT_ROOT=$(dirname "$UE4_TRUE_SCRIPT_NAME")
chmod +x "$UE4_PROJECT_ROOT/Engine/Binaries/Linux/UE4Game"
"$UE4_PROJECT_ROOT/Engine/Binaries/Linux/UE4Game" \"../../../MyProject/MyProject.uproject\" $@
If you look at the penultimate line, there’s a file called ‘UE4Game’ in the Linux binaries directory. This file is HUUUUGE, 752 MB in size.
So here are my questions:
- Is it possible to compile my games the same way as the ones compiled on Windows? I mean, with no “MyProject.sh” start file, with a proper binary as the main executable?
- Why is my compile size so big? All I did was I started a new project, the one that has the two chairs, the table, and a little floor. Is ~1GB of game data really necessary for such small project? And if no, what can I do to compile games in a small size like ‘SwingNinja’?
Cheers,
Yes. you can compile games the same way, and you can move projects you make in linux to windows. Which is added bonus for Linux users. You can backup any windows files by simply copying them. If dual booted.
Every ue4 project is uasset. So whatever you make can be used on anything win, mac, linx. You need xcode to build on mac though… I sometimes have issues with screen turning black when compiling shaders as I think this is nvidia graphics driver, or dx shader driver.
If you build a project for win on linux it still becomes an exe. We are all hoping to get ue4 in flatpack, and possibly convert our builds to flatpak. It’s been latest discussion in Linux dev for UE4. You dont get a Launcher, or marketplace on linux.
Swingninja is a very small game demo for ue4. there isnt much there at all in terms of 3d assets. Your UE4 game probably has starter content, meshes, and materials.
Kite demo is 24gb. Thats the largest game size ive seen. Expect your project to grow quickly with every little thing imported. some of the textures in kite demo are 164mb. This engine is capable of rendering that type of heavy load if it’s needed.
You can layer huge file sizes, and render the finest details. If you have a small hdd, and your going to keep using ue4. Plan to buy an external, or a new hdd.
Thanks but I don’t plan on installing Windows at the moment, and I’d be really interested if I could compile the games on Linux while still retaining the same overall structure as if it was compiled on Windows.
Yes, I believe the game had starter content. I will start a new empty/blank project today and import some assets from Blender, a program I’m very familiar with, to see what I can do in regards of compile size and time. Right now, as of that project I mentioned, 1 GB of game data took anywhere from 2.5 to 3.5 hours to compile/cook/build.
thats a long time to build. Ue4 is going to pack your game the same way in linux as windows. You must have a mac for xcode comppiling to ios. Swing ninja is a cool little game. enjoy