Well, I guess it's time to discuss this. Grab a drink, this is gonna be a long read. (In case it wasn't clear, this is about adding ranks to GOKZ, it isn't supposed to replace KZTimer local ranks).
Everybody wants ranks! But why?
Before we even look at how the ranks would look like, we have to clarify what their purpose is. Their purpose is not to be an accurate representation of the absolute skill of a player. It should more or less represent the skill progression of a player over time. This has the ultimate purpose of keeping them engaged and motivated to play by giving them alternative goals, cause new players can't go for top times right away. This is why it is most important that each new rank seems achievable by the player, especially in the lower ranks.
Will the ranks be local or global?
They will be global. That means, that they will be directly based off of the global API points. The main reason I hear why people would want local ranks within one server only, is to improve community building. While this might help the community building a little bit, I do not believe that it will outweigh it's disadvantages. The goal of local ranks are to essentially "lock in" the player to only play on your server. But this alone does not create a community yet, all it does is discourage people from playing on a different server if their favorite server is running a map they can't/don't want to run. So they might choose to just not play KZ at all instead of changing server.
Can't we have both global and local ranks at the same time?
Let's not make things overly complicated. If you have multiple ranking systems, all you get is confused players, especially confused new players. And once you care enough that you would actually look up how all of this works, global ranks are probably more relevant for you anyway.
But the API points are flawed!
They are and that's why I am proposing some changes to those as well. Keep in mind that the point system will never be perfect and there's only so much we can do. My proposed changes:
Limit the maximum amount of points you can get for rank 2 to 950.
This change aims to give a bit more weight to WRs without making the runner ups too irrelevant.
Limit the minimum amount of points you can get for a completion based on the tier.
The absolute minimum amount of points you can get for a completion would be based on this list:
Tier 1: 5 points
Tier 2: 10 points
Tier 3: 20 points
Tier 4: 50 points
Tier 5: 150 points
Tier 6 300 points
As you can see, those limits are only ever really relevant on the higher tiers. You will also always get more points than that for a completion once the rest of the components are added for the final score. This should mainly prevent people from getting a ridiculously low amount of points for completing death maps. The specific numbers could still be adjusted if needed.
Change the non-distribution points.
If a map has enough completions, the points are given based on a distribution. I won't go too much into details how it works, but this system seems fine to me. The problem is when you only have very few completions, in which case the points are calculated as follows:
1000 * (NrOfFinishes - yourRank + 1) / NrOfFinishes
That means, that your points are only based on your rank. This is suboptimal because improving your time will have no impact on your score unless you also gain a rank in the process. To encourage people more to still run those maps and improve on them, I propose the following calculation instead which will always guarantee you points for a PB:
points = (wr_time / run_time) * (950 - min_points) + min_points (or 1000 if WR)
min_points being the tier-based minimal points mentioned above. So if you take twice as long, you get half the points. If you take 10 times as long, you'll get a 10th of the points. This would be in spirit of the points representing your improvement.
Ok, but what about the ranks?
I intend to base the rank on a combination of TP and PRO API points. Both runtypes have to be considered, otherwise either very new or very good players get absolutely nothing out of it. I plan to value PRO points 3 times as much as TP points, as they are clearly the more relevant points. That ratio can still be adjusted though. Maybe 2 times is better, who knows. So the combined points are
TP points + 3 * PRO points. You can find a list of the proposed ranks here:
EDIT: There is now also a second table with an alternative that incorporates more ranks, which I quite like too.
The rank thresholds are based on the amount of points the player with rank 20 has. The next lower rank should correspond approximately to rank 100. Now those numbers are all tuned for KZT, so they will be a bit off in SKZ and VNL, but they should still be somewhat sane in those modes as well. You need to get a certain percentage of the rank 20 points to get a certain rank. This way we automatically account for the differences in the modes and the increased point pool by map releases.
After enough maps have been released, those numbers will drift more and more of course, so the percentages will need some adjustment over time, but hopefully not too often. It's not a perfect system, but it's the most stable one I could come up with. I have to say that it is incredibly hard to come up with those percentages and they will never be perfect, but they can still be fine-tuned in the future if needed. It's also really hard to judge the outcome of all of this before the points changes suggested above are in place.
The upper ranks are more based off of rankings as you can see, while the lower ranks are based on reasonable achievability for newer players. The higher up in the ranks you move, the more PRO runs you are supposed to have as well, the first few ranks expect only TP runs, while the more and more PRO runs are expected from a certain point onwards. As those count 3 times as much, there is a pretty steep curve at some point to account for that.
The ranks are grouped together into several rank groups. Partially, this leads to a less chaotic system. It is easier for people to remember the order of the ranks this way, if you have 17 unique rank names it is extremely difficult to come up with names that have a very intuitive order. And we desperately need that many ranks as this is based on global points and we need to account for new players as well as experienced players alike. And there should never be a seemingly insurmountable point gap where players thinks "I'm never gonna get that many points for the next rank anyway". Another point was also that I ran out of colors ^^ Giving the ranks distinct colors (e.g. for chat) is quite important in my opinion as it strongly improves the recognizability of the ranks and better distinguishes them visually.
Cool! I guess?
Ok, this is my proposal. Congratulations for making it this far! Now this thread is for me to get some feedback on my plans. This is not going to be some kind of vote and I will not be able to respect everyone's wishes. There will probably be 100 different opinions. I want to get a sense for how the community feels about those plans to make sure I can implement some kind of reasonable compromise. So now is your chance to speak up!
If you think this proposal is good, then please tell me so! I won't get the bigger picture if I only hear the complaints. If you think there are flaws, don't just say "this is bad". You'll probably get ignored. "This is bad because..." is better, but don't expect it to make much of a difference either. "This is bad because of this and this is how I would do it instead". That's what you should say! If you have actual suggestions, I can compare them to my proposal and choose the best solution of the two.
That's it, thanks for the feedback 🙂