The game-type ratings are used to compare player strengths.
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.
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.
Interesting… as a follow-up question:
Which rank contributes towards how much a ranked game changes your rating? their overall rating or game type?
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?
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
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.
At least something like a User with a ranking property is declared here:
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:
- What is probably some sort of event called
onSeekgraphGlobal is triggered with a list of things.
- Whatever these things are, they have a
challenge_id which we can use to look up specific challenges.
- 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
- 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
- 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;
- One final clue, we set a value called
move_time using another property that
e has called
The following seems probable:
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
- 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:
- Are the things I’ve highlighted as probable true?
- Are there other parts of the codebase that would need to be updated, e.g. the API?
- 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.
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.
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
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.