Skip to content

Design Notes: Message Expansion

Michelle Steigerwalt edited this page May 22, 2016 · 53 revisions

Traditional Style

I'm not a historian — this is just the style I've seen in most of the bases I've been spelunking through. I've pieced the table together from the CircleMUD souls.c file.

form actor target
name (John) $n $N
subjective (he) $e $E
objective (him) $m $M
possessive (his) $s $S
reflexive (himself) $mself ???
capitalization $u $U

Limitations

Three messages must be explicitly set, one for the actor, one for the target, and one for others. This creates redundancy.

Examples

  • You jump over $N. You jump over the lazy dog.
  • $n jumps over you. The quick brown fox jumps over you.
  • $n jumps over $N. The quick brown fox jumps over the lazy dog.
  • $n rakes $N with $s vicious claws! The quick brown fox rakes the lazy dog with its vicious claws!

"Gollum" style

For our implementation, the aspiration is to enable one message to be sent to all players, with a straightforward format for content creators.

To do this, we use You and the set of second-person pronouns as actor flags, and They and the set of third-person neutral pronouns as the target flag.

form actor target
name (John) %You %Name / %They
subjective (he) %you %they
objective (him) %thee %them
contraction (name is) %You%'s %Name%'S / %They%'S
contraction (he's) %you%'s %they%'S
possessive (his) %your %their
possessive (his/hers) %yours %theirs
possessive (name's) %Your %Their
reflexive (himself) %yourself %themself
capitalization dynamic
capitalization (first letter) %<tag>%u / %<tag>%U
capitalization (word) %<tag>%lc / %<tag>%UC

Capitalization

Dynamic

The first suitable alphabetically character following a punctuation mark (!, ., ?) will automatically be capitalized, eliminating the need for manual capitalization and allowing us to use capitalized tags for extra options.

Override

To override dynamic capitalization, capitalization override operators may be used. For example, whereas %Name might print as O'Connor, %Name%u would print as "o'Connor", %Name%UC would print as "O'CONNOR", %name%lc as "o'connor".

Point-of-View Transformations

 

Actor

tag actor others
%s - s
%es - es
%ies y ies
%is are is
%has have has

Target

tag target others
%S - s
%ES - es
%IES y ies
%IS are is
%HAS have has

Limitations

  • It's necessary to resort to archaic "thou" as an objective first-person pronoun in order to differentiate from the subjective "you".
  • There's no clear, intuitive way to handle the target set of point-of-view transformations.

Examples

 

%You jump%s over %Name.

  • Actor: You jump over the lazy dog.
  • Target: The quick brown fox jumps over you.
  • Others: The quick brown fox jumps over the lazy dog.

%You carr%ies %Name up the hill.

  • Actor: You carry Jill up the hill.
  • Target: Jack carries you up the hill.
  • Others: Jack carries Jill up the hill.

%You dance%s with %Name.

  • Actor: You dance with Jill.
  • Target: Jack dances with you.
  • Others: Jack dances with Jill.

%You tug%s on %your jacket and point%s at %Name with both hands. %Name%'S overcome with desire and clearly struggle%S to keep %their composure.

  • Actor: You tug on your jacket and point at Jill with both hands. Jill's overcome with desire and clearly struggles to keep her composure.
  • Target: Jack tugs on his jacket and points at you with both hands. You're overcome with desire and clearly struggle to keep your composure.
  • Others: Jack tugs on his jacket and points at Jill with both hands. Jill's overcome with desire and clearly struggles to keep her composure.

%You tell%s %Name that Santa isn't real. %they %IS overcome with grief.

  • Actor: You tell Jill that Santa isn't real. She is overcome with grief.
  • Target: Jack tells you that Santa isn't real. You are overcome with grief.
  • Others: Jack tells Jill that Santa isn't real. She is overcome with grief.

%You give%s %Name a pep-talk. %Their glass is half-full!

  • Actor: You give Jill a pep-talk. Jill's glass is half-full!
  • Target: Jack gives you a pep-talk. Your glass is half-full!
  • Others: Jack gives Jill a pep-talk. Jill's glass is half-full!

%You give%s %Name a pep-talk. %their glass is half-full!

(Notice how the change in capitalization affects the transformation.)

  • Actor: You give Jill a pep-talk. Her glass is half-full!
  • Target: Jack gives you a pep-talk. Your glass is half-full!
  • Others: Jack gives Jill a pep-talk. Her glass is half-full!

%You pull%s out a box labeled, "%Your Awesome Things," and rifle%s through it.

Capitalized differentiation of forms is most evidently useful when dealing with the second-person pronoun. However, at this time only a contrived example is available.

  • Actor: You pull out a box labeled, "Your Awesome Things," and rifle through it.
  • Others: Jack pulls out a box labeled, "Jack's Awesome Things," and rifles through it.

%You rake%s %Name with %your vicious claws!

  • Actor: You rake Jill with your vicious claws!
  • Target: Jack rakes you with his vicious claws!
  • Others: Jack rakes Jill with his vicious claws!

%You %has a broken crown, while %Name %HAS no injuries.

  • Actor: You have a broken crown, while Jill has no injuries.
  • Target: Jack has a broken crown, while you have no injuries.
  • Others: Jack has a broken crown, while Jill has no injuries.

First-Person Style

By rephrasing messages in the first person from the perspective of the actor, we gain access to differentiated forms for the actor subjective and the actor objective.

While we still have to utilize case differentiation, we can avoid the use of the archaic "thou". However, we lose the important case differentiation between You / you, having to resort to the nonintuitive I / i.

form actor target
name (John) %I %Name
subjective (he) %i %they
objective (him) %me %them
contraction (name is) %I%'m %Name%'s
contraction (he is) %i%'m %name%'s
possessive (his) %my %their
possessive (name) %My %Their
reflexive (himself) %myself %themself
capitalization dynamic
capitalization (first letter) %<tag>%u / %<tag>%U
capitalization (word) %<tag>%lc / %<tag>%UC