Check out all of the details of this month's Patch Notes, featuring the 16th Anniversary and VIP Renewal Update! https://mabinogi.nexon.net/news/90098/16th-anniversary-and-vip-renewal-patch-notes-march-14th
[NEW MILLETIANS] Please note that all new forum users have to be approved before posting. This process can take up to 24 hours, and we appreciate your patience.
If this is your first visit, be sure to check out the Nexon Forums Code of Conduct. You have to register before you can post, so you can log in or create a forum name above to proceed. Thank you for your visit!

Engineer a system that avoids name collisions

YukitoYukito
Mabinogi Rep: 930
Posts: 14
Member
edited May 10, 2019 in Feedback and Suggestions
Recently the Mabinogi team has taken steps towards a server merge and people are discussing whether it should or should not happen. I would like to express a suggestion that the game could greatly benefit from a system that avoids name collisions. We could benefit from this regardless of whether a server merge happens or not, but in the event that a server merge does happen, it eliminates the issue of players being upset that they were automatically renamed and it eliminates the need for a system where players would have to rename their characters through a form on the website or through submitting a ticket.

Here is how it works

All characters which can be named (Humans, Elves, Giants, Partners, and Pets) will have an additional 4-character identifier added to the end of their name. It's a hashtag followed by 3 numerical digits.

For example if a character is named 'John' it will become 'John#453'

The Mabinogi team will have to do a long maintenance where a computer script goes and modifies all character names in the system. During this maintenence, the script that is making these changes needs to ensure that the same 3 digits will not be used between characters of the same name between characters of Mari, Rauri, Tarlach, and Alexina. For example, you must not rename John of Tarlach and John of Mari to both be 'John#453'. The software must ensure different digits will be used for each.

Mabinogi team will need to increase the maximum character name length in the database by 4 characters to accommodate the change. The game server and client will need testing or changes to ensure they can accommodate the longer character names. Do not allow players to utilize the additional 4 characters length in character names; the server has already reserved use those 4 characters. When they use character creation or a pet whistle, the server will generate their character with the chosen name, a hashtag, and 3 digits. This is enough to make it so that no one will have "That Character Name is Unavailable" ever again.

Finally we have the polishing that will make it so no one will complain about the hashtag and numbers. You will need DevCat to implement a few game client changes. You will be making it so that when names are displayed above a player's head, the hashtag and digits are hidden. You will keep it so that when players hold the ALT key, the complete player name is shown with the hashtag and digits. In players' friends lists, the hashtag and digits will also be hidden. If you want to be fancy you can have this as a toggle option underneath the 'Appear as Offline' option. In party and raid interfaces, you will also have the hashtag and digits hidden, and preferably have them show with an option.

For almost every other situation it is OK to show player names with their hashtag and digits. They need to be shown in the right-click menu and they need to be shown in the trade window. They need to be shown in party advertisements because people need to know exactly who to whisper, PM, add friend, or send mail to. The numbers being readily available are countermeasures to prevent impersonation.

I really hope you consider this suggestion. I want the Mabinogi team to seriously weigh the pros and cons, and I want them to measure the amount of effort required to implement this kind of change and weigh that against the amount of effort you will need to do your current server merge and renaming system, I do not believe that my suggestion would be too difficult to implement, but I understand that KR Nexon/DevCat have the final say and may refuse to have any employees work with you on your request.

Comments

  • SenjiSenji
    Mabinogi Rep: 720
    Posts: 17
    Member
    edited May 10, 2019
    will the hashtag mark 000 or 001 being the first name made or randomly generated to where it dont feel Original or Unique when the server was ONCE called Nao server before the split...

    to have their names get around the 600s when they char was made b4 the split and someone else who made theirs gets around 200 or 300s after say in tarlach would really tilt someone's tea time.
  • YukitoYukito
    Mabinogi Rep: 930
    Posts: 14
    Member
    It would be randomly chosen for everyone regardless of when they had created the character. I too would be annoyed if I thought there was any significance to the number. If we just gave people with same names the next number in the sequence, then it would be annoying that I'm number 002 or 003. But if we just gave everyone a random number between 025 through 999, then no one would think there is any significance to the number they received and there would be no hurt feelings over it.
  • itsallgreek2meitsallgreek2me
    Mabinogi Rep: 520
    Posts: 3
    Member
    If I may add an extension to this suggestion what if they did this for all future characters so that anyone can have any name they want but there will still be a way to tell people apart. A lot of systems do this discord being a prime example. I'd also suggest making it 4 digits just in case.
    LadameYoriden
  • HelsaHelsa
    Mabinogi Rep: 23,380
    Posts: 5,764
    Member
    If this were a full merge instead of a partial one then this wouldn't even be an issue; oh well.
  • SenjiSenji
    Mabinogi Rep: 720
    Posts: 17
    Member
    edited May 10, 2019
    welp then uniqueness is forcefully put into the Blender and Murdered in cold blood towards users of Former Nao Users... before the server split and now being merged. All i could say that users raced to have their names first made before anyone else and to hold on to that name over 11yrs.

    now they would have to put up a title of 1st Militian just to prove they got it first. there are those users that do care for uniqueness and many who would willingly let Fergy have its way. might as well start a guild with all users with the same name.....and enemy guild would have to point out color user instead of names

    just why did they even split the server in the first place? advertise more servers to choose, economy, new player base? who knows...


    im just venting =,= since i'll be losing that feeling and cant do anything about it since majority votes for merge and one of suggested discord style #
    i rest my case TT,TT
  • HelsaHelsa
    Mabinogi Rep: 23,380
    Posts: 5,764
    Member
    edited May 10, 2019
    Senji wrote: »
    just why did they even split the server in the first place?

    That is actually a VERY VERY good question. Since we are on the outside we can only speculate. Why have 4 servers of 7 channels each instead of 1 server with, say, 28 channels?

    Lag? Not really. Yes, any particular channel would be more likely to get full and experience lag as a result, but folks could move to other channels. Whether its 4 server with 7 channels each or 1 server with 28 channels each, the total traffic into the data-center is the same, so overall it's not a lag issue.

    They created artificial communities because . . . reasons? Please.

    What seems most likely to me is that, at the time, there was some kind of limitation either in the hardware or software the prevented the server side from keeping tract of some threshold amount in any one entity. But where would the limitation be? Total number of people on the server? This seems unlikely as during some hot-time events years ago, every channel on all the servers were full to the point that late-comers could not log in to any of them. For those logged-in, the game proceeded as normal. So I suspect that the limitation had to do with the number of channels that could be associated with a single server. Each server has seven channels plus the housing channel for eight total channels. Eight is two to the third which is awfully coincidental. So, it might be that the number of channels is the limiting factor.

    It'll be interesting to see how many channels they give Nao. It just might be 7 plus housing.
  • YukitoYukito
    Mabinogi Rep: 930
    Posts: 14
    Member
    If you have played the game since early alpha and had your name for 11 years, your name is not any more unique than someone who created their character in G1 or someone who created their character last month. I do not and never have been able to point out a person who has existed since day 1 unless they show me their title. So I don't understand how the real-time age of your character has any significance to the issue at hand.

    The issue we have oncoming next month is that any two characters with the same name on two different servers will have themselves be renamed as 'Name+Server'. It doesn't matter if one name is longstanding and the other name was created a month ago, Mabinogi team will not be favoring any one person over another. Right now I have the only character named Yukito on Tarlach server and no one could take that away from now. Once the servers are merged, I will be named Yukito+Tarlach and surely this is a unique name as well. The problem now is that after the merge, the name Yukito without any '+Server' is free to be used. I am being forced into a race with anyone else who wants it, regardless of whether even had a character named Yukito or not.

    My suggestion is that we eliminate unique names entirely. And that way we will allow everyone to name themselves whatever they want and they can be happy that they got to use the name they wanted to play in this game. This kind of change is especially important for Mabinogi because Mabinogi is the only game which has playable pet characters that use unique names and we are given pets as gifts on a regular basis. In particular, Mabinogi has a far greater challenge on picking names because every account that plays regularly uses up 10+ names out of the possible names pool. I myself am consuming 60+ names because of all the character cards and pets I received over the years.
    itsallgreek2me
  • HelsaHelsa
    Mabinogi Rep: 23,380
    Posts: 5,764
    Member
    Yukito wrote: »
    If you have played the game since early alpha and had your name for 11 years, your name is not any more unique than someone who created their character in G1 or someone who created their character last month. I do not and never have been able to point out a person who has existed since day 1 unless they show me their title. So I don't understand how the real-time age of your character has any significance to the issue at hand.

    The issue we have oncoming next month is that any two characters with the same name on two different servers will have themselves be renamed as 'Name+Server'. It doesn't matter if one name is longstanding and the other name was created a month ago, Mabinogi team will not be favoring any one person over another. Right now I have the only character named Yukito on Tarlach server and no one could take that away from now. Once the servers are merged, I will be named Yukito+Tarlach and surely this is a unique name as well. The problem now is that after the merge, the name Yukito without any '+Server' is free to be used. I am being forced into a race with anyone else who wants it, regardless of whether even had a character named Yukito or not.

    My suggestion is that we eliminate unique names entirely. And that way we will allow everyone to name themselves whatever they want and they can be happy that they got to use the name they wanted to play in this game. This kind of change is especially important for Mabinogi because Mabinogi is the only game which has playable pet characters that use unique names and we are given pets as gifts on a regular basis. In particular, Mabinogi has a far greater challenge on picking names because every account that plays regularly uses up 10+ names out of the possible names pool. I myself am consuming 60+ names because of all the character cards and pets I received over the years.

    Yep, and it is going to happen. This is internet and it only takes one griefer to spoil it. This is happening because it is NOT a full merge. I'll explain why that matters:

    In database talk a record is a set of data items describing a thing. Each of your characters, pets, and partners are things, so each of them have a record associated with them to hold their data. Individual data items are called fields. Your character name is a field. Okay so, each of these have a field that holds the name of the server the thing is on. In this case Yukito has a field that says Tarlach. So what is that server field used for? Have you noticed when you log in the text refers to a log-in server? What the log-in server does is handle the log-ins then sends your gaming session to the appropriate server: Tarlach in your case. Now there could be a Yukito on, say, Ruari because although the name field is the same the server field is not so they are unique. Since this is not a full merge that server field still needs to be used so the log-in serve knows whether to send your game session to Nao or to Alexina. That means your server field, that right now says Tarlach, will be changed to say Nao. So here's the problem, the hypothetical Yukito on Ruari will have their server field also say Nao, so you two are no longer unique. What Nexon is going to do to solve the problem is read your server field while it still says Tarlach and append (that's computer talk for stick on the end of) "+Tarlach" to the end of your name and "+Ruari" to the end of their name. Now you both are unique again. As you point out this removes the name Yukito, from the record and so it becomes available again to anyone who can grab it first.

    With a full merge, the log-in server doesn't have to find out which server to send the game session to, there is only one to send it to, so it doesn't NEED to read the server field. This means that this field doesn't need to have it's data changed; yours can continue to say Tarlach. As such you are still unique compared to Ruari Yukito because your server field value is still different than the other Yukito. This means you can keep your name as it is in spite of the full server merge.

    We ALL need to stop saying ha ha Alexina or I'm happy Alexina was left out and either be saying stop the merge or make it a full one. A partial merge is literally the worst solution.
  • DraechDraech
    Mabinogi Rep: 4,390
    Posts: 355
    Member
    edited May 11, 2019
    Helsa wrote: »
    With a full merge, the log-in server doesn't have to find out which server to send the game session to, there is only one to send it to, so it doesn't NEED to read the server field. This means that this field doesn't need to have it's data changed; yours can continue to say Tarlach. As such you are still unique compared to Ruari Yukito because your server field value is still different than the other Yukito. This means you can keep your name as it is in spite of the full server merge.

    We ALL need to stop saying ha ha Alexina or I'm happy Alexina was left out and either be saying stop the merge or make it a full one. A partial merge is literally the worst solution.

    Actually, chances are this is not how it would have worked. Accounts would still require a log-in server reference, even with a full merge, so that the account can interact with elements from the server (Auction House, Party Board, Housing, Homesteads, etc.). Specifically, this means that if all servers were to be merged into one (let's call it Aton Cimeni for the sake of this example), then all characters would still require their log-in server reference to be Aton Cimeni to interact with that server's elements. As such, it's forced to merge the name pools, and we get back to the issue we currently have.

    It most likely would not be possible to remove server references from the game's functions, as they are already hard-coded into many of them, and doing this would limit any chance of growth for the game (by preventing multiple servers from being used in the future). As such, the devs would literally be working on the code of a game they are killing off. What they could do/could have done with little coding, as suggested by multiple people in the past, would be to create a tag (like [R] Draech for Draech of Ruairi) as a new field in the character profile, that registers as a unique identifier for the name (effectively, everything that refers to Draech, such as exclusive items, would now refer to [R] Draech). This new field, functioning much like the Guild Name tag, would appear seperately on the overhead name diplay in-game, yet contrary to the Guild Name tag which can change if you leave your Guild, the Server Tag would remain unchanging, and as such, can be used as a reference without any risk of preventing game functions.

    TL;DR : Creating "Server Tags" would make characters in the Admin Tool be called something like [R] Draech, but would leave your name unaffected visually in-game. This means name pools can be merged and everyone can retain their names, as names are now changed in the system without changing on the player's end. The only thing that I believe could be affected are exclusive equipments, which would now display [R] Draech-exclusive item instead, and the mailing system, which would now require players to input [R] Draech instead of just Draech, to ensure the mail is sent to the right character.
  • HelsaHelsa
    Mabinogi Rep: 23,380
    Posts: 5,764
    Member
    Draech wrote: »

    Actually, chances are this is not how it would have worked. Accounts would still require a log-in server reference, even with a full merge, so that the account can interact with elements from the server (Auction House, Party Board, Housing, Homesteads, etc.). Specifically, this means that if all servers were to be merged into one (let's call it Aton Cimeni for the sake of this example), then all characters would still require their log-in server reference to be Aton Cimeni to interact with that server's elements. As such, it's forced to merge the name pools, and we get back to the issue we currently have.

    It most likely would not be possible to remove server references from the game's functions, as they are already hard-coded into many of them, and doing this would limit any chance of growth for the game (by preventing multiple servers from being used in the future).

    Nope, since it would be a single server those references could be hardcoded with the new server name rather than trying to read it for each character record. Then any hardcoded code using these look-ups would only need to have their code altered to not look in the server field and use the CONST server name: well, Helsa of course. XD I've already said that a proper merge will require new code, this is why I'm suggesting a postponement to perform a full merge properly.
  • YukitoYukito
    Mabinogi Rep: 930
    Posts: 14
    Member
    Draech wrote: »
    It most likely would not be possible to remove server references from the game's functions, as they are already hard-coded into many of them, and doing this would limit any chance of growth for the game (by preventing multiple servers from being used in the future). As such, the devs would literally be working on the code of a game they are killing off. What they could do/could have done with little coding, as suggested by multiple people in the past, would be to create a tag (like [R] Draech for Draech of Ruairi) as a new field in the character profile, that registers as a unique identifier for the name (effectively, everything that refers to Draech, such as exclusive items, would now refer to [R] Draech). This new field, functioning much like the Guild Name tag, would appear seperately on the overhead name diplay in-game, yet contrary to the Guild Name tag which can change if you leave your Guild, the Server Tag would remain unchanging, and as such, can be used as a reference without any risk of preventing game functions.

    Our ideas are similar in function but they have different details or appearances. I have no doubt that similar ideas have been suggested by players. I really wish they would have taken any of these suggestions rather than none. My idea is most similar to how Battle.net and Discord allow users to have any name they want, and my idea can work regardless of a server merge happening or not. The common thing our ideas have is that there would be some additional text in the player character's names, and that text should be hidden from display unless you hold the ALT key to check. One person even suggested we should have an icon display instead of the text +Mari, +Ruari, or +Tarlach.

    All of these ideas would work technically. Someone would have to modify the game client to hide information from players' names in the text above their heads. It wouldn't be that difficult, they already add text when we use titles, it isn't any harder to remove text specifically from the beginning or the end.
  • DraechDraech
    Mabinogi Rep: 4,390
    Posts: 355
    Member
    @Helsa Though I get your point, completely eliminating the server field or the need for it means the game can never have mutliple servers anymore. Moreover, this means unique coding, and that leads to more problems: either every Nexon branch adopts these changes for Mabinogi (meaning full merges on every localization) or NA gets unique code, and will either no longer receive content updates, or require devs to adapt new content for "our" unique code. Let's be honest, neither of these two options are gonna happen, so there won't be any change to the game's code. Hell, they won't even make spaces valid for character names (to get Draech of Ruairi instead of Draech+Ruairi). In the end, I guess their script is the best they can do with what limited resources they have (unless periods can be registered in the Name field. If so, I want to see Draech.Ruairi or Draech.of.Ruairi).
  • HelsaHelsa
    Mabinogi Rep: 23,380
    Posts: 5,764
    Member
    edited May 12, 2019
    Draech wrote: »
    @Helsa Though I get your point, completely eliminating the server field or the need for it means the game can never have mutliple servers anymore. Moreover, this means unique coding, and that leads to more problems: either every Nexon branch adopts these changes for Mabinogi (meaning full merges on every localization) or NA gets unique code, and will either no longer receive content updates, or require devs to adapt new content for "our" unique code. Let's be honest, neither of these two options are gonna happen, so there won't be any change to the game's code. Hell, they won't even make spaces valid for character names (to get Draech of Ruairi instead of Draech+Ruairi). In the end, I guess their script is the best they can do with what limited resources they have (unless periods can be registered in the Name field. If so, I want to see Draech.Ruairi or Draech.of.Ruairi).

    Oh, okay I see what your concerns are. Let me address each of them and maybe I can put your mind at ease.

    Issue 1: there will be multiple versions of Mabinogi throughout the world.
    This is actually already the case. Different events happening on different installs throughout the world. Some versions even have different skills in them or even different maps. Korea, for example, seems to always be an entire G ahead of us. How this is accomplished is by what are called conditional compile statements. So all these versions of Mabinogi actually all come form the same set of source code files, but before a build is generated the conditional compile settings are defined. Conditional compiling is not some obscure thing that I'm just pulling out of my donkey. It happens all the time. When software is being developed they all have three different types of builds used in their production. These different builds are accomplish by conditional compiling. The first kind is typically called a DEBUG build. This is what is used to develop the code and squash bugs. Debug builds feature no optimization. Once the debug build is complete. They'll move on to what's called a PROFILE build. This type of build features instrumenting of the code (when things are called and how often and so on). A profile build is used to manually optimize the algorithms for speed and make them efficient. Once that is complete you finally have what's called a PRODUCTION build, this is the build where all the compiler optimizing tools are turned on to produce the final executable that you sell to your customers. This is all very normal in the software industry, so don't worry about it.

    Issue 2: once we eliminate the use of the server field we can no longer have multiple servers.
    For the most part this is correct. Although reestablishing a multi-server version could be accomplished via a technical solution, so that it's not really a one-way street, for all intents and purposes let's just say that it is. I suspect that the solution I'm going to give will not satisfy you, it is: so what. Before you start typing up a rebuttal let me try to anticipate that by addressing issue 3.

    Issue 3: how can we go back to multiple servers if we choose to.
    I won't debate why we would want to do that, other than to say I don't think that will happen, let's just take it as a given. What would be holding back moving to multiple servers? Well, it'd be that darn deactivated server field. Hypothetically given a solution how would it work? Would the new server be just for new players as Alexina was? Or would people volunteer to move? I don't see the latter happening. When I say move I mean transferring of characters, not players starting over as what happened with Alexina. Okay so just new players, that makes things a lot cleaner. But like the old aphorism goes, "the devil's in the details". So what do we do? Well we need to identify server of residence for everyone, so that hardcoded single server needs to go away in favor of a look-up. Can we just turn that back on? The problem would be that on the former single server there will be folks that say the old old servers, or maybe their last names or whatever it becomes at this point. What do we do? There are two solutions:
    1) re-label the old server field to say Last_Name and create a new server field.
    2) use that old server field and just put in a case statement in the code that references the server of the variety:
    Case
    if server=newserver1 do this:
    if server=newserver2 do this:
    default //must be the old merged server
    do this
    End Case

    Yes, following a full merge going back to multiple servers would then make Mabinogi NA even more different, but conditional compiling: your programming get out of jail free card. Easy Peasy.
  • SenjiSenji
    Mabinogi Rep: 720
    Posts: 17
    Member
    edited May 12, 2019
    one thing that is 100% successful is Tree of Savior. Family Name system setup that adds a Suffix to the game, so as soon as users logs to the world or log to their char selection that they have to input a last name for the Family before logging in the char. The option for users to input their family name than rng
  • SenjiSenji
    Mabinogi Rep: 720
    Posts: 17
    Member
    edited May 12, 2019
    [Deleted Contents]
  • HelsaHelsa
    Mabinogi Rep: 23,380
    Posts: 5,764
    Member
    It occurs to me that they could use either of the two solutions for Issue 3 RIGHT NOW and avoid this entire naming kludge disaster.
  • AmarazAmaraz
    Mabinogi Rep: 2,735
    Posts: 259
    Member
    Senji wrote: »
    one thing that is 100% successful is Tree of Savior. Family Name system setup that adds a Suffix to the game, so as soon as users logs to the world or log to their char selection that they have to input a last name for the Family before logging in the char. The option for users to input their family name than rng

    Yea I've played quite a bit of ToS, not bad not bad.