After installing and running Unreal Tournament (UT99) using Wine, I thought it would be good to try running a Linux-native version of the game.
Thankfully, this is reasonably easy, and seems very stable - more so than running under Wine.
Before you start, you’ll need the original Unreal Tournament game files, most easily obtainable by installing the Steam version using Wine.
As per the previous part, I’m using Debian Sid, so these instruction may need some manual conversion to your distribution of choice, and you’ll need to enable multi-arch (UT is 32-bit only).
To begin, we’ll use
game-data-packagerto build Debian packages, which also includes scripts to download and apply the latest patch. Game Data Packager is really super cool, and can build
debpackages for loads of games. It’s worked pretty well for me getting Freespace 2 running as well for example. Install it now:
$ sudo aptitude install game-data-packager game-data-packager-runtime
Now, we’ll build the shared data (maps, textures, music, etc) and the actual executable binary packages. Pass the path to your UT install (here, I’m passing it the path to the Steam install I did in Part One):
$ game-data-packager ut99 --everything ~/.wine/ut/drive_c/Steam/steamapps/common/Unreal\ Torunament/ --binary-executables
Once this is done, you’ll have three packages you can install, and they can be installed using
$ sudo dpkg -i unreal-ut99-shared-data_200+58_all.deb $ sudo dpkg -i ut99_451+58_i386.deb $ sudo dpkg -i ut99-data_451+58_all.deb
- The game depends on SDL 1.2, and will also a require 32-bit PulseAudio OSS
pre-load library for sound to work:
bash $ sudo aptitude install libsdl1.2debian:i386 libpulsedsp:i386
As of this writing, there’s a long-outstanding bug with the
padspscript which can’t launch 32-bit applications. The the bug report includes a suggested fix:
$ sudo cp /usr/bin/padsp /usr/bin/padsp32 $ sudo sed -i 's/\/x86_64-linux-gnu\/pulseaudio\//\/i386-linux-gnu\/pulseaudio\//g' /usr/bin/padsp32
This provides a new 32-bit capable
padsp32pre-loader command, which we’ll use to launch the game.
Now, you’ll need to attempt running the game. Don’t worry if it fails or likely doesn’t have sound at the moment. This step is primarily to seed the
~/.loki/utdirectory, where the local game files will be placed, which we’ll modify shortly. Launch with the
padsp32command as follows:
$ padsp32 ut99
Quit the game if it worked, and look at the contents of
~/.loki/ut- you should now see a familiar-looking
Systemdirectory layout and contents.
- Now, lets get a newer OpenGL renderer, with better support for things like
decals and detail textures, hugely improving the graphics of the game.
Download the UTGLR renderer from letsplayut.com
(mirror download) and place it in
~/.loki/ut/System. You’ll need to remove the current symlink first:
bash $ unlink ~/.loki/ut/System/OpenGLDrv.so
~/.loki/ut/System/UnrealTournament.inito make use of this renderer, and while we’re here, change the audio device:
properties [Engine.Engine] GameRenderDevice=OpenGLDrv.OpenGLRenderDevice RenderDevice=OpenGLDrv.OpenGLRenderDevice AudioDevice=Audio.GenericAudioSubsystem
- Now, run the game again with
padsp32 ut99, hopefully there’s sound, and a better looking game!
- Refer to the UTGLR Settings page for information about other rendering options you might tweak, and also refer to part one for setting the frame rate and limit if desired.
That’s it. You should hopefully have a fully Linux-native working Unreal Tournament installation. It’s also fully compatible with all multiplayer servers I tried.
You can also install mods and maps by installing them under the
directory - just create
Music directories under there,
and extract maps and mods to the appropriate places, and they’ll show up
I’d like to perhaps investigate writing some simple scripts to manage installing maps and things into the appropriate places, to make life easier and UT on Linux even more appealing.
For some additional info in case you have any other issues, check some of the points on the PC Gaming Wiki.