Unique character names in MMOs have long been a pet peeve of mine. I am sure most of you have experienced the frustration when your favorite character name ends up taken by some else, and if you are like me it might take as many as 20 tries to get an available name. Well, here is a question for all you MMO programmers, why the hell are you still using character names as a unique identifier? There are so many better options to identify players in the world, every name does not need to be unique. In fact I frequently find that running across players entitled ‘FancyPants12′ or ‘Moooo4me’ does more damage to game play than a simple change would. When I am in the process of being adsorbed into an MMO through very nicely executed immersion techniques, stumbling onto these players breaks flow,
disrupts my concentration and I find it harder to follow the story line (or even care about it).
I bring this up because this last weekend I started playing Aion. A very nice game that I have high hopes for, but its probably the first MMO that I am actually interested in a bit of the lore; I even went so far as to read some of the important quest text. Its shocking yes, but they really did do a good job making the player feel like they are not just a drop of water in an ocean; which is worthy of recognition in itself. Unfortunately, Aion suffers from the unique name dilemma so while I am trying to rescue the damsel from a horde of black winged bandits I am constantly running into ‘XXSlayerXX’ or ‘RoGeGardian’ and that is just terrible from an immersion perspective.
But what can be done about it? After all, a lot depends on character names. PMs, brokers, mail, friend lists, etc etc. Obviously a new system has to enhance game play, not restrict it. I propose a system where each character is assigned a unique number, not a name, which can be used for all these means of communication with just a little extra effort on the programmers side.
To illustrate my concept I will run through a few normal MMO actions and highlight how this idea works in comparison to the character name.
Auctions
This is the easiest, when a character posts an item you simply register the item with the character id instead of the character name. All transactions, searches, bids, use the character id instead of the name. A really simple swap out in this instance.
PMs
Probably the first problem that would come to your mind. Obviously having to type /tell 00283023 to talk to a player would be murder on your player base. PMs can be handled nicely, it just takes a little more work and polish out of the box. For instance, to talk to someone who made a comment in the chat window, just click on their name and reply. The reply would pull the character number from the chat window so the player would see the character name but actually be replying using his number. Now, if you want to type up a pm to someone you met in an instance but did not befriend, things get a little more complicated. Lets say for the sake of argument that you remember his character name and you wish to send him a message.
There are two solutions I can think of off the top of my head. First, typing /tell William will bring up a list of all ‘Williams’ in the world sorted by last interaction. Meaning if he met William during a live event the previous night, that William would be listed above a William he met out in the plains last week. For this to work players would need to keep record of the players they meet and timestamps, not impossible but not very practical.
My next solution would be to improve the friend system to be more intelligent. Instead of storing a list of people the player manually types in, it could store a list of acquaintances that the player has met over time. It could list people he met, ordered by zones, time spent with the person, number of interactions with the person, etc. This way the player would build a network of contacts in the world without having to manually type in their names or numbers. These two systems not only improve the experience for the player, but also improve immersion since this is normally how people relate to each other. I can think of five different ‘Chris’s I know, but when attempting to address one I use the social path that has been created between us. My social network determines the means to communicate.
Another tricky problem which can be gracefully solved by an expansion on the friend list concept I wrote about above. When the player tries to send mail he can browse his social network for a contact to send mail to. This is a good time to mention that chatting with another player would make a new network with that person. This includes someone chatting in general, city, trade, whatever. To model those interactions a network of recent chat messages would be displayed for the player to pick out the appropriate recipient.
Groups / Raids
Most groups and raids are formed by pm messages or chat window invites. Since we have already established that in the chat window a name is really a character id handing invite requests is as easy as opening a new pm.
A final note about the new social system. Updating and management does not need to be left completely to the program. With a new friends system comes a completely different way of interacting with players in the world. Players should be able to modify their networks, add people to groups, tag communities of links. I have more than once wished to have a system where I could tag players or organize relationships by specific words. Not wishing to come off as an elitist but I am sure more than one of you have wanted to tag someone ‘noob’, ‘idiot’, or ‘can’t play his class.’ With a more friendly social network system you could organize your contacts, including all the people you no longer want to interact with into a group. Then when they say something in chat, send you a pm, invite you to a raid, you will have fair warning.
When all is said and done I am really advocating a new type of system for interacting with players in an online world. One built on networks of links instead of a simple one dimensional friends list.
Tags: design, Games, mmo, Programming

