8 April

Dev Journal #4: The Chat System

By Caspian

This started out as the second part of a two-part journal post that was going to cover Influence Points. However, I wanted to lead with a status update on the chat system and it ended up being a full journal post all by itself. So in this developer journal I'm going to do a deep dive into the chat system.

Chat Systems of Old

When I think back to my early days playing MUDs one thing I'm always reminded of was how enjoyable the conversation was. Because you spent so much time typing anyways the chat system and the game seemed somehow intertwined. They were inexorably linked by the words in your console window.

On servers that were relatively sparse, the frequent conversation made it feel like there were always players there, walking side-by-side with you in your adventure. On the other hand, because the chat log was also everyone's game window, there was an unspoken (occasionally broadcasted) etiquette that said you didn't chatter unless your comments were highly relevant, targeted, or useful.

For most conversation you would "say" things. This limited visibility to those who were in your immediate area. Because people didn't want their chat log flooded with unsolicited messages while in combat, it was fairly common for you to see where someone was and then walk to their location before sending them a message. This created a sort of intimacy. You'd find the person, check out their equipment, maybe see if they were wearing any medals or had any tattoos, and then if they weren't too busy (in combat) you'd say hello.

In other situations - such as when being chased by something bigger and meaner than you, or when lost in an ancient pyramid - you might yell or shout for some help. While less frequent, the limited range meant there was rarely so much yelling that it was problematic. If it did become a problem, someone would appeal to the gods and they'd sick a plague on you until you shut up.

On my favorite MUD there were also different chat "channels". The channels were the most interesting and diverse part. There were channels for newbies, channels for each race, for each class, for each major zone... you get the point. There was even a channel for when the city was under attack and you needed to coordinate a defense.

Many modern MMOs have attempted to duplicate the above chat model with say/yell abilities that are rarely used and General, Trade, Region/Local, etc... channels that are frequently abused. The sheer number of players on most MMOs causes the signal-to-noise ratio to be so low as to make the channel incomprehensible - something that is only made worse by trolls, spammers, and gold farmers.

Chat System of Chronicles of Elyria

In Chronicles of Elyria, my aim is to mitigate many of the pitfalls of modern MMOs and bring back some of the benefits (or side effects) of older games by enacting a few, relatively small changes to the way the chat system works.

Instead, there will be pre-registered, moderated chat channels for newbies. You can think of these channels like your direct access to the gods (or very helpful people). When you type, your messages will only be visible to the GMs or volunteers approved for responding. Someone will then reply to you with an answer. When that happens, both your request, and their answer will be visible to all in the channel.

When not in a party/raid: whisper only works close range, and only to a single person. Say and Shout will be readable by all those around you and will have increasing range.

When in a normal party: "whisper" will be readable by all those in close proximity who are also in your party. Say and shout continue to be heard by all around you in increasing range.

When in an organized raid group: whisper will be heard by your party only, say will be heard by your party and those in command (at all levels), and shout will be heard by the entire raid.

  1. There will be no trade, general, etc... channels. Most people either ignore them or abuse them. Additionally, each of those channels are attempts at solving separate problems to which there are better solutions.
  2. "Whisper", "Say", and "Shout" have well-defined ranges with specific purposes depending on whether you're in a raid or group (and potentially in combat).
  3. "Tell" only works with people on your friends list and with a second, very special group of people I'll disclose more about in a future developer journal. This is one of the more controversial changes. This change is in part to limit people from sending unsolicited "tells" and partly because in Chronicles of Elyria, you really want to be introduced to the person you're talking to. You want to see them with your own eyes in order to identify them effectively.

  4. There will be chat channels with the added capability to register/reserve and moderate channels. These chat channels will work identically to the way IRC channels work. Additionally, you can choose whether you want each of your channels to show up as separate tabs in the same chat window, or as separate, minimizeable chat windows on the bottom of your screen. If you choose separate, the dialog titles will flash whenever you receive a new message so you'll know to restore them to read the message.

Before you get too excited I should point out a few caveats to the chat channel system. First, the chat channel system is really designed for out-of-character or meta-game conversation. As a result, you will always be identified by (and only by) your player alias - not your character name. If you keep your identity as a player separate from your identity as a character, it's possible to have a conversation in the chat channel while also having a separate conversation in-game with the same person - and never know you're talking to them! This is by design and for reasons we'll explore later.

The other caveat is that unlike in most games, organizations/guilds do not automatically get a private chat channel. If you want to get the player aliases of your guild members and invite them to a private channel you may do so, however it's not automatic. This is done for two reasons. First, it breaks the immersion. If you want to have a guild meeting, then rent/purchase a guild hall, gather, and hash stuff out face-to-face. Being able to manage guild business remotely means guilds can spread out so far as to not be able to travel back to their origin city for meetings. This violates some of the realism of the world I'm striving for. Can players just use a VoIP technology to have guild meetings anyways? Sure. But this gets my point across.

The second, and more important reason, is that guilds serve a specific purpose in Chronicles of Elyria - different than in most MMOs. As a result, you want to ensure you're talking to the people you think you are - but the game leaves room for the possibility that you aren't...

Progress and Why the Chat System First

Progress overall is going well on the chat system. It's nearly complete with only chat channels remaining. I anticipate having the system available to a limited number of people in January.

Per a previous thread, the chat system in Chronicles of Elyria uses XMPP to allow conversation outside the game with people logged into the external chat system with any XMPP client. This is done so that people can be notified of important in-game events as they're happening. Per rule #3 above, you'll only be able to talk to people in/out of game that are on your friends' list. You'll also be able to chat with people in chat channels, but again, only as your player alias, not as a specific character.

As to why I began working on the chat system first - two reasons. First, MMOs are social games. If the chat system doesn't feel complete, feels cumbersome, or doesn't stand on its own as a way to facilitate conversation, then it won't enable good multiplayer experiences.

The second, less obvious reason is that getting the chat system in place requires a good deal of other infrastructure. It requires account registration, login/authentication, network/message handling, encryption, etc... By finishing the chat system first, it puts the server in a good place to be expanded for the rest of the MMO game mechanics.

Up Next

Up next we'll finally get around to talking about Influence Points. I promise.