January 10th, 2006

Brad @ Burning Man

If I Were Designing a Cyberpunk Game (#04)

People take the following features for granted in any massively multiplayer online game. Typing into a chat interface should let you be heard by everybody with you, for game-to-game variable definitions of "with you." (Teamed with you, in the same room, within a certain distance, whatever; it varies.) There should also be a way to yell to people in a larger area. There should also be a way to "whisper" to one of the people near you. There should also be a text-chat with one or more people at a time who aren't with you, so you can chat with friends and people you're conspiring with and so forth. OK, here's how I've always wished it was handled.

Hit enter to pop up a text window, type some text, hit enter to finish. The text analyzer should scan the text for emotional clues, for "emotes," as virtually every one of them does now. All lower case? Talking softly. Less than 25% capitalized? Normal speech. (To simplify life for the lazy, have an optional preference setting to never whisper without an explicit command, to default to the first letter capitalized. But that preference should default to "off," because the all-lower-case to whisper thing strikes me as more obvious than having to type /w before your text. The first few times you type in all lower case and somebody says, "Speak up? I missed some of that," people will figure out that they're whispering.) All upper case? Shouting. It should also count how many exclamation marks you've used in the last several sentences, and as the percentage climbs towards 100%, you should be gesturing wildly with your hands while you talk. It should also recognize as many of the emoticons as possible, and as many chat-speak abbreviations as possible. (Although it should not take some of them literally. LOL and ROFL should produce a weak grin.) Note that in general, shouting in public, unless it's immediately followed by violence you didn't initiate, should lower your reputation with everybody present and with the subcultures that use that public space.

Let's assume that you're all sitting at the table in some public space, or all sitting in the same room in somebody's Spot, the default situation for "group conversation." Then, text gets displayed normally. But anybody in the next room in the Spot, or who's standing near the table in the public space, is in "eavesdropping" mode to what you typed. None of it will show up in their "chat log," only as word balloons on screen. They'll hear, oh, let's say 10% of what's whispered, half of what's spoken normally, and nearly everything shouted. Replace the rest with ellipses. Not sitting or standing in a "group conversation area"? Everybody's in eavesdropping mode, not paying attention to you. You can, however, talk normally to a person standing near you by selecting them with the mouse first; then the eavesdropping rules apply to everybody else but they hear you as if you were in a group with them. Select somebody across the room and the same thing applies, but to everybody else, you're shouting -- with the same social stigma.

The alternative is to use your cellphone. There should be a phone icon on your toolbar, and/or a /phone (name) command. Click that and a separate text window, separate from your normal chat window, appears, and your character holds a phone up to their head. In one part of the window you've got a scrolling list of people whose numbers you have in your phone; click on them to call them. At that point, if they're logged in, they get a phone ringer popup; if they don't answer, you don't chat with them. Yes, there should be a "mute the phone" button or command to stop that popup until you turn it off, although "calls" from GMs should override that. You can give your number to anyone. You can give other peoples' numbers away, and it counts as an introduction. This would, of course, have to be worked into the reputation system. It should be possible to "change your number" and have your name erased from everybody's phone lists except maybe for people who you've identified as your closest friends.

Ideally, have the "phone" system integrated with a public domain or easily licensed chat system like Jabber or SILC, so people can also "phone" their friends when not sitting in front of the game.

While you have the simulated-cellphone window open, everybody at your table is in eavesdropping mode with you (but not the person or people on the other end), and you're in eavesdropping mode with them. While you're in direct chat with someone not at the table, you miss much of the conversation around you. While you're in direct chat with someone not present, those who are present should be able to eavesdrop imperfectly on you, whether they want to or not.

It occurs to me that clicking on somebody near you before typing, while you're in a group-conversation setting should have a similar effect. You're assumed to be whispering to them; other people in the same conversation only get eavesdropping. But you only get eavesdropping of everything else that gets said until you no longer have them highlighted.