RSTT Documentation
Ranking Simulation Testing Tool
The package provides everything needed to simulate competition and generate synthetic match dataset. It contains ranking implementation (such as Elo and Glicko), popular tournament format (Single elimination bracket, round robin), many versus many game mode with automated outcome (score/result) generation methods. Additionaly different player model are available, including time varing strenght.
It is a framework, letting user developp and intergrate with ease their own models to test.
First Steps
- Installation Guide
Get RSTT
- Code Example
A Simple example gives you a good overview of what the package has to offers.
- Tutorials
Selection of notebook
Tutorials
Here is a collections of notebooks that helps learning the package functionnalities.
- RSTT Basics
RSTT fundamentals, from concepts to user interfaces
- Externaly defined system
Run simulation with externally defined rating system
- Research Example
A Complete research redo in RSTT
Concepts
The rstt package is build on 5 fundamental abstractions:
Player: who participate in games and are items in rankings. Different models are available including ones with ‘time varying skills’.
Match: which represent more the notion of an encounter than a game title with rules. It contains players grouped in teams to which a Score (the outcome) is assigned once.
Solver: Protocol that assign a score to a game instance. Usually implements probabilistic model based on player level.
Scheduler: Automated game generator procedure. Matchmaking and Competition are scheduler. The package provides standards like elimination bracket and round robin variations.
Ranking: Composed of a standing, a rating system, an inference method and a data update procedure, rankings estimate skill value of player.
Regarding ranking’s component:
Standing: is an hybrid container that implement a triplet relationship between (rank: int, player: Player, point: float) and behave similar to a List[Player ], Dict[Player, rank] and Dict[rank, Player]
RatingSystem: store rating computed by ranking for player
Inference: in charge of statistical inference.
Observer: manage the workflow from the observation that triggers the update of a ranking to the new computed ratings of players.
Table of Contents:
- RSTT API DOCUMENTATION
- rstt package
- Subpackages
- rstt.game package
- rstt.player package
- rstt.ranking package
- Subpackages
- rstt.ranking.observer package
- rstt.ranking.inferer package
- rstt.ranking.standard package
- Submodules
- rstt.ranking.datamodel module
- rstt.ranking.ranking module
- rstt.ranking.rating module
- rstt.ranking.standing module
- Module contents
- Subpackages
- rstt.scheduler package
- Subpackages
- rstt.scheduler.matchmaking package
- rstt.scheduler.tournament package
- Submodules
- rstt.scheduler.tournament.competition module
CompetitionCompetition.edit()Competition.games()Competition.generate_games()Competition.live()Competition.name()Competition.over()Competition.participants()Competition.play()Competition.play_games()Competition.registration()Competition.run()Competition.standing()Competition.start()Competition.started()Competition.top()Competition.trophies()
games()registration()top()
- rstt.scheduler.tournament.groups module
- rstt.scheduler.tournament.knockout module
- rstt.scheduler.tournament.random module
- rstt.scheduler.tournament.snake module
- rstt.scheduler.tournament.swissbracket module
- Module contents
CompetitionCompetition.edit()Competition.games()Competition.generate_games()Competition.live()Competition.name()Competition.over()Competition.participants()Competition.play()Competition.play_games()Competition.registration()Competition.run()Competition.standing()Competition.start()Competition.started()Competition.top()Competition.trophies()
DoubleEliminationBracketRandomRoundRoundRobinSingleEliminationBracketSnakeSwissBracketSwissRound
- Module contents
CompetitionCompetition.edit()Competition.games()Competition.generate_games()Competition.live()Competition.name()Competition.over()Competition.participants()Competition.play()Competition.play_games()Competition.registration()Competition.run()Competition.standing()Competition.start()Competition.started()Competition.top()Competition.trophies()
DoubleEliminationBracketRandomRoundRoundRobinSingleEliminationBracketSnakeSwissBracketSwissRound
- Subpackages
- rstt.solver package
- Submodules
- rstt.config module
- Example
DUEL_HISTORYEVENTSTANDING_DEFAULT_POINTSGAUSSIAN_PLAYER_MEAN_ARGSGAUSSIAN_PLAYER_MEAN_DIST()GAUSSIAN_PLAYER_MEAN_MEANGAUSSIAN_PLAYER_MEAN_SIGMAGAUSSIAN_PLAYER_SIGMA_ARGSGAUSSIAN_PLAYER_SIGMA_DIST()GAUSSIAN_PLAYER_SIGMA_MEANGAUSSIAN_PLAYER_SIGMA_SIGMALOGSOLVER_BASELOGSOLVER_LCMATCH_HISTORYPLAYER_DIST()PLAYER_DIST_ARGSPLAYER_GAUSSIAN_MUPLAYER_GAUSSIAN_SIGMA
- rstt.stypes module
- Module contents
BTRankingBasicEloBasicGlickoBasicOSBasicPlayerBetterWinBradleyTerryCoinFlipCompetitionCompetition.edit()Competition.games()Competition.generate_games()Competition.live()Competition.name()Competition.over()Competition.participants()Competition.play()Competition.play_games()Competition.registration()Competition.run()Competition.standing()Competition.start()Competition.started()Competition.top()Competition.trophies()
DoubleEliminationBracketDuelGaussianPlayerLogSolverMatchPlayerRandomRoundRankingRoundRobinSingleEliminationBracketSnakeStandingSuccessRankingSwissBracketSwissRoundWinRate
- Subpackages
- rstt package