A question about Rank and Challenges

I have this thing that I do:

  • I create challenges with the rank restricted to my overall rank.
  • I set the colour of these challenges to automatic.

My intention is to play people of approximately the same ability and to match colours according to recorded differences in that ability.

When I create a correspondance challenge, for example, I expect the following to be true:

  1. My opponents will have the same overall rank as myself.
  2. That our overall ratings will be compared to decide colours.

The following alternative is also possible:

  1. My opponents could have any overall rank but their correspondence rank will equal my overall rank.
  2. Our correspondence ratings will be compared to decide colours.

But… which is true?

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: