Game Development Stack Exchange is a question and answer site for professional and independent game developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I know of at least big title game (Starcraft II) that doesn't require unique display names, so it would seem like it can work in at least some circumstance.

Under what situations does allowing non-unique display names work well? When does it not work well?

Does it come down to whether or not impersonation of someone else is a problem?

The reasons I believe it works for Starcraft II is that there isn't any kind of in-game trading of virtual goods and other than "for kicks" there isn't much incentive to impersonate someone else in the game. There's also ladder rankings so even trying to impersonate a pro is easily detectable unless you're on a similar skill level.

What are some other cases where it makes sense to specifically allow or disallow duplicate display names?

share|improve this question
up vote 8 down vote accepted

In Champions Online and Star Trek Online we solved this by using a two part name. The second part must be unique, but the first doesn't need to be - we show this in-game as Display Name@account. This also means we can put significant restrictions on the account name - for example, ASCII only, no spaces, no punctuation - and give more freedom for the display name. In-game, players see a combination of both with the account name visually muted (smaller font, darker font), and the account name display can be turned off for strict RPers.

The need for this was driven mostly by Champions. Experience with City of Heroes told us that the namespace of desirable superhero names is pretty small. They all follow a similar pattern. Since naming was also the last step of creating the character, it was also very frustrating to build a character like "Giant Flame" only to find the name was taken, and have to go back to and make yourself either smaller or less on fire. It also encourages RPing - one supergroup (guild) in CoH had characters "Duplicate Girl", "DupIicate Girl", "Duplicate Gir1", all with the same costume. In Champions, people can use the exact same name.

Honestly, I don't know when it doesn't work well. It probably works well everywhere. Some answers have brought up issues with FPSs that need quick communication, but it seems to me that it would only become a problem if you need quick and long-term communication. For someone to abuse it, you need to give them enough time with you to spoof a name, and yet not enough time to explain which one you're talking about. When you say "Crap, Joe's around the corner", which one you mean is usually obvious.

share|improve this answer
+1 Crap, Joe's around the corner!!! – bummzack Mar 5 '11 at 13:26
Good idea about the non-unique part being visible. In my case I'm probably going to be using email addresses as login name so I don't want to be displaying that publicly. I was thinking maybe some encoded form of the PK in the database so it's guaranteed unique, and encoded so it's not a security concern (probably isn't anyway as long as all input is properly sanitized, etc, etc, but doesn't hurt to be extra careful) – Davy8 Mar 5 '11 at 15:15
I was originally concerned with impersonation if the display name was the only part shown if trading is involved, e.g. impersonating someone's friend and asking for gold or something. – Davy8 Mar 5 '11 at 15:18
We used three separate tokens - the display name and account name, but also the login name. The login name is never public (and must be unique), which also gives additional security. – user744 Mar 5 '11 at 16:04
The trade case is a good example of where good UI practices help. You probably have some kind of button or icon that means "friend". When you show names in the trade window, you can just show those icons as well. Thus Bob, my friend in my guild, shows up as "Bob [F] [G]", and Bob the jerk shows up as "Bob" - and both names are clickable links to their character profile. Having those icons is good practice anyway, since it reinforces recognition of the icon elsewhere, and avoids common spoofs like "8ob" which are problematic even with unique display names. – user744 Mar 5 '11 at 16:08

I guess it's because the display-name doesn't matter that much in Starcraft 2. Even if you were about to meet a player with the same name in an online-match it wouldn't be an issue, since there are several other "layers" that help you distinguish players in game. One is the color of the units on screen, another one is the team the player belongs to (in 2v2 or other team matches).

Impersonation is probably also a non-issue. This is most likely going to happen where there's a bad player that wants to use the name of a very good player. Nobody is going to believe that FruitDealer located in the bronze-league is actually the real FruitDealer. As soon as you're playing in the top levels, you're most likely opting for a unique name.

Since the ladder is segmented into leagues and the leagues are segmented into divisions, name-clashes are also very unlikely. Maybe Blizzard even makes sure that there aren't players with the same display-name in the same division.

I think the non-unique display-name can work in every game where the name isn't an important part of the virtual identity. In the case of Starcraft 2 you have an character-code (ID) or your account e-mail that can be used to find friends. The display-name is just what is shown on screen and can even be changed (a limited amount of times).

You might have noticed, that the same is also true for the gamedev.SE site. You can have several users with the same name here.

As soon as you have several properties that can help distinguish players and the display-name isn't used as ID, non-unique display-names can work fine. It also has the big advantage that players don't have to search hours for a display-name, because all the "good" ones are already taken.

share|improve this answer

If you're going to be trading, interacting, or something that involves potentially meeting that person again, then unique names would be a good idea. For example, if you were playing generic FPS with two people called generic name, and you wanted to tell one to fall back, how would you say which person? If they were on different teams, you would again wonder what's going on.

Impersonation isn't going to be an issue unless the game depends on some kind of ladder or ranking system. Even then, there's not going to be much point.

Then again, what reason is there to have non-unique names?

share|improve this answer

One problem with non-unique names is the personating as you described it. If there's a really popular player it is likely that someone will try to impersonate him. You could prevent this or make it obvious by always displaying some kind score next to the players name, so others know if it is the "real" popular player.

If someone is bad and tries to impersonate someone better, others will see it, if he is similarly good he won't try to impersonate because he rather wants his score with his own name.

Another scenario where it would cause problems is in MMORPGs, because you would confuse the two, in the chat for example. Then again that might not be a problem if there is another property of the player that distinguishes them (like class, which is shown next to the players name or as a color of it)

share|improve this answer

Most other answers have covered the impersonation concerns, but what I haven't seen mentioned and I think is most important is the capacity to specify a player if names can be duplicates. Which one receives /tell DuplicateName Private information.? All of them? What if you want to initiate some kind of remote trade? What about a friend's list? What about a mute list? What about impersonating someone just to grief/troll in chat, regardless of league/score/rank/team/whatever?

Having a unique secondary name works if you want to allow duplicates, but ultimately I think that's still rather user-unfriendly. Specifying a player with a long name is annoying to most. By adding a secondary name, the total length of each player's full name increases. If you use the unique secondary name only for player specification, it is still user-unfriendly in that you have to refer to players by names that you usually don't associate them with because it's not on display.

share|improve this answer
We had those concerns, but in practice they all turned out to be non-issues. People don't mind using @names, and after the first message, most players will respond by replying or using name links, which can auto-fill correctly. Long names can be solved by forms of auto-completion - which is something that you should be supporting anyway. Basically, the complaints against it all boiled down to "well, then we'd have to follow better UI practices." So we did that as well. – user744 Mar 5 '11 at 14:26
Kudos then. Glad to see someone not taking the easy way out and biting the bullet for better quality. – Sion Sheevok Mar 6 '11 at 1:39

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.