A question about Rank and Challenges

The game-type ratings are used to compare player strengths.

Example

Player 1 has ranks:

  • Overall: 15k
  • Correspondence: 13k

Player 2 has ranks:

  • Overall: 10k
  • Correspondence: 15k

In a correspondence match, Player 2 will get two stones against Player 1 even though Player 2’s rank is higher than Player 1’s overall.

Thank you - that explains why I’ve been getting black so often in my correspondence games; my correspondence rank is two stones behind my overall rank.

I shall start restricting the rank of my challenges according to my rank for that game-type. That way I’m more likely to get an even split on colours. Thanks for your help. :slight_smile:

We’ve cleared up the colours, but I realise one question remains; when I restrict the rank of a challenge, which rank is that challenge restricted to?

For example, if my correspondance challenge is restricted to 10 kyu, will my opponent have an overall rank of 10 kyu or a correspondance rank of 10 kyu?

<strike>Also game type.</strike>

Overall rank.

Interesting… as a follow-up question:
Which rank contributes towards how much a ranked game changes your rating? their overall rating or game type?

1 Like

1 Like

Overall and game type ratings are calculated independently, each one changes according to your opponent’s corresponding rating.

I see so if we were even in say blitz but lower overall and we beat them in a blitz game… our blitz rating would only go up a little but we’d see a bigger jump in our overall?

Right.

1 Like

Annoyingly, it appears that the Restrict Rank feature on challenges ignores the game-type, or at least allows the overall rating to qualify you for accepting the challenge.

I’m going to search for the rank restricting feature in the codebase - maybe something obvious will come up.

Does it? I guess I got those mixed up… Yep, I have now claimed both are true. One claim is correct. Choose wisely.

I’m not going to pretend to understand TypeScript - in fact I’d not heard of that until a few minutes ago - but this line determines the eligibility in the SeekGraph and that appears to check a generic data.get("user").ranking value.

I’m going to see if I can find a class with a ranking property, but my suspicion is that this is some sort of User class and that ranking evaluates to the overall rank.

Looking now…

At least something like a User with a ranking property is declared here:

            "ranking": parseInt($("#user-su-ranking-overall").val()),
            "ranking_blitz": parseInt($("#user-su-ranking-blitz").val()),
            "ranking_live": parseInt($("#user-su-ranking-live").val()),
            "ranking_correspondence": parseInt($("#user-su-ranking-correspondence").val()),

This corroborates the idea that properties named ranking tend to correspond to a players overall rank, rather than the relevant game type. Unfortunately actually understanding this code enough to draw any conclusions is a bit beyond me right now. All I’m doing is speculating.

This is unexpectedly complicated, probably just that I don’t understand the language paradigm thingy. Here’s what I see:

  1. What is probably some sort of event called onSeekgraphGlobal is triggered with a list of things.
  2. Whatever these things are, they have a challenge_id which we can use to look up specific challenges.
  3. We go through each thing in our list, name it e for element, and if it is not started or deleted, we determine the element’s eligible property.
  4. Each element has a min_rank and a max_rank property we compare to data.get("user").ranking in order to determine the value of the eligible property.
  5. In a clue that says e has everything we need, we then over-write our supposed challenge lookup with a this.challenges[e.challenge_id] = e;
  6. One final clue, we set a value called move_time using another property that e has called time_control_parameters.

The following seems probable:

  • Whatever e is, it has time_control_parameters which we can probably use to determine the game type.
  • We have access to data.get("user").ranking which means we probably have access to data.get("user").ranking_blitz etc.
  • We can therefore calculate the relevant ranking before going into our eligible block and implement the feature properly.

However, I think I may have thought about this enough for one evening. Is there a dev around who knows the codebase/this language? Am I on the right track here and can you tell me:

  1. Are the things I’ve highlighted as probable true?
  2. Are there other parts of the codebase that would need to be updated, e.g. the API?
  3. Am I completely on the wrong track?

You’d have to ask @anoek. I looked at the code once, didn’t see any comments, and closed the tab.

1 Like

Yes, absence of comments seems intimidating. I will wait and see whether @anoek is able to corroborate my findings.

Until then, I think I shall just resume restricting the rank of my challenges to my over rank, and hope that my game type ranks just make more sense over time - a shame, I had a game with the white pieces last night!

I should clarify - is there something I need to do to contact @anoek or will tagging him in the forums be sufficient?

Tagging him should be sufficient. He’s a busy guy with lots of things to work on for OGS, so don’t worry if he doesn’t reply right away.

1 Like

Upon reflection, this isn’t a serious issue so long as I ignore the game-type ranks. In other words, by restricting challenges to my overall rank, I can pitch my opponent’s overall rank against my own.

Of course, it’s unfortunate that colour is not decided by the same criteria as the challenge’s rating restriction, but I think I can deal with it :wink:

Hmm, it’s not without issues. I was struggling to find a blitz opponent so I created a challenge with a looser rating restriction. To compensate, I set the handicap to automatic.

My opponent’s overall rating was two stones weaker than mine. The relative difference in blitz ratings was similar but I didn’t get to check until after the game. No handicap was applied and my opponent struggled from the very beginning.

I’m confused I guess. When I restrict the rank of my challenges it just seems obvious that I want to do that according to game-type. In the absence of that, it seems weird that handicaps and colours are decided on different criteria to the rating restriction. I can’t really control the conditions in the way the feature is intended.

It just seems wrong.

1 Like