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:
- My opponents will have the same overall rank as myself.
- That our overall ratings will be compared to decide colours.
The following alternative is also possible:
- My opponents could have any overall rank but their correspondence rank will equal my overall rank.
- Our correspondence ratings will be compared to decide colours.
But… which is true?
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