Jenn says "Tonights second class is entitled:"

Poo on the Floor: The little details that make a room spiffy 
(In Three Parts)

Part 1: Shedding some light on dark objects

Jenn says "In a text based environment, it's really important that the surroundings *feel* real, otherwise there is no soul to a place, it's just a description. In this class I will demonstrate several techniques for you all to practice on your own later, techniques that, in my opinion, make a room feel far more realistic."
Jenn says "The first step, of course, is to dig a room. :)"

Jenn types --> @dig A Sitting Room

Jenn types --> @open Sitting Room;sr=#3902

Jenn types --> @osucc sitting room=steps into the sitting room.

Jenn types --> @succ sitting room=You step into...

Jenn types --> @desc sitting room=A small door.

Jenn says "And now, into the new room..."
Jenn says "okay, we have this blank room, and we're all stuck in it! ACK!"

Jenn types --> @open out=back

Jenn says "now we arent :)"
Jenn says "The first thing we need to give a sense of realism is a description."

Jenn types --> @desc here=The sitting room is cozy and warm, with a large sofa, coffee table, and rocking chair sitting atop a hand knotted rag rug. Bookshelves line three walls, and on the fourth is a large fireplace with a woodbin and fire tools beside it.

Jenn says "We have a room and we have an @desc. One thing that will make this room more realistic is a way to SEE the things in it. There are several ways to do this. I prefer the subtle but solid approach, for the most part: Dark Objects

Jenn types --> @create bookshelf bookshelves

Jenn types --> @lock bookshelf=bookshelf

Jenn says "The lock is to keep people from taking it from the room, and the two names are because some idiots will think the room says bookshelF and get mad when they cant see it. If you want, you can separate the two names using only a semi-colon."

Jenn types --> @set bookshelf=d.

Jenn says "and dark is because there is no need for an object mentioned in the rooms @desc to spam up the rooms contents list."

Jenn types --> @desc bookshelf=The shelves are made of mahogany, and hand rubbed to a gentle sheen. A copy of War and Peace is sitting open atop one of the shelves.

Jenn types --> @fail bookshelf=You run a fingertip over the bookshelf, admiring the grain of the wood.

Jenn types --> @ofail bookshelf=runs a fingertip over the bookshelf, admiring the grain of the wood.

Jenn says "And that is a dark detail. However, you can add MORE realism by layering your details."
Jenn says "You will notice that the bookshelf's @desc has a copy of war and peace in it. Right now, there is no way for us to look at the book, but that can be fixed by doing this:"

Jenn types --> @create War and Peace

Jenn types --> @lock war and peace=war and peace

Jenn types --> @desc war and peace=A very long, very dull, very soporific book.

Jenn types --> @fail war and peace=You pick up War and Peace and read and read and read and read and read and read and READ. Finally tiring of the dull thing, you replace it on the shelf.

Jenn types --> @ofail war and peace=picks up War and Peace and reads and reads and reads and reads and reads and reads and READS. Finally tiring of the dull thing, %N replaces it on the shelf.

Jenn types --> @set war and peace=d

Jenn says "So dark details and layered dark details are a good way of adding a feeling of realism to a room. Another way is to add commands to a room..." 


Part 2: Commanding realism in a text based environment.

Jenn says "by adding commands to a room, you make it possible for people to *use* the room. For example, sitting on the sofa."

Jenn types --> @open sit on the sofa;sit;sofa=here

Jenn says "that command can serve a dual purpose, by the way, as shown in a minute."

Jenn types --> @desc sofa=A large, overstuffed, purple velvet sofa. Ugly but COMFORTABLE!

Jenn says "by naming your room commands well, you can also use them as dark details. You'll notice that just having a sit command isn't good enough."
Jenn sits on the sofa.
Jenn sits on the sofa.
Jenn sits on the sofa.
Jenn says "How many times can one person sit? Theoretically, if you sit down, you need to stand up again before you can sit back down, right? Welcome to the beautiful world of @locks."
Jenn says "To make a simple series of cascaded visibility locks, which is what is called for in this case, you need to first set the command in question 'sticky'"

Jenn types --> @set sofa=s

Jenn says "we also need a way for people to stand up."

Jenn types --> @open stand up=here

Jenn says "now come the locks: we will need two locks, one on sit, and one on stand up. The lock on sit will make it so that a person cannot sit again until they have stood up. it will also remove that command from the options available when the sitting person looks at the room"

Jenn types --> @lock sit=!sit;!sit

Jenn says "we need a similar lock on stand, to prevent people from standing up when they aren't sitting down. In this case:"

Jenn types --> @lock stand up=sit;sit

Jenn says "what that lock says is: if the person is not sitting, they cant stand, and they wont know that the option exists if they look around. There is still one problem though: you can stand a bajillion times, so we need to place an @effect on stand up, to remove the sticky SIT exit from the player."

Jenn types --> @eff stand up=rem sit

Jenn says "and thus is created a simple cascaded visibility lock."
Jenn says "okay, the final nifty realism trick in building is a bit more involved." 


Part 3: Using wierd things to do not wierd stuff.

Jenn says "This is a method of making the movements of one player affect the entire room, and i suck at this, so please bear with me while i rip out my hair every few mionutes. I'm going to make the fireplace a truly working thing, because realism is such that once a fireplace is lit, it is lit until it is put out, and that it can only be lit when it isnt already lit. It makes no sense for me, MiracleFish, and Rubinia to all be able to light a fire all in the same room within a minute of eachother, right?. Thats rather unrealistic :)"

Jenn types --> @open light a fire;light fire;get firewind=here

Jenn types --> @succ light fire=Taking a long match in hand, you strike it on a brick, then toss it into the fireplace and watch the kindling catch fire.

Jenn types --> @osucc light fire=tosses a lit match into the fireplace and watches the kindling light up.

Jenn says "okay, that exit needs to be sticky :)"

Jenn types --> @set light fire=s

Jenn says "the lock on this is kind of weird :)"

Jenn types --> @lock light fire=!(light fire:here);!(light fire:here)

Jenn says "and the effect is also a bit odd."

Jenn types --> @eff light fire=add light fire:here Jenn says "the effect adds the exit to the room. So now, when someone lights the fire, it stays lit, and everyone sees it as lit. Also, no one can light the fire after it is lit. The lock on the room makes this happen, in conjunction with that @effect on the command."

Jenn types --> @fail light fire=You burn yourself on the flames!

Jenn types --> @ofail light fire=burns %p fingertips in the already lit fireplace!

Jenn says "now, if someone tries to light the fire when its already lit, they get a rather painful surprise. This is great, except no one can put the fire out! That's what we'll set up now:"

Jenn types --> @open douse the fire;douse fire;drop firewind=here

Jenn types --> @lock douse the fire=(light fire:here);(light fire:here)

Jenn types --> @ofail douse fire=looks sorta stupid dousing an already doused fire.

Jenn types --> @fail douse fire=its already out, goof.

Jenn types --> @succ douse fire=You pour a small pail of water over the flames, watching them flicker and die.

Jenn types --> @osucc douse fire=pours a small pail of water over the flames, watching them flicker and die.

Jenn says "and of course, the effect:"

Jenn types --> @eff douse fire=rem light fire:here

Jenn says "and another really nifty trick to add on top of this one is to add an @succ and @fail to the room, and lock the room appropriately..."

Jenn types --> @lock here=light fire:here Locked.

Jenn types --> @succ here=A fire dances merrily in the fireplace.

Jenn types --> @fail here=The hearth is cold and dark.

Jenn says "Now, if someone looks at the room, they can tell whether or not the fire is lit. By the way, with a good alias on that light fire, something like fire;fireplace as well as the other ones, i could have described the fireplace as a dark detail :)"
Jenn says "Also, if you're a purist, you can leave out the @desc of the room entirely, and just use @succ and @fail."

Jenn types --> @succ here=The sitting room is cozy and warm, with a large sofa, coffee table, and rocking chair sitting atop a hand knotted rag rug. Bookshelves line three walls, and on the fourth is a lit fireplace with a woodbin and fire tools beside it

Jenn types --> @fail here=The sitting room is dark, and chilly, with a large sofa, coffee table, and rocking chair sitting atop a hand knotted rag rug. Bookshelves line three walls, and on the fourth is a cold fireplace with a woodbin and fire tools beside it.

Back to the Building Tutorials