Up to Main Index                            Up to Journal for August, 2020

                     JOURNAL FOR FRIDAY 21ST AUGUST, 2020
______________________________________________________________________________

SUBJECT: Getting sociable with Whisper, Tell/Talk and Shout
   DATE: Sat 22 Aug 05:34:42 BST 2020

A few weeks ago I had a nice email from a user called Gniblik who used to play
on the MirrorWorld MUD back in the day. He was hoping to get his two children,
Pan and Ariane, interested in playing WolfMUD, but they were not entirely
convinced of the idea. He suggested that I add tell, shout or similar commands
to make things more friendly and sociable for players, and maybe encourage his
children a bit more.

How could I say No? I hope they have fun with the commands I’ve just added…

WolfMUD already had a SAY command, it is now joined by WHISPER, TALK/TELL and
SHOUT. To help illustrate I’ll be using five different players: Diddymus,
Fred, Bob, Lisa, and Sam. Diddymus, Fred and Bob are together in one room,
Lisa is next door, Sam is next door to Lisa. This tiny example world of ours
looks like this:


                         ┌────────┬────────┬────────┐
                         │Diddymus                  │
                         │Fred       Lisa     Sam   │
                         │Bob                       │
                         └────────┴────────┴────────┘


The format of the new commands are:

  SHOUT <message>
  TELL <who> <message> / TALK <who> <message>
  WHISPER <who> <message>

Next we have some examples showing the commands in action from the perspective
of each of the players:


  [Diddymus]
    >whisper fred Bob looks funny...
    You whisper to fred: Bob looks funny...
    >tell bob You look funny...
    You say to Bob: You look funny...
    >shout Bob looks funny!
    You shout: Bob looks funny!
    >

  [Fred]
    >
    Diddymus whispers to you: Bob looks funny...
    >
    Diddymus says to Bob: You look funny...
    >
    Diddymus shouts: Bob looks funny!
    >

  [Bob]
    >
    Diddymus whispers something to Fred.
    >
    Diddymus says to you: You look funny...
    >
    Diddymus shouts: Bob looks funny!
    >

  [Lisa]
    >
    You hear taking nearby.
    >
    Someone shouts: Bob looks funny!
    >

  [Sam]
    >
    You hear someone shouting nearby.
    >


For the SHOUT command you can hear what is being shouted in locations that are
immediately next to the location where the shouting happens, including above
and below. If you are two locations away you just here someone shouting
something.

This is for practical reasons as in an extreme situation, like a big open
area, you could need to lock a maximum of 45 locations. For a larger radius
the number of locks rapidly increases[1]: 1=1, 2=11, 3=45, 4=119, 5=249,
6=451, 7=741, 8=1135, 9=1649, 10=2299. These are worst case figures for every
location being linked to all of its neighbours using all available exits.
While this is not a common scenario, and even a few thousand locks should not
be a problem, I’d like to run some tests and benchmarks just to be safe.

This is my first take on these commands. The radius for SHOUT will probably be
increased. However, I need to make some optimisations first. At the moment
there is no limit on how often you can shout which could cause issues annoying
other players. If the radius is increased, how often you can shout should
probably be limited.

The SHOUT, TELL/TALK and WHISPER commands are out on the public dev branch.

--
Diddymus

  [1] This is the odd digits of (n^3 + 2*n)/3. See https://oeis.org/A006527


  Up to Main Index                            Up to Journal for August, 2020