Common Testing

From Elite Wiki
Revision as of 20:48, 29 April 2026 by Hiran (talk | contribs) (Comparison)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
FPS report.png

Here are some tests that can be performed regardless of the operating system.

Performance Test

The main functionality in Oolite is to process the "game loop". This reads user input, processes the world including running all your OXP/OXZs, and then renders out the world view. For meaningful tests you need to have a repeatable base. A good metric for performance is the number of frames per second (FPS) that Oolite can process.

If you want to check performance, you must check with FPS uncapped, otherwise you are always getting v-sync FPS, which is usually a low number like 60 for a 60Hz monitor, 144 for a 144Hz one etc.

Add the "animation_timer_interval" = x; in your OoliteDefaults.plist, where x is 1.0/Maximum FPS You Want To Achieve. I usually set it to 0.001 which tells Oolite to "go for 1000 FPS if you can". Then you can compare actual performance between builds.

Also, disable v-sync to have uncapped FPS. You do this by setting the OoliteDefaults.plist key "v-sync" = NO;.

When comparing the performance of builds, always check with more or less the same number of entities in the system. If in one case you get 250 entities and in the other you get 70, then results may be biased (it takes much more processing power to manage the 250). Try to compare instances where the two system entity numbers are as close as possible. Shift+F shows you this info in the Oolite "Test Release" builds. Phkb wrote an expansion for that: CustomPopulator.oxp.zip. And as other OXP/OXZs may inhibit the build performance, make sure this is the only one you are running on top of a Vanilla game.

After starting Oolite, press Shift-F to show the frame rate on the screen, then fly around.

Example

Here in ASCII Plist format:

{
    "Jameson-humbletrash" = "-29624";
    "animation_timer_interval" = "0.001";
    "debug-settings-override" = {
    };
    "gamma-value" = 1;
    "v-sync" = no;
    "volume_control" = "0.5";
    "window_height" = 1043;
    "window_width" = 1920;
}


Or the same as XML:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//GNUstep//DTD plist 0.9//EN" "http://www.gnustep.org/plist-0_9.xml">
<plist version="0.9">
<dict>
    <key>NSGlobalDomain</key>
    <dict>
    </dict>
    <key>oolite</key>
    <dict>
	<key>Jameson-humbletrash</key>
	<integer>-29624</integer>
	<key>animation_timer_interval</key>
	<real>0.001</real>
	<key>gamma-value</key>
	<real>1</real>
	<key>v-sync</key>
	<false/>
	<key>volume_control</key>
	<real>0.5</real>
	<key>window_height</key>
	<integer>1043</integer>
	<key>window_width</key>
	<integer>1920</integer>
    </dict>
</dict>
</plist>

Note

More of the configuration file's settings are documented on the Hidden Settings in Oolite wiki page.

Comparison

Now we need to compare several such tests in order to see patterns. To facilitate this and also communicate to others, start filling in a table like this:

Caption text
Oolite Version/Build/package Installed expansions Amount of entities screen/window size perceived FPS
1.90/debug/.run CustomPopulator 360 800x600 70
1.92/test/appimage CustomPopulator 358 1024x768 35
1.93/flatpak/release CustomPopulator 360 1233x700 40

Links