14 Apr, 2009, Iota wrote in the 1st comment:
Votes: 0
Hi, I'm a big fan of the ArmageddonMUD 1 engine. Since their code isn't open source, I decided to take a crack at making a knock-off of their engine last summer. I haven't worked on it for about a year, but I plan to start up again. It's a CircleMUD derivative.

If I could find people who are interested in helping me who also have a lot of experience with C, I would be ecstatic.

So far, it supports emote code syntactically and functionally equivalent to ArmageddonMUD's, says, tells, command emotes, emote commands, directional looking, emote-like ldesc changes, equipment list style, et cetera.

Here are some examples:
Quote
basic emote code example:

You type:
emote looks down at &me, then up at ~short, eyes squinting at !short curiously
The petite, raven-haired lass looks down at yourself, then up at the short, auburn-haired lass, eyes squinting at her curiously.

She sees:

>
The petite, raven-haired lass looks down at herself, then up at you, eyes squinting at you curiously.



say/tell example:

You type:

tell auburn [waving at !auburn cheerily] Hey there!
Waving at her cheerily, you exclaim to the short, auburn-haired lass, in ingirish:
"Hey there!"

She sees:

>
Waving at you cheerily, the petite, raven-tressed lass exclaims to you, in ingirish:
"Hey there!"

>

Change ldesc example:

You type:

>
change ldesc is standing here, leaning against %auburn shoulder and ~machine.
Your new ldesc is:
The petite, raven-tressed lass is standing here, leaning against the short, auburn-haired lass's shoulder and an automatic teller machine.

>

She sees:

>
l
The Temple Of Midgaard [NESWD]
You are in the southern end of the temple hall in the Temple of Midgaard.
The temple has been constructed from giant marble blocks, eternal in
appearance, and most of the walls are covered by ancient wall paintings
picturing Gods, Giants and peasants.
Large steps lead down through the grand temple gate, descending the huge
mound upon which the temple is built and ends on the temple square below.
To the west, you see the Reading Room. The donation room is in a small
alcove to your east.
An automatic teller machine has been installed in the wall here.
The petite, raven-tressed lass is standing here, leaning against your shoulder and an automatic teller machine.

>

Command emote example:
You type:

l short (curiously) [from ^short hat to ^short boots]
Curiously, you look at the short, auburn-haired lass, from her hat to her boots.
This woman has auburn hair and is pretty short. This is a dummy mdesc.
The short, auburn-haired lass is in excellent condition.

The short, auburn-haired lass is using:
<worn on head> a darkly-stained, sandcloth hat
<worn about body> a darkly-stained, sandcloth greatcloak
<worn on legs> a pair of sandcloth pants
<worn on feet> a pair of chalton boots


She sees:
>
Curiously, the petite, raven-haired lass looks at you, from your hat to your boots.

>

Emote command example:

You type:

i
You are carrying:
a long sword

>
emote hands *sword to >petite, hilt first.
The short, auburn-haired lass hands your long sword to the petite, raven-haired lass, hilt first.

>
i
You are carrying:

>

She sees:
>
The short, auburn-haired lass hands her long sword to you, hilt first.

>
i
You are carrying:
a long sword

directional look example:
You type:
>
l s
You look down the huge stone steps at the temple square below.
[Very Far]
A cityguard stands here.
[Far]
Nothing.
[Near]
A large fountain carved from blue-streaked marble is here, bubbling merrily.
A janitor is walking around, cleaning up.
A Peacekeeper is standing here, ready to jump in at the first sign of trouble.

>
l e
In the east, you see a small alcove with a rickety wooden sign which
reads "Midgaard Donation Room."
[Near]
Nothing.

>
14 Apr, 2009, David Haley wrote in the 2nd comment:
Votes: 0
Quote
emote hands *sword to >petite, hilt first.
The short, auburn-haired lass hands your long sword to the petite, raven-haired lass, hilt first.

Hey, that's kind of cool. Is that actually encoding some kind of command in the emote so that the emote causes something to happen?
14 Apr, 2009, Iota wrote in the 3rd comment:
Votes: 0
Yeah, you can do several things with a combination of tokens, like picking stuff up or dropping it, taking/putting stuff into containers, giving stuff to people, or looking at objects/people.

The MUD I'm writing a knock-off of lets you do those things with "pre-emotes" and "post-emotes" that add emotes onto the normal, fixed echo of certain commands.

I can allow users to perform some of these commands from inside free-form emotes with that system and use it to provide backwards compatibility for the traditional syntax.

Here's another example:
Quote
emote deftly, @ snatches up <bread from the ground
Deftly, the petite, ebon-tressed woman snatches up your waybread from the ground.

>
i
You are carrying:
a waybread
a leather backpack

>
emote stuffs *bread into >backpack, licking ^me lips
The petite, ebon-tressed woman stuffs your waybread into your leather backpack, licking your lips.

>
i
You are carrying:
a leather backpack

>
exa backpack
You look at your leather backpack.

In a leather backpack (carried):
a waybread

>
14 Apr, 2009, Idealiad wrote in the 4th comment:
Votes: 0
I've always liked the idea of Arm's token system, but never really the practice of typing all those tokens.

What would be interesting (though maybe even more confusing, and frankly maybe impossible) is to integrate the concept of the Inquisition's combat emotes with all forms of interaction. So when you do emote hands the gold sword to short, hilt first, the mud givesthe gold sword to the short-haired man.
14 Apr, 2009, David Haley wrote in the 5th comment:
Votes: 0
This is definitely interesting. I agree that the token syntax is a little off-putting at first glance, but I think you'd get used to it pretty quickly.

Idealiad, doing what you're talking about sounds like it would require a fairly involved NLP parsing engine, or constraining the form of acceptable emotes to simplify the task somewhat.
14 Apr, 2009, Iota wrote in the 6th comment:
Votes: 0
Idealiad said:
I've always liked the idea of Arm's token system, but never really the practice of typing all those tokens.

What would be interesting (though maybe even more confusing, and frankly maybe impossible) is to integrate the concept of the Inquisition's combat emotes with all forms of interaction. So when you do emote hands the gold sword to short, hilt first, the mud givesthe gold sword to the short-haired man.


If I had any idea of how to do that, you can be bet I'd be coding it into my MUD. :)
Then I'd publish a paper about it in a computer science journal or something. :D

It could get hairy for sufficiently complicated sentences, especially involving those involving more than one object or person, like "emote smiles knowingly to Sarah and winks at her, then gives her bag to John by putting it in his lap."

In a token system, this is a piece of cake. Without tokens, though, the burden of determining linguistic meaning from the emote text falls on the engine; it might not be able to do this without "understanding" on some level what's actually going on. In that emote, the first "her" obviously refers to Sarah, and the second "her" sort-of obviously refers to yourself, and "his lap" is obviously John's lap. None of that is obvious to a computer, though.
14 Apr, 2009, Scandum wrote in the 7th comment:
Votes: 0
Looks like a massive learning curve to use the emote system, which isn't necessarily a bad thing. I wonder how well this works in practice?

Also, is the first line of the directional look message pre-defined, or automatically generated?
14 Apr, 2009, Iota wrote in the 8th comment:
Votes: 0
Scandum said:
Looks like a massive learning curve to use the emote system, which isn't necessarily a bad thing. I wonder how well this works in practice?

Also, is the first line of the directional look message pre-defined, or automatically generated?


ArmageddonMUD is actually pretty popular, in spite of having a steep learning curve for both its setting and commands. It took a day or two to get a hang of it for me, but after I'd done it, I didn't want to roleplay out scenes involving more than two people without it.

The first line of the directional look output was something pre-defined from the room exit description.
14 Apr, 2009, Scandum wrote in the 9th comment:
Votes: 0
Iota said:
It could get hairy for sufficiently complicated sentences, especially involving those involving more than one object or person, like "emote smiles knowingly to Sarah and winks at her, then gives her bag to John by putting it in his lap."

In a token system, this is a piece of cake. Without tokens, though, the burden of determining linguistic meaning from the emote text falls on the engine; it might not be able to do this without "understanding" on some level what's actually going on. In that emote, the first "her" obviously refers to Sarah, and the second "her" sort-of obviously refers to yourself, and "his lap" is obviously John's lap. None of that is obvious to a computer, though.

You'd need to capitalize Her and Him and leaving a 'her' referring to yourself lowercase. The engine would translate Her to 'you' for the target, and 'her' for the rest of the room. There are probably more issues to resolve, but it seems like a minor concession compared to remembering all kinds of tokens, especially since automatically determining him/her/his could be rather disastrous when talking to a guy disguised as a woman.
14 Apr, 2009, KaVir wrote in the 10th comment:
Votes: 0
Quote
emote looks down at &me, then up at ~short, eyes squinting at !short curiously.
The petite, raven-haired lass looks down at yourself, then up at the short, auburn-haired lass, eyes squinting at her curiously.

If you want to start the sentence with "The petite, raven-haired lass", wouldn't it be better (not to mention far easier) to write the entire sentence in third person?

If you want the sentence in second person, the Diku approach of using "You" is generally okay. Personally I use "Your character", as then you end up with "Your character looks…" rather than the grammatically incorrect "You looks", however I'm sure RPI fans would run screaming at such separation between IC and OOC ;)

By the way, my syntax for the above emote would be:

emote @short looks down at herself, then up at you, eyes squinting at you curiously.

Idealiad said:
What would be interesting (though maybe even more confusing, and frankly maybe impossible) is to integrate the concept of the Inquisition's combat emotes with all forms of interaction. So when you do emote hands the gold sword to short, hilt first, the mud givesthe gold sword to the short-haired man.

It wouldn't be particularly difficult to implement, but I fear it could end up producing undesirable (and sometimes unintentional) results. One variation on the idea might be to prefix all emote commands with an @ symbol, so that you can "@give hands the gold sword to short, hilt first".
14 Apr, 2009, Idealiad wrote in the 11th comment:
Votes: 0
For something like this maybe you would want to change the usual practice of emoting in the third person. Then you could type 'I smile knowingly to Sarah and wink at her, then give my bag to John by putting it in his lap'. 'I' is an alias for emote. Everyone else in the room sees '<your character> smiles knowingly'….verb agreement might be tricky there though. :grinning:

And to keep this somewhat on-topic, yes faithful Arm players seem to really llike the token system.
14 Apr, 2009, Iota wrote in the 12th comment:
Votes: 0
The emote token system actually looks more intimidating than it really is.
From the Arm help file:
Symbol	 Reference	 Target Sees
—— ——— ———–
~ (sdesc) you
% (sdesc)'s your
! him/her you
^ his/her your
# he/she you
& himself/herself yourself
= (sdesc)'s yours
+ his/hers yours


And that's it. The command emote extensions add three, '*'(target of command),'>' (in, into, or to), and '<' (out of or from).

There are undoubtedly better, possible alternatives, but it works for us, I guess.

[Another edit, to avoid an annoying double-post]

The problem of someone roleplaying a man disguised as a woman or vice versa never occurred to me. I suppose what I would do to resolve this is to allow the disguised person to change his or her gender for the purposes of emotes, perhaps allowing people with high enough perception (or whatever) to see through it codedly.
14 Apr, 2009, Scandum wrote in the 13th comment:
Votes: 0
KaVir said:
If you want the sentence in second person, the Diku approach of using "You" is generally okay. Personally I use "Your character", as then you end up with "Your character looks…" rather than the grammatically incorrect "You looks", however I'm sure RPI fans would run screaming at such separation between IC and OOC ;)

Merc uses: act( "$n $T", ch, NULL, buf, TO_CHAR ); So it prints the character name rather than "You"

I think the following would work: emote smiles knowingly to Sarah and winks at Her, then gives her Bag to John by putting it in His lap. - Capitalized His/Him/He indicates the keyword refers to a target. 'Sarah' is a keyword given it's capitalized, and so is 'Bag' and 'John'. The main problem would be separating characters from objects, but Diku style grouping could be used: emote smiles knowingly to Sarah and winks at Her, then gives her 'Leather bag' to John by putting it in His lap.

If the bag was to be actually put in the lap "it" should be capitalized so the parser knows it refers to a previously used object.
15 Apr, 2009, David Haley wrote in the 14th comment:
Votes: 0
Well, Iota says that empirical evidence suggests that people get used to the token system pretty quickly. So I'm not sure it's really necessary to start designing particularly fancy NLP systems. Even if you started doing NLP, you could just constrain the grammar somewhat and parse only simplified English for emotes that actually do something. Then you'd just need to distinguish between what is free-form text, and what is meant to be a command. Still, I'm not sure this is really necessary if people grok the token system.
15 Apr, 2009, KaVir wrote in the 15th comment:
Votes: 0
David Haley said:
Well, Iota says that empirical evidence suggests that people get used to the token system pretty quickly. So I'm not sure it's really necessary to start designing particularly fancy NLP systems.

Players can get used to most systems, but that doesn't mean those systems can't be improved or replaced with something better. If the target audience is Armageddon players then obviously it makes sense to use the token system they're familiar with - just as it can make sense (for example) to use a standard Diku combat system if hardcore Diku players are your target audience. But the value of that familiarity should be weighed against the possible benefits of alternative approaches.
15 Apr, 2009, David Haley wrote in the 16th comment:
Votes: 0
Of course. And just as obviously, the possible benefits of alternative approaches should be weighed against the difficulty of said alternative approaches. Unlike using (even simplified) natural language to implement actual commands, such as "give the sword to Bob", RP emotes like this could contain basically arbitrarily complex sentence structure. Even highlighting targets using capital letters or whatever, you still have to parse what exactly is being said.

"Bob gives John a high-five, then lets his Bag drop."

"Bob gives John a high-five, then hands over his bag."

to differentiate these, you'll have to do a fair bit of work…
15 Apr, 2009, KaVir wrote in the 17th comment:
Votes: 0
If you want to be able to support complex emotes in a generic fashion, another option might be to have the emote part distinct from the actual command. Perhaps you could use something like the @ character as a separator, which can be added after (almost) any command to replace the default message with whatever you've specified? For example:

get sword @ reaches down and picks up the sword, twirling it experimentally in his hands

give sword bubba @ deftly flips his sword into the air, catching it by the blade and handing it to you hilt first

You could even use the same system for creating custom combat messages, eg:

kick bubba @ leaps into the air, driving his heel into your face

And if you did that, you could even allow players to create their own range of custom combat messages:

alias punch: strike bubba @ swings back his arm, and slams his fist into your face
alias knee: strike bubba @ lunges forward and drives his knee into your groin
alias impale: stab bubba @ drives his blade into your stomach


But I'm getting a bit sidetracked now ;)
15 Apr, 2009, David Haley wrote in the 18th comment:
Votes: 0
That's what I was alluding to in #14. It's not ideal, and it suffers in particular from the problem that you can completely mask what you're actually doing. But it's a decent compromise.
15 Apr, 2009, Grimble wrote in the 19th comment:
Votes: 0
KaVir said:
For example:
get sword @ reaches down and picks up the sword, twirling it experimentally in his hands
kick bubba @ leaps into the air, driving his heel into your face

I like the idea, but isn't there still the problem of needing text for each grammatical person? The first example is a third-person message (i.e., it's for all nearby observers), while the second example is a second-person message (i.e., it's only for bubba). In the latter example, what do the rest of the nearby observers see? You may end up getting back into using grammatical tokens to specify the appropriate name and pronoun substitutions, and can be awkward in other respects (e.g., figuring out when to use "are" versus "is", "get" versus "gets", etc).
15 Apr, 2009, Scandum wrote in the 20th comment:
Votes: 0
KaVir said:
alias knee: strike bubba @ lunges forward and drives his knee into your groin

You'd need a true false syntax in case the attack misses:

alias knee: strike bubba @ lunges forward and drives his knee into your groin|lunges forward and drives his knee upward toward your groin

And probably some syntactical sugar so the engine knows how to parse the message properly.
0.0/31