| Program name | CoolRank |
| Current version | 1.3 |
| Debut | February 2005 |
| Language | Perl |
| Platform | Any |
Download (15kb)
CoolRank stands for Countdown Online League Rank, and it's the script I wrote to generate the ratings. It's not really tied to Countdown in particular, and you could use it to run any ratings system. With some simple modification, it could take into account winning margins or whatever details are relevant to the system.
Being Perl, the program and the source are one and the same. The downside of that is that you will need an implementation of Perl to run the program; Active Perl is a good option under Windows.
Like all the best programs, it takes command line arguments. They may seem imposing but really they are quite straightforward. They must appear in this order:
- <Settings file> - The settings file must containing the following settings in any order, in the format <parameter name> = <value>:
- ExceptionalResultRatio - If a player wins a game when their rating times this ratio is smaller than their opponent's rating, the result is marked as "exceptional". This has various effects. 1.3 is a reasonable default, or set it to something huge if you don't want exceptional results marked.
- GroupSize - The number of people in each highlighted group; groups serve to divide players into rough leagues. Set this to 0 for no groups.
- LoserMult - Combines with WinnerMult to determine the scale of points change after a victory or loss. Good start values are 0.25 and 0.15. Smaller values tend to make the league more stable, while larger values allow players to rise (and fall) more rapidly.
- MinimumGamesToBeRanked - Pretty self-explanatory. 3 or 4 is a reasonable starting value.
- VoteScale - The ratings are multiplied by this constant, just to make the numbers larger (rating people from 0 to 1 seems strangely unpopular). 500 is a decent start.
- WinnerMult - see LoserMult
@name
where name is the name of a player who has asked not to appear in the ratings. This player is still used for internal calculations if they appear in the results list (see later), but will not appear in any program output. This allows the ratings to remain consistent in the light of player withdrawals or bans. - <Results file> - This file holds the results that the program will work from. Each result is newline separated, and appears in the format
winner name#loser name
White space between the names and the hash, or at the end of the line, is ignored. This file can also include comment lines, which begin with a double forward slash (//). You are humbly advised to use this feature. - <Last league file> - This file holds the status of the league at the last update. The program reads from this file to track player progress between results. If the file does not exist, the program doesn't attempt player tracking. The format is the same as that of the <Output league file>, by no coincidence. The user is responsible for getting these files to work in tandem - a batch file makes it easy.
- <Output results file> - This file is mainly used for internal tracking - see the <last league file>.
- <HTML output file> - This is the outputted league in full. The outputted file is only an HTML fragment, so you will need to wrap it in a full page template to make use of it. Note that the program will happily overwrite any file currently residing in the specified location, so be careful.
- Optional: <Back-up directory:> - A directory to which the program copies the current results file (with datestamp) each time it is run.
- Optional: <Trophies file> - This file contains a list of past competitions won by the players in the list. Those that have won such a trophy have a small trophy icon (trophy.gif) after their name of the ratings table. Each trophy in this file is newline separated, and in the format <tournament name>#<winner name>#<relevant URL>. It's up to you what a "relevant URL" is; the trophy image will be a link to said URL. Note that this part is highly whitespace sensitive, so don't add any unnecessary whitespace either side of the hashes.
Despite the apparently vast number of files that need to be set up, only settings.txt and results.txt need actually contain anything in order for the program to run. The names of the various icons the program uses are fixed, although you could easily make them command line parameters if you really wanted to.
Hopefully this will demystify the ratings system I use, and maybe someone will find another use for the program.