I finally found a solution to names collisions and ranking, without affecting the original system

Tell us what ideas you have and what features you would like to see.
Post Reply
User avatar
Fifi
User
Posts: 301
Joined: Fri Jan 23, 2015 11:57 pm
Location: Cracow, Poland
Player profile: Fifi

I finally found a solution to names collisions and ranking, without affecting the original system

Post by Fifi » Sun Aug 20, 2017 2:17 am

Ok, so most of us probably noticed that with the growing community we may soon have more and more problems with name collisions (especially if DDNet will get released on Steam). For example, if there's a tee named "asdf" - it may happen that another tee will choose that name too and therefore both tees rankings will be merged.
The lazy solution to this is to just make accounts, but as deen pointed out many times - it's not something we can do. Some people may not understand how to use them, some may be late to make an account for their nickname (resulting in somebody else taking over their points and name), etc.

So... for a long time I wondered what else can we do to solve the problem, if accounts are out of question.
Today I found out that we couldn't use accounts not exactly because of the accounts themselves - but rather because of how we assumed they should work.
This resulted in invention of a system, which solves the problem without affecting the original ranking, gameplay, etc. at all. Which is I guess the most important feature.

So the solution is:
  1. Make it possible to create many "claim accounts" for each name, each identified only by some integer number.
    They should be accessible via: "ddnet.tw/players/somename/5".
    People should be able to login into them on the website using some email address and password, without any login. If they happen to have more names or accounts - they should be able to access all of them from a single login. Alternative version would be to just use name, number and password for login (without the email address).
  2. Those claim accounts would be used to claim map finishes made by the tee of the name they were created for (EDIT: just a clarification - each finish can be claimed by many accounts).
    So for example, if:
    - First player using nickname "asdf" finished Dusty Road twice and Atticus Compilation once.
    - Second player using nickname "asdf" finished Dusty Road once and Houl once.
    The first player will be able to make a claim account "asdf/1" and attach his finishes to it, while the second one will be able to make a claim account "asdf/2" and do the same.
  3. The original "ddnet.tw/players/somename" will always show all the finishes made by tees with such name (so nothing changes here). The claim accounts will have only two purposes - they will allow players to track their progress, without the fear of somebody messing it up, and they will also allow players to show their scores to friends, without having other people finishes there or manually writing down true finishes (which invalidates their proof of authenticity, which having scores in the official DDNet ranking usually is).
  4. If somebody would lose access to his claim account, he will be able to retrieve it using his email address or just make a new one and fork his records until the last valid claim done on his previous claim account (like a fork on Github). Basically, anybody will be able to start a new claim account and either select finishes manually or just copy ones from other claim account up to some point in time.
  5. The three official rankings (points, records' points and team records' points), both general and server-specific, would just have an additional version using claim accounts (and default "ddnet.tw/rank/somename" ones, in case when there are no claim accounts for some name) instead of names. Thanks to this, even the ranking will have it's claimed version and no duplicate name would ruin it again.
  6. To reduce the load on the database, the weekly limit of new claim accounts for each name would be set to 1. If somebody decide to troll and constantly proceed to use it up for some name, its real owner will always be able to just ask admin to create one manually. Overall load on the database would be small though, because each claim account would require only one table with map finish foreign keys and dates.
  7. The nickname webpages will have added information about existing claim accounts (if any) and the DDNet servers commands (/top5, /rank, /points, /top5team, etc.) will each just have an additional variant to get claim accounts information.
So overall:
  1. The original "ddnet.tw/rank/somename" and the original ranking would not be affected at all.
  2. Gameplay won't be affected at all. No need to login, fight to get account first, blah blah blah. The only difference would be a few new information commands.
  3. This will be an additional layer for people who want to manually review their records or just happen to have somebody else using their nickname too.
  4. It will be super simple to use - to show friends their claim account instead of general one, one will only have to add "/somenumber" at the end.
  5. Ranking won't be affected at all. The only new thing will be the additional ranking for claim accounts (and nicknames without claim accounts).
So, uh, that's it. It solves the problem perfectly without any tradeoffs which normally comes with an accounts system. Kinda because it turns the original account definition on its head, by making it something disposable and forkable - without the hassle of having original nicknames and stuff.

I know coding this is not the easiest thing to do (not the hardest too though), but it can perfectly solve the nicknames collisions problem without any tradeoffs and (what's more important) without affecting the existing system at all. So I think implementing such system may be a really good idea, especially if the community continues to grow.
Last edited by Fifi on Mon Aug 21, 2017 12:18 am, edited 1 time in total.
Image

User avatar
stompie
User
Posts: 700
Joined: Thu Jun 18, 2015 2:40 pm
Player profile: stompie
Mapper profile: stompie

Re: I finally found a solution to names collisions and ranking, without affecting the original system

Post by stompie » Sun Aug 20, 2017 2:58 am

so what im getting from this is if say for example there are 2 "stompie" names i would have to select all the maps that i know i completed and say that is my ranks but this second guy can do the same and in the player profile it shows the collective finishes of both people with the same name Am i correct with this? very confusing how you explained it for me atleast
\,,/(◣_◢)\,,/

User avatar
Fifi
User
Posts: 301
Joined: Fri Jan 23, 2015 11:57 pm
Location: Cracow, Poland
Player profile: Fifi

Re: I finally found a solution to names collisions and ranking, without affecting the original system

Post by Fifi » Sun Aug 20, 2017 3:07 am

stompie wrote:
Sun Aug 20, 2017 2:58 am
so what im getting from this is if say for example there are 2 "stompie" names i would have to select all the maps that i know i completed and say that is my ranks but this second guy can do the same and in the player profile it shows the collective finishes of both people with the same name Am i correct with this? very confusing how you explained it for me atleast
On ddnet.tw/players/stompie it will show collective finishes of both people.
On ddnet.tw/players/stompie/1 it will show the finishes selected by you (assuming that you made the 1st claim account).
On ddnet.tw/players/stompie/2 it will show the finishes selected by the second guy (assuming that he made the 2nd claim account).

So basically it's a way of tracking the finishes that you recognize as yours without altering the original ranking.
Image

Silex
User
Posts: 1119
Joined: Tue May 06, 2014 6:40 pm
Mapper profile: Silex

Re: I finally found a solution to names collisions and ranking, without affecting the original system

Post by Silex » Sun Aug 20, 2017 4:45 am

I didn't noticed a growing community. Rather the opposite of it. #offtopic

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest