Search: Home | Atlas | Guides | Tests | Index | Recent Changes | Preferences | Login

EGenesis Ranking System

Conflict games are ranked using the eGenesis Ranking System, a cheat-resistant zero-sum ranking system. This system is described in a paper from eGenesis: http://www.egenesis.com/erank.rtf

Note that this system is largely of historical interest as the Tournament Ranking System is now used instead.

The content of this paper is reproduced below, with minor reformatting.


The eGenesis Ranking System
A highly cheat-resistant, zero-sum ranking system for multi player games

Andrew L. Tepper, BS
Josh M. Yelon, PhD

February 15, 2002

Problem: Ranking systems such as ELO are often used to rate chess players. These systems attempt to encourage players to compete against others of a similar skill level by making matches between an advanced player A, and a beginner player B be risky for A, and rewarding for B.

In the case that A wins:

In the case that B wins:

These systems are subject to cheating. If a player A wishes to boost his rank, he conspires with friends B,C, and D as follows:

The pattern is recursive: Players P1 thru PN-1 play each other to boost PN-1, who then loses to PN.

Solution: Each player in the system starts with a vector of 256 bits. Half of these bits, randomly selected, are set. A player’s rank is the number of bits set.

We number each bit 0-255. When a match occurs between two players, A and B, a series of 32 hash values in the range 0 to 255 are computed based on the player’s names such that the same two players always yield the same 32 values. For each value, we inspect that bit in both players’ vectors. When a bit is set in the loser’s vector, and clear in the winner’s vector, we transfer that bit: clear it in the loser’s vector, and set it in the winner’s. In all other cases we do nothing. This system forces players to play a wide variety of others to boost their rank.

Still, it’s possible to boost your rank by only playing beginners. To combat this, we modify the algorithm as follows: Each player starts with their bit vector clear. They also have 128 “reserve bits” which are stored simply as a count. A players rank is equal to the number of bits set in his vector, plus the number of bits in reserve. When a match occurs, bits are transferred as above, with the following additional rule: When one of the 32 values’ bits are clear in both the winner’s and loser’s vectors, a bit is attempted to be transferred from the winner’s reserve to a specially selected clear bit in his own vector. This specially selected bit is based on a different hash function that again incorporates both player’s names. The loser’s vector and reserve are untouched. In this way, someone who only plays beginners doesn’t affect his own rank, but may boost the beginner’s rank.

Practical Applications: We designed this ranking system to be used in massively multiplayer online games such as A Tale in the Desert (http://www.ataleinthedesert.com). There are some additional considerations to take into account.

First, beginners should have the sense that they are making progress when they first start playing. To resolve this, we report everyone’s rank as simply the number of bits set in their vector, ignoring their reserve bit count.

Second, friends like to play each other repeatedly, and should see progress on more than just the first game. To resolve this, instead of attempting transfers for all 32 bits, we randomly select 8 of the bits to transfer. In subsequent matches won by the same person, there are fewer bits to transfer, and eventually this number dwindles to none, but it allows for friends to play each other repeatedly and still see some progress.


(See also: tests)

Home | Atlas | Guides | Tests | Index | Recent Changes | Preferences | Login
You must log in to edit pages. | View other revisions
Last edited December 13, 2003 2:23 pm by Alethe (diff)
Search: