For direct access use https://forums.oldunreal.com
It's been quite a while since oldunreal had an overhaul, but we are moving to another server which require some updates and changes. The biggest change is the migration of our old reliable YaBB forum to phpBB. This system expects you to login with your username and old password known from YaBB.
If you experience any problems there is also the usual "password forgotten" function. Don't forget to clear your browser cache!
If you have any further concerns feel free to contact me: Smirftsch@oldunreal.com

Unreal Tournament Linux Tutorial

for Unreal & UnrealTournament
Post Reply
User avatar
omer666
OldUnreal Member
Posts: 18
Joined: Fri Dec 07, 2012 7:40 am

Unreal Tournament Linux Tutorial

Post by omer666 »

Hi,
I have noticed over the years that there is a lack of reliable documentation on how to install and run Unreal Tournament on a modern Linux system.
I'm not pretending that this tutorial is the one and only solution for installing UT, but it may be helpful. Also, I am not the only one to know these "tricks", but having them written down once more can't do wrong. I've been looking for some of these tips for quite some time, and all that I want is to spread them in order to save time and effort for Linux gamers.

So, to begin with, I will advise you to pick [url=http://liflg.org/?catid=6&gameid=51]liflg.org's Unreal Tournament installer[/url]. It's pretty quick and reliable. Some Linux distributions have packages for UT, you may try them, but be warned that some may be much altered. Here we will go for a clean, unaltered installation.

Pick the installer that goes with your version (standard or GOTY), and avoid installing S3 Textures because those provided on the installation disk carry some bugs (that were fortunately corrected later).
The installer will also update your UT version to 436. We will keep this version over 451 simply because it is much harder to connect to multiplayer servers with UTPG's version. It is even impossible to connect Multiplay servers with 451 (I tried and gave up). As already stated several times, v451 is deprecated for clients. Finally, you can use the installer as root, this will install the game in /usr/local/games/ut

Once you've got through this, you may also install all bonus packs with the installer provided on the same page as UT's installer.
The next thing to do is to install UTGLR renderer, which corrects several bugs, brings anisotropic filter and allows users to limit framerate (and thus, avoid having the game play way too fast). There are several unofficial Linux binaries of this on the net, one that works pretty well is located on a tiny website called [url=http://www.letsplayut.com/]Let's Play UT[/url]. Download "OpenGLDrv.so - Linux port of the UTGLR renderer", then go to ut/System, make a backup of stock OpenGLDrv.so and replace it with the one you just downloaded. In order to run it, you will also need libstdc++-3-libc6.2-2-2.10.0.so and libstdc++-libc6.2-2.so.3 from [url=http://www.swanson.ukfsn.org/loki/]Loki Compatibility Libraries[/url]. Once you've downloaded loki_compat_libs-1.5.tar.bz2, decompress those two libs only and copy them to ut/System.

Now that we updated the renderer, we need to get sound working. I read several things on the subject on the internet. On my computer (using ALSA+PulseAudio), two things are working quite well :
- Using padsp wrapper with the Generic Audio Subsystem
- Using osspd daemon with OpenAL

Using osspd with OpenAL is the best solution though, because the first one makes the game crash on some maps, and OpenAL sound provides much better quality than the other one. In order to use osspd (which must be included in your distribution if it's up-to-date enough), you have to start the daemon. With systems using systemd (Fedora or Arch Linux, for example), you just have to type

Code: Select all

# systemctl start osspd
to start it and then

Code: Select all

# systemctl enable osspd
to have it launched on startup. For other distributions, that may use sysVinit, upstart, etc., please refer to your official documentation, that should not be very complicated either.

Now all you need to do is to launch UT, no need to wrap anything. You may want to make a symbolic link to /usr/local/bin or whichever directory is in your path.
Make sure that sound is working, and then configure graphics using in-game dialog window. When you're finished, just quit. Now that the ~/.loki/ut directory is created, open ~/.loki/ut/System/UnrealTournament.ini and go to [OpenGLDrv.OpenGLRenderDevice] section. Then, add or modify the following lines :

Code: Select all

FrameRateLimit=90 => put here something inferior or equal to 100 in order to have consistent speed in-game, use a value that is different from your screen refresh rate to avoid tearing (if you're not using Vsync, of course)
MaxAnisotropy=4 => changes anisotropy level to whichever value you type
You can get a more complete documentation on [url=http://www.cwdohnal.com/utglr/settings.html]UTGLR website[/url].
Go to [ALAudio.ALAudioSubsystem], and modify the following lines :

Code: Select all

OutputRate=44100Hz
Channels=32
to get better sound quality.

Another thing you may want to grab is NPLoader, which is needed by several serious servers. Download v1.6b (which seems to be the most used) [url=http://utgl.unrealadmin.org/NPLoader/v16b/]here[/url] and decompress NPLoaderLL_v16b.so and NPLoaderLL_v16b.u to ut/System (NPLoaderLL_v16b.dll is useless on Linux).

Now you're ready to make some frags. Try to run the game and have a good old bot hunting before going online.

If you have some corrections or suggestions, or if something is not working, please write it down, so that we can have something as complete and accurate as possible. Thanks in advance ;-)
User avatar
Hellkeeper
Global Moderator
Posts: 3257
Joined: Wed May 21, 2008 8:24 pm
Location: France
Contact:

Re: Unreal Tournament Linux Tutorial

Post by Hellkeeper »

This is very nice info. We'll add this to the wiki as soon as it has been checked by the linux users here.
You must construct additional pylons.
User avatar
GreatEmerald
OldUnreal Member
Posts: 5347
Joined: Mon May 21, 2007 2:30 pm

Re: Unreal Tournament Linux Tutorial

Post by GreatEmerald »

Looks about right. Only a few notes:
  • This won't work with Unreal Anthology due to Loki's disc checking. I'm also pretty sure that there is no other way to get the Anthology working, other than taking the executables from the Loki installation. And at this point, I don't think they would care all that much if they were shared (you still can't play the game without all the game files, anyway). So it would be nice if someone could do that. Or make some alternative installer.
  • I never tried it, for obvious reasons, but at least in UT2004 you can replace the openal.so file with OpenAL-Soft version of it (it was intended to be a drop-in replacement). It should work with UT as well. In that case you should get better sound and won't have to change anything else in the system.
  • The "OutputRate=44100Hz" makes no sense, the Unreal Engine cannot interpret it as an integer when it has "Hz" at the end. The option is most likely ignored as invalid. I guess Smirf would have some additional information about this, too.
User avatar
omer666
OldUnreal Member
Posts: 18
Joined: Fri Dec 07, 2012 7:40 am

Re: Unreal Tournament Linux Tutorial

Post by omer666 »

Looks about right. Only a few notes:
  • I never tried it, for obvious reasons, but at least in UT2004 you can replace the openal.so file with OpenAL-Soft version of it (it was intended to be a drop-in replacement). It should work with UT as well. In that case you should get better sound and won't have to change anything else in the system.
Replacing libopenal-0.0.so with another version seems to make it segfault.
  • The "OutputRate=44100Hz" makes no sense, the Unreal Engine cannot interpret it as an integer when it has "Hz" at the end. The option is most likely ignored as invalid. I guess Smirf would have some additional information about this, too.
If I take the default UnrealTournament.ini which comes included with the game, I can read "OutputRate=22050Hz" so I guess that it may ignore the "Hz", but I don't know much more on the subject. I don't think Epic would have put something that doesn't work in default config files, but still, it could be. Seems to make a difference in-game, though.
Last edited by omer666 on Sun Dec 09, 2012 7:04 pm, edited 1 time in total.
User avatar
GreatEmerald
OldUnreal Member
Posts: 5347
Joined: Mon May 21, 2007 2:30 pm

Re: Unreal Tournament Linux Tutorial

Post by GreatEmerald »

Hmm, interesting. What do you get when you run the libopenal file through ldd and strings? Any possible indication about what version it could be?
User avatar
Smirftsch
Administrator
Posts: 8999
Joined: Wed Apr 29, 1998 10:00 pm
Location: NaPali
Contact:

Re: Unreal Tournament Linux Tutorial

Post by Smirftsch »

the Hz should be working already in UT, I think they used some kind of enumerator for this. OpenAL-Soft however I'm not surprised it's segfaulting, to much difference. All this could really need an update as well, hell take a look at this old libs required...
Nice howto, I have to say, really should find a place in the wiki.
Sometimes you have to lose a fight to win the war.
User avatar
omer666
OldUnreal Member
Posts: 18
Joined: Fri Dec 07, 2012 7:40 am

Re: Unreal Tournament Linux Tutorial

Post by omer666 »

Hmm, interesting. What do you get when you run the libopenal file through ldd and strings? Any possible indication about what version it could be?

Code: Select all

$ ldd libopenal-0.0.so 
linux-gate.so.1 (0xb7793000)
libm.so.6 => /usr/lib/libm.so.6 (0xb76a1000)
libdl.so.2 => /usr/lib/libdl.so.2 (0xb769c000)
libpthread.so.0 => /usr/lib/libpthread.so.0 (0xb7681000)
libc.so.6 => /usr/lib/libc.so.6 (0xb74d7000)
/usr/lib/ld-linux.so.2 (0xb7794000)
The strings output is way too long to post it here in its entirety (and that would be useless too), but I found some interesting things, such as

Code: Select all

$ strings libopenal-0.0.so | grep Loki
alLokiTest
alInitLoki
alFiniLoki
LokiTest
alLokiTest
Loki Software
and

Code: Select all

$ strings libopenal-0.0.so | grep loki
extensions/al_ext_loki.c
I also found  "0.0.4" mentioned, it's the only thing which looks like a version number that returned with the strings command.
Thus I think they used some custom build. I tried the version included in [url=http://www.swanson.ukfsn.org/loki/]loki_compat_libs-1.5.tar.bz2[/url] and there is absolutely no notable difference and they have the exact same size, so to me that's the same lib. Thus, building a newer openal library for UT would require to get the Loki-specific code to work with newer OpenAL, or to re-work ALAudio.so. This has been done here, but it still does not run with ALSA. Also I can't seem to make it work with v436, last time I used it was with v451.
Last edited by omer666 on Mon Dec 10, 2012 11:58 am, edited 1 time in total.
User avatar
GreatEmerald
OldUnreal Member
Posts: 5347
Joined: Mon May 21, 2007 2:30 pm

Re: Unreal Tournament Linux Tutorial

Post by GreatEmerald »

0.0.4, that's really old. It could be one of the very first releases. As a matter of fact:
OpenAL was originally developed in 2000 by Loki Software to help them in their business of porting Windows games to Linux.
So it could be the first release.
User avatar
omer666
OldUnreal Member
Posts: 18
Joined: Fri Dec 07, 2012 7:40 am

Re: Unreal Tournament Linux Tutorial

Post by omer666 »

Hm ok, I was not aware of this.
Post Reply

Return to “Linux-Board”