1. The forums will be archived and moved to a read only mode in about 2 weeks (mid march).

Ranking system based on a number?

Discussion in 'Development' started by Lowkey, May 16, 2017.

  1. Lowkey

    Lowkey Slime

    Messages:
    94
    Anyone found a way to do this?
    Elo is an integer assigned to each individual player. The higher the elo (essentially) better at the game they are.

    I need a way to search for players with similiar elo so they can be challenged with opponents of the same skill. Any help?
     
  2. Thunder33345

    Thunder33345 Moderator Staff Member

    Messages:
    2,137
    GitHub:
    Thunder33345
    proven to not be as easy as it sounds, FYI there's a ton of libraries on github to help you with calculating ELO results doe if you havent know
     
    Lowkey likes this.
  3. Sandertv

    Sandertv Zombie Pigman Poggit Reviewer

    Messages:
    786
    GitHub:
    Sandertv
    The hardest part would be matching two players with almost equal elo...
     
  4. Thunder33345

    Thunder33345 Moderator Staff Member

    Messages:
    2,137
    GitHub:
    Thunder33345
    just get something with a range example differences of no more than 100
     
  5. Sandertv

    Sandertv Zombie Pigman Poggit Reviewer

    Messages:
    786
    GitHub:
    Sandertv
    But what would be a good way (performance wise) to check that properly, that's the question.
     
    corytortoise likes this.
  6. Thunder33345

    Thunder33345 Moderator Staff Member

    Messages:
    2,137
    GitHub:
    Thunder33345
    storing players in leagues? like 0-500 and 500 - 1000 or even smaller ranges so using a foreach loop you would just need one league not the whole player base
    even if we are assuming the server will be full 24/7 with tons of ppl in a queue, i think that's a decent way to separate it
     
  7. Lowkey

    Lowkey Slime

    Messages:
    94
    Link?
     
  8. HimbeersaftLP

    HimbeersaftLP Fish

    Messages:
    2,402
    GitHub:
    HimbeersaftLP
    Sandertv likes this.
  9. Thunder33345

    Thunder33345 Moderator Staff Member

    Messages:
    2,137
    GitHub:
    Thunder33345
  10. Irish

    Irish Baby Zombie

    Messages:
    156
    GitHub:
    irishpacks
    In most ELO systems I have seen, it starts from within 100 points of that person, and keeps adding 50-100 points each time.
     
    corytortoise likes this.
  11. Lowkey

    Lowkey Slime

    Messages:
    94
    That isnt what we're trying to achieve. We're trying to match players based on their elo, but you are right
     
  12. SavionLegendZzz

    SavionLegendZzz Slime

    Messages:
    75
    GitHub:
    savionlegends
    I would say if you want to go an easy route take this way
     
  13. Lowkey

    Lowkey Slime

    Messages:
    94
    This would mean players would have to find a match only in their league though! This depends on the player(s) in queue etc.
     
  14. 0x15f

    0x15f Baby Zombie

    Messages:
    145
    GitHub:
    0x15f
    Do you want them matched by elo or league?
     
  15. jasonwynn10

    jasonwynn10 Moderator Poggit Reviewer

    Messages:
    1,489
    GitHub:
    jasonwynn10
  16. Irish

    Irish Baby Zombie

    Messages:
    156
    GitHub:
    irishpacks
  17. Irish

    Irish Baby Zombie

    Messages:
    156
    GitHub:
    irishpacks
    Which is what I'm basically suggesting. Get all players queued, check their ELO relative to a player and check the difference of each one, and whichever has the least should get sent into a match.
     
    Thunder33345 and corytortoise like this.
  18. corytortoise

    corytortoise Skeleton

    Messages:
    825
    GitHub:
    corytortoise
    With your example, a player with 499 wouldn't get matched with a player with 501, even though they may have the closest Elo to each other.
     
    HimbeersaftLP likes this.
  19. falk

    falk Slime Poggit Reviewer

    Messages:
    75
    GitHub:
    falkirks
    I am thinking you could do a funny sort of binary search that becomes increasingly random throughout execution. So for the first iteration, it would definitely behave like a binary search (picking the side of the list that corresponding to the player's elo value). But then the next time there would be a small chance it would flip the wrong way. As the binary search got closer to convergence, the chance of flipping would increase.

    This would work better with a whole bunch of players on the server, if there are less, I would just make a list of the n closest players that are at most m distant, and then pick one at random.
     
    jasonwynn10 likes this.
  20. Lowkey

    Lowkey Slime

    Messages:
    94
    I want them matched by elo
     
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.