UT2003 Benchmarking in Linux
Flyby Benchmark
by Patrick aka. Acid-Phreak
Date: October 17, 2002
Introduction:
Unless you have been living under a rock, or are not a game
player, you probably have heard about Unreal
Tournament 2003 which was recently released by Epic
Games. A much anticipated sequel to the original Unreal Tournament, it
brings us a step closer to having some good benchmarking tools in the Linux
environment. Yep, that's right, a hardcore game for the Linux platform that
runs natively without the aid of Wine or some other emulator. Sure there is
the age old Quake III for Linux which offers great game play, but UT2003 takes
game playing on Linux to the next level. With the new tweaked Warfare engine
and Karma physics
this game definitely attempts to take it to the next level.
Of course this comes at a cost to us Linux users. No support
from the manufacture. But hey who needs it right?
Enough of the bickering, the real reason you came here. Benchmarking
UT2003 under Linux.
Script Requirements:
Failure to comply will render this script useless!
ALSO, REMEMBER TO BACKUP YOUR ORGINAL UT2003.INI FILE IF YOU
WISH TO USE IT AGAIN!
Details:
Like most games, UT2003 offers users a way for benchmarking
their system performance. In the Linux version, there are several shell scripts
you can run to help aid in benchmarking your system. Now if your running the
original UT2003 demo release with no patches installed you are probably wondering
where the heck the benchmark program is. Well in order to benchmark your system,
you must first download
and install the demo patch, v1080. This will address some issues including
the benchmarking scripts. Of course I installed the patch and benchmarking
still did not work without a little hacking of the benchmark scripts. Still,
the scripts were very cumbersome to use since any real benchmarking needs
to happen with different quality and resolution settings which the supplied
script do not do. Of course obtaining this effect came from manually making
the changes in the game and exiting and running the scripts. Not very user
friendly.
So I set out to write a script to automate this process. I first
checked the doc's that come with the downloaded game. The README file had
zero on benchmarking. Next I turned to the supplied scripts which were of
great use. After reading over those scripts and understanding (as best I could)
what was going on, I took to determining what settings were "High Quality"
and which were "Medium Quality" and which were "Low Quality".
Please remember the settings I came up with are based on my guesses and are
just that, guesses. I simply configured the settings in the game and looked
at the resulting UT2003.ini file for the changes. After identifying what changes
in the INI file effected game play, I set out to write script that would modify
that INI file on the fly.
Below is the areas of the UT2003.ini file I chose to modify
to get the desired results.
[SDLDrv.SDLClient]
FullscreenViewportX=800
FullscreenViewportY=600
MinDesiredFrameRate=0.000000
TextureDetailInterface=Normal
TextureDetailTerrain=Normal
TextureDetailWeaponSkin=Normal
TextureDetailPlayerSkin=Normal
TextureDetailWorld=Normal
TextureDetailRenderMap=Normal
TextureDetailLightmap=Normal
[Engine.LevelInfo]
PhysicsDetailLevel=PDL_Medium
DecalStayScale=0.000000
[Engine.NullRenderDevice]
HighDetailActors=True
SuperHighDetailActors=False
Of course these sections are only snippets of the complete INI
file. If you want to know what the different settings are then check out the
source of the script. Ok now is where the magic comes from. The script searches
through the INI file and makes the changes based on what you tell it to do. This is all accomplished by simply running the program and supply it one parameter,
the quality setting.
0 = High Quality
1 = Medium Quality
2 = Low Quality
Example: './ut2003_bench.pl 0' <--Will run the script with High Quality
settings. If the script fails to execute check to see that its executable.
Heck, do a 'chmod 700 ut2003_bench.pl' and make sure its executable. If that
fails try the following..
perl ut2003_bench.pl 0
It's important that you run this script as the user who installed UT2003.
This is because it uses current users $HOME environment variable to put together
the locations of the files. Now this script will then run and do its modifications
to the UT2003.ini file and start the benchmarking program. It's also important
to note that this script runs at several different predefined display resolutions.
They are...
"1600x1200"
"1280x1024"
"1024x768"
If you want to add or remove any resolutions see the README.txt file for
details on making those changes. Chances are if your running Linux you already
know how to hack a couple variables. More details can be found in the README.txt
file.
More then likely, you will see a bunch of debug output to your terminal window.
This is not caused by the script, but by the game itself and is nothing to
be worried about. Unless you see something like 'core dump' or 'segmentation
fault'. Then you have other more serious problems. :)
Once the script completes it will generate a log file you can view and see
your results. This file is located....
$HOME/.ut2003/Benchmarks
where $HOME is the home directory of the current logged in user. In the benchmarks
folder you will see a file called lowframerate.log. This log will contain
the description of the benchmark test that was run and what the scores and
FPS was. Here is a excerpt from one....
dm-antalus
8.035609 / 11.522112 / 30.955606 fps
Score = 11.527470
dm-asbestos
4.333949 / 19.523832 / 76.099930 fps
Score = 19.533615
ctf-citadel
8.888351 / 17.856878 / 51.519123 fps
Score = 17.870277
Now what does this mean? The first bit of text is the name of the flyby scene
that was used. The first number you see is the Minimum frame rate achieved
during the benchmark. Second is the average frame rate achieved and the third
number is the Maximum frame rate achieved. And lastly the Score is the total
overall score or final result.
Of course the way the script runs the benchmarks is reflected in the lowframerate.log
file. Since the script starts at "1600x"1200", the first three
scores are for running at "1600x"1200" at the selected quality
setting. And then the next series of scores is running at "1280x1024"
and so on. So if you run the script and it completes, your will see this in
the lowframerate.log file...
dm-antalus
8.035609 / 11.522112 / 30.955606 fps
Score = 11.527470
dm-asbestos
4.333949 / 19.523832 / 76.099930 fps
Score = 19.533615
ctf-citadel
8.888351 / 17.856878 / 51.519123 fps
Score = 17.870277
dm-antalus
11.738363 / 17.022203 / 47.024982 fps
Score = 17.030167
dm-asbestos
6.159682 / 28.214676 / 79.436134 fps
Score = 28.228594
ctf-citadel
12.225863 / 25.679192 / 113.804970 fps
Score = 25.700668
dm-antalus
15.525842 / 26.377512 / 90.346535 fps
Score = 26.388552
dm-asbestos
9.693030 / 44.177204 / 147.057343 fps
Score = 44.106686
ctf-citadel
17.860342 / 39.413754 / 149.096939 fps
Score = 39.393105
Conclusion: There you have it. Good luck testing out your system.
Oh yeah, you can download the benchmark script here.