One of the services IAGO will seek to provide is a central location to record games played (providing this information for statistical analysis and perhaps providing our own) and a central authority for game ratings/rankings. This would allow for pan-clubhouse ladders and tournaments. This document attempts to outline requirements for such a service.
-
Game records shall contain at least the following items:
-
Roster of required tags
-
List of moves submitted
-
Game records may also provide:
-
Customized tags specific to a site, event, or game
-
Editorial marks and comments
-
General chat transcripts
-
Additional information regarding scores and other special conditions as required by the rules
-
Records shall only be accepted from trusted submitters.
-
-
It has built-in methods for validation and transformation.
-
It also makes automated parsing simpler since
XML processing tools are widely available and supported.
-
Having records in a standard
XML format means that PGN or any other style report could be generated at will.
-
It allows a more general approach to move representation that is (hopefully) game-agnostic.
-
Records shall be kept indefinitely and remain freely available to the public.
-
Participating sites register acceptable domains with IAGO.
-
When new game records are available, the site sends a “ping” to the records server via http, containing the
URL of the service's
RSS feed.
-
Assuming the domain of the
URL matches one registered with IAGO, the records server fetches the
RSS feed.
-
The
RSS feed must contain a list of game IDs (alphanumeric) and an associated
URL that returns the appropriate game record.
-
For every ID number IAGO does not have a record for, it goes to the associated
URL, fetches the record, and processes it.
-
A system should probably be implemented that would allow site administrators to request the removal of an erroneous record.
-
An auditing system shall be implemented that allows auditors to review as-yet unexamined entries for any errors or other issues.
Everybody's ratings would be regenerated for a particular game whenever a new game record is added. The total regeneration allows for auditors to modify any record in the system and have the ratings reflect that. Such a generation could be done on a daily basis if processing time became an issue. The system would simply take each record for a specific game in “Game End” order and calculate ratings. This would also allow us to completely change or add new rating systems accurately.
I propose the following ranking system as the default. (See old revisions of this document for a different approach.)
The rating system should allow for more than 2 players. While Microsoft's TrueSkill is pretty interesting, I am personally not in a place to figure out how to implement it. I think ELO can be extended to allow for more than 2 participants. A game with 4 players, for example, would be processed as a 6 separate duels (A over B, C, and D; B over C and D; C over D). The resulting ratings are then averaged and posted. Here are some 4-player examples:
Start:
---
- 1200
- 1200
- 1200
- 1200
Final:
---
- 1216
- 1205.33333333333
- 1194.66666666667
- 1184
Deltas:
---
- 16
- 5.33333333333326
- -5.33333333333326
- -16
Start:
---
- 1200
- 1400
- 1400
- 1150
Final:
---
- 1220.77899451613
- 1399.27397760856
- 1388.60731094189
- 1141.33971693341
Deltas:
---
- 20.7789945161337
- -0.726022391439074
- -11.3926890581058
- -8.66028306658882
Discussion
Can we break this up into phases doing the rankings first, and so on?
I'm not sure how. All the math depends on having game records, and once you have the game records, the rest is quite trivial. The first part is the hardest.