logo
Main

Forums

Downloads

Unreal-Netiquette

Donate for Oldunreal:
Donate

borderline

Links to our wiki:
Wiki

Walkthrough

Links

Tutorials

Unreal Reference

Usermaps

borderline

Contact us:
Submit News
Page Index Toggle Pages: 1 Send TopicPrint
Normal Topic Unreal Tournament Linux Tutorial (Read 15484 times)
omer666
New Member
*
Offline


Oldunreal member

Posts: 18
Location: Caen, Lower Normandy, France
Joined: Dec 7th, 2012
Gender: Male
Unreal Tournament Linux Tutorial
Dec 9th, 2012 at 6:12pm
Print Post  
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 liflg.org's Unreal Tournament installer. 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 Let's Play UT. 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 Loki Compatibility Libraries. 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 UTGLR website.
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) here 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 Wink
  
Back to top
 
IP Logged
 
Hellkeeper
Global Moderator
*****
Offline


Soulless Automaton

Posts: 2815
Location: France
Joined: May 21st, 2008
Gender: Male
Re: Unreal Tournament Linux Tutorial
Reply #1 - Dec 9th, 2012 at 6:16pm
Print Post  
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.
Back to top
WWW  
IP Logged
 
GreatEmerald
Oldunreal MasterPoster
*
Offline


The Great Emerald

Posts: 5361
Location: Vilnius, Lithuania
Joined: May 21st, 2007
Gender: Male
Re: Unreal Tournament Linux Tutorial
Reply #2 - Dec 9th, 2012 at 6:39pm
Print Post  
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.
  
Back to top
WWW  
IP Logged
 
omer666
New Member
*
Offline


Oldunreal member

Posts: 18
Location: Caen, Lower Normandy, France
Joined: Dec 7th, 2012
Gender: Male
Re: Unreal Tournament Linux Tutorial
Reply #3 - Dec 9th, 2012 at 7:03pm
Print Post  
GreatEmerald wrote on Dec 9th, 2012 at 6:39pm:
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.

GreatEmerald wrote on Dec 9th, 2012 at 6:39pm:
  • 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.
  
Back to top
 
IP Logged
 
GreatEmerald
Oldunreal MasterPoster
*
Offline


The Great Emerald

Posts: 5361
Location: Vilnius, Lithuania
Joined: May 21st, 2007
Gender: Male
Re: Unreal Tournament Linux Tutorial
Reply #4 - Dec 9th, 2012 at 9:13pm
Print Post  
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?
  
Back to top
WWW  
IP Logged
 
Smirftsch
Forum Administrator
*****
Online



Posts: 7936
Location: at home
Joined: Apr 30th, 1998
Gender: Male
Re: Unreal Tournament Linux Tutorial
Reply #5 - Dec 10th, 2012 at 6:44am
Print Post  
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.
Back to top
WWWICQ  
IP Logged
 
omer666
New Member
*
Offline


Oldunreal member

Posts: 18
Location: Caen, Lower Normandy, France
Joined: Dec 7th, 2012
Gender: Male
Re: Unreal Tournament Linux Tutorial
Reply #6 - Dec 10th, 2012 at 11:58am
Print Post  
GreatEmerald wrote on Dec 9th, 2012 at 9:13pm:
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 loki_compat_libs-1.5.tar.bz2 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.
  
Back to top
 
IP Logged
 
GreatEmerald
Oldunreal MasterPoster
*
Offline


The Great Emerald

Posts: 5361
Location: Vilnius, Lithuania
Joined: May 21st, 2007
Gender: Male
Re: Unreal Tournament Linux Tutorial
Reply #7 - Dec 10th, 2012 at 3:09pm
Print Post  
0.0.4, that's really old. It could be one of the very first releases. As a matter of fact:
Quote:
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.
  
Back to top
WWW  
IP Logged
 
omer666
New Member
*
Offline


Oldunreal member

Posts: 18
Location: Caen, Lower Normandy, France
Joined: Dec 7th, 2012
Gender: Male
Re: Unreal Tournament Linux Tutorial
Reply #8 - Dec 10th, 2012 at 4:47pm
Print Post  
Hm ok, I was not aware of this.
  
Back to top
 
IP Logged
 
Page Index Toggle Pages: 1
Send TopicPrint
Bookmarks: del.icio.us Digg Facebook Google Google+ Linked in reddit StumbleUpon Twitter Yahoo