Code Monkey home page Code Monkey logo

Comments (7)

vivekjoshy avatar vivekjoshy commented on June 12, 2024

Do the models make any assumptions on how matches should be arranged? For example should matches avoid playing the same players or teams back to back, or should matches avoid players arranging their own opponents? Should matches always try to balance teams based on the latest ratings?

There are no such assumptions in the model. You are free to arrange matches however you like.

It would be great if there was documentation on guidance on how to arrange matches to make rating convergence faster.

There are many algorithms for matchmaking, but there is no obvious solution to make ratings converge faster since it depends on the ratings of the players. Some games match up the weakest players with the strongest in tournaments so that time isn't wasted spent having weak players play each other. For many games since it's more about finding equally strong players, they will usually have a pool of players waiting in a queue and then they are selected using brute force given some acceptable threshold of team rating imbalance.

from openskill.py.

chrischen avatar chrischen commented on June 12, 2024

Is there a known exploit against the algorithm such as by repeating the same matchups or by targeting new players to harvest default ratings? I assume as a default I should not be letting people choose their own matchups such as in custom games?

from openskill.py.

vivekjoshy avatar vivekjoshy commented on June 12, 2024

Can you be more specific? What do you mean by "harvest default ratings"? If time allows, perhaps an example would also help us understand your situation.

from openskill.py.

chrischen avatar chrischen commented on June 12, 2024

For example if I can choose my opponents can I game the model by only playing new players with default rating, or maybe even only playing players that I know are weaker, and thereby always winning my games?

from openskill.py.

vivekjoshy avatar vivekjoshy commented on June 12, 2024

For example if I can choose my opponents can I game the model by only playing new players with default rating, or maybe even only playing players that I know are weaker, and thereby always winning my games?

The point of this rating system is to prevent such scenarios. There will always be the issue of 'smurfing' in every ranking system. However, it's very difficult to do that with this system since you would have to create new accounts every 10 or 15 games the player wants to smurf. The best way to prevent this is restrict creation of new accounts for the express purpose of smurfing. Most games just ban such accounts since it can also be considered a form of griefing. In reality this is just a cheating issue and is left up to the developer of the game to prevent since there is no solution to it in any rating system. How would you feel if Magnus Carlsen enrolled in FIDE under a fake name and slowly, but craftily held back their skill just enough to avoid detection? Well it's just cheating, so the only solution is that when you find out they're doing it, ban them. IP logging or phone verification can prevent these issues in ranked games.

from openskill.py.

chrischen avatar chrischen commented on June 12, 2024

Sorry if I wasn't clear earlier. I don't mean how to prevent smurfing, but the scenario where someone who has 1 account chooses their opponents such that they only play other people who are lower rating and almost guaranteed wins.

I assume the default assumption of anyone using this library is that the players cannot choose their own matches, and should be matched with equal skill levels? I do feel like that's worth mentioning in the docs if it's something that should be done (don't let players choose their own matches).

In my case I'm operating an offline league, so the players would have to arrange their games in person.

from openskill.py.

vivekjoshy avatar vivekjoshy commented on June 12, 2024

Okay I get what you mean now. No, there are no such assumptions by the model. There are games in production that use OpenSkill that allow selecting your own competitors in lobbies. Of course, consistently beating lower ranked players than yourself will not result in you improving your leaderboard ranking. You are also free to balance matches yourself if that's something you want to do with a player queue. Selecting your own opponents mean that your skill level will take longer to converge (or may never converge) to a relatively accurate value. This also however means that players have no incentive to pick weaker players are competitors if they want to climb the leaderboard. If you still want to prevent players selecting weaker opponents, then just use a balancing algorithm to create matches.

from openskill.py.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.