/osu-performance

Primary LanguageCGNU Affero General Public License v3.0AGPL-3.0

osu!performance

This is the program computing "performance points" (pp), which are used as the official player ranking metric in osu!.

Compiling

osu!performance runs on Windows and Linux. It should also compile and run on Mac OS X, but this has not been tested. The build environment is set up using CMake as follows.

Windows

Open the command line and navigate to the root folder of this repository.

c:\osu-performance> mkdir Build
c:\osu-performance> cd Build
c:\osu-performance\Build> cmake ..

Now the Build folder should contain a Visual Studio project for building the program.

Linux

On Linux you need to install the MariaDB MySQL connector, cURL, and clang packages. Afterwards, run a terminal of your choice.

/osu-performance$ mkdir Build
/osu-performance$ cd Build
/osu-performance/Build$ cmake ..
/osu-performance/Build$ make

Usage

After compilation, an executable named Client_OS is placed in the Bin folder. It accepts the following arguments:

  • -m <id>

    This option controls the gamemode for which pp is computed. id can have the following values:

    Standard Taiko Catch the beat osu!mania
    0 1 2 3
  • -r

    If this option is present, then the pp values of all existing scores are re-computed. Otherwise, only new pp values are computed.

  • -f

    If this option is not present, then a child process is created, which starts this program a second time as a child process with the same options and -f enabled additionally. Whenever this child process terminates, after 5 seconds it is restarted. The purpose of this option is to ensure, that crashes and errors do not interrupt the computation of pp values.

Configuration options beyond these parameters, such as the MySQL server configuration, can be adjusted in Bin/Data/Config.cfg.

Licence

osu-performance is licensed under AGPL version 3 or later. Please see the licence file for more information. tl;dr if you want to use any code, design or artwork from this project, attribute it and make your project open source under the same licence.