Skip to main content

Multiplayer Rating System. No Friction.

Project description

Multiplayer Rating System. No Friction.

A faster and open license asymmetric multi-team, multiplayer rating system comparable to TrueSkill.

Stand With Ukraine

Tests codecov Documentation Status DOI badge

Description

PyPI - Python Version Conda (channel only) PyPI - Implementation

Discord

In the multifaceted world of online gaming, an accurate multiplayer rating system plays a crucial role. A multiplayer rating system measures and compares players' skill levels in competitive games to ensure balanced match-making, boosting overall gaming experiences. Currently, TrueSkill by Microsoft Research is a notable rating system, but gaming communities are yearning for faster, more adaptable alternatives.

Here are some, but not all, of the reasons you should drop TrueSkill and bury Elo once and for all:

  • Multiplayer.
  • Multifaction.
  • Asymmetric faction size.
  • Predict Win, Draw and Rank Outcomes.
  • 150% faster than TrueSkill.
  • 100% Pure Python.
  • 100% Test Coverage.
  • CPython and PyPy Support.
  • 5 Separate Models.
  • Fine-grained control of mathematical constants.
  • Open License
  • Up to 7% more accurate than TrueSkill.

Installation

pip install openskill

Usage

The official documentation is hosted here. Please refer to it for details on how to use this library.

Limited Example

>>> from openskill.models import PlackettLuce
>>> model = PlackettLuce()
>>> model.rating()
PlackettLuceRating(mu=25.0, sigma=8.333333333333334)
>>> r = model.rating
>>> [[a, b], [x, y]] = [[r(), r()], [r(), r()]]
>>> [[a, b], [x, y]] = model.rate([[a, b], [x, y]])
>>> a
PlackettLuceRating(mu=26.964294621803063, sigma=8.177962604389991)
>>> x
PlackettLuceRating(mu=23.035705378196937, sigma=8.177962604389991)
>>> (a == b) and (x == y)
True

Support

If you're struggling with any of the concepts, please search the discussions section to see if your question has already been answered. If you can't find an answer, please open a new discussion and we'll try to help you out. You can also get help from the official Discord Server. If you have a feature request, or want to report a bug please create a new issue if one already doesn't exist.

References

This project is originally based off the openskill.js package. All of the Weng-Lin models are based off the work in this wonderful paper or are the derivatives of algorithms found in it.

  • Julia Ibstedt, Elsa Rådahl, Erik Turesson, and Magdalena vande Voorde. Application and further development of trueskill™ ranking in sports. 2019.
  • Ruby C. Weng and Chih-Jen Lin. A bayesian approximation method for online ranking. Journal of Machine Learning Research, 12(9):267–300, 2011. URL: http://jmlr.org/papers/v12/weng11a.html.

Implementations in other Languages

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

openskill-5.1.1.tar.gz (49.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

openskill-5.1.1-py3-none-any.whl (46.5 kB view details)

Uploaded Python 3

File details

Details for the file openskill-5.1.1.tar.gz.

File metadata

  • Download URL: openskill-5.1.1.tar.gz
  • Upload date:
  • Size: 49.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for openskill-5.1.1.tar.gz
Algorithm Hash digest
SHA256 e38d5a96f31edfa6d93383aaef3a2920584e6da7a719ae728b7133c75f4cada7
MD5 8f5754da6280eb26cea443e5d4015409
BLAKE2b-256 8eea2b5b9ad853970e47e39f2c6386f5aa70f0977b205a3fabf68cbce1145a79

See more details on using hashes here.

File details

Details for the file openskill-5.1.1-py3-none-any.whl.

File metadata

  • Download URL: openskill-5.1.1-py3-none-any.whl
  • Upload date:
  • Size: 46.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for openskill-5.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7f3bcb8585b6fecd051b9a948d49f38a98dd13adc997de556136f379fd34a4aa
MD5 30376cb60652c36388dd761d71698ac3
BLAKE2b-256 410cb76dcea83f09777a0491f075005c9e9e50bccc160518873d8ea5382518af

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page