For your information, the reason was almost certainly that you didn't set the current working directory correctly: the game really expects it to be the System directory.
You can set LD_LIBRARY_PATH to $GAMEDIR/System and run the executable from anywhere, but then the process would crash for other reasons (starting with missing INI files) -- again because the game searches for all its files relative to the current working directory, and does not change it to that of the executable (which would be System) automatically. It probably should, but it doesn't.
TL;DR, bash shell:
Code: Select all
(cd $GAMEDIR/System && ./UnrealLinux.bin)
Instead of:
TL;DR, freedesktop-compatible environment (GNOME, KDE, ...) .desktop file:
Code: Select all
[Desktop Entry]
Name=Unreal
Path=path/to/System
Exec=path/to/UnrealLinux.bin
Type=Application
Instead of:
Code: Select all
[Desktop Entry]
Name=Unreal
Exec=path/to/System/UnrealLinux.bin
Type=Application
It might give you a headache, so let me point this out already: It looks like the game copies argv[0] (the executable path) to a 32 bytes buffer somewhere, and most likely truncates it to 31 bytes for a cstring delimiter. When it uses it later, if the path is truncated (its length is more that 31 characters, if encoded in ASCII), it segfaults.
I have absolutely no expectation that this be fixed ever, but it's pretty confusing and difficult to track down.
Anyway, I recommend placing a link or symlink with a short name (say
unreal) somewhere on your PATH, then you'll be good to go. Even better is a tiny wrapper script that changes the working directory before executing the game:
Code: Select all
#!/usr/bin/env bash
cd path/to/System && exec ./UnrealLinux.bin
So then it becomes:
bash shell:
.desktop file:
Code: Select all
[Desktop Entry]
Name=Unreal
Exec=unreal
Type=Application
'Hope it helps the next guy.
By the way, I too use Fedora x86_64, and I confirm that you don't need to use setarch/linux32.