***v.1.0***11/10/95******************************************************* ************************** TerraForm for Dummies ************************* ****************************************************by Ginger@FurToonia*** ***TerraForm (c)1995 firstname.lastname@example.org (Triggur)***************************
TerraForm, or TF (not to be confused with TinyFugue, also TF), is a way of creating a virtual landscape in a very small number of rooms. It creates space, allowing you to have the effect of a long journey using only one or two "real" rooms and a lot of "fake" rooms in between them.
You use TerraForm if you are:
You do NOT use TerraForm if you are:
TerraForm is a very large program--it should be used for large public or private areas where the illusion of space is desired. If you want people to have to actually walk through five or six rooms when they go from one of your areas to another, then you need to use TerraForm.
TerraForm works by creating a virtual "map" of the terrain you create. This map is stored in a property on the environment room (the room that holds the information for the whole planet). The environment room "holds" all the other rooms that make up your creation, and holds properties that tell TF what to do with the furries wandering about on your landscape.
When no-one is standing in a basic TerraForm landscape, the landscape actually does not exist. No rooms make it up. The only thing that says that landscape ever existed is the environment room. But when someone walks into a TerraForm landscape, TerraForm reacts, and @digs a room for the furry to be in.
As the furry walks through the landscape, TF watches them, and @digs a new room every time the furry goes into a new place on the map. When the furry leaves a room, TF @recycles it, so basically the only rooms in a TerraForm landscape are rooms with furries in them. They are the only rooms that exist, and more importantly, the only rooms in your @quota, or taking up database space. In this way, you could have a landscape of 50,000 rooms with a @quota of only 50...because not all the 50,000 rooms would always exist--they would only exist when furries were standing in them.
TerraForm will also create "layers" of existence--a "sky" layer over your landscape, and a "water" or "cave" sort of layer beneath it. It effectively creates an almost realistic three-dimensional space. Also, through the @ADMIN command, more than one person can be in control of an area, allowing easier collaboration (no more @chown-locks!) between co-builders. (See @OWN.)
When builders want to build a home on a TerraForm world, they set up a series of walls in the landscape (with @BLOCK ), and create a real room inside the TF terrain. This real room can form the basis of any number of structures that behave exactly the way they do with standard terrain. The interesting thing about building this way is that the new structure is already geographically linked to the rest of the MUCK!
Before you start actually using the TerraForm program, you need to @dig an environment room which will "hold" your landscape. Go to it, and stay there. Learn to like it. It is your friend. You will carry out all the @commands involved in the creation of your world while standing in this very room, so be nice to it.
Now that you've dug your friend Mr. Environment Room, you need to actually design the space in which you are going to build. For most furs, this will be an ASCII map of the space you wish to create. It's probably easiest to do this with "vi" or "pico" in another text editor outside the MUCK, and then port it in. If you don't know how to port things in, you can ask the helpstaff, or it's possible (just irritating) to design the map in the TerraForm program itself.
A small example of a good ASCII map is below:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW! !WWWWWWWWWWWWWWWWWWWWWWWWWWWlllllllWWWWWWWWWWWWWWWWWWWWWWWWWW! !WWWWWWWWWWWWWWWWWWWWWWWllllllllllllllWWWWWWWWWWWWWWWWWWWWWWW! !WWWWWWWWWWWWWWWWWWWWlllllllllllllllllllWWWWWWWWWWWWWWWWWWWWW! !WWWWWWWWWWWWWWWlllllllllllllllllllllllllWWWWWWWWWWWWWWWWWWWW! !WWWWWWWWWWWWllllllllllllllllllllllllllllllWWWWWWWWWWWWWWWWWW! !WWWWWWWWWWWWlllllllllllllllllllllllllllllllWWWWWWWWWWWWWWWWW! !WWWWWWWWWWWWWllllllllllllllllllllllllllllllWWWWWWWWWWWWWWWWW! !WWWWWWWWWWWWWWWlllllllllllllllllllllllllllWWWWWWWWWWWWWWWWWW! !WWWWWWWWWWWWWWWWWllllllllllllllllllllllllWWWWWWWWWWWWWWWWWWW! !WWWWWWWWWWWWWWWWWWlllllOOOOOOOlllllllllWWWWWWWWWWWWWWWWWWWWW! !WWWWWWWWWWWWWWWWWWWlllllOOOOOlllllllWWWWWWWWWWWWWWWWWWWWWWWW! !WWWWWWWWWWWWWWWWWWWWWlllBBBBBBllllWWWWWWWWWWWWWWWWWWWWWWWWWW! !WWWWWWWWWWWWWWWWWWWWWWlWWWWWWWWllWWWWWWWWWWWWWWWWWWWWWWWWWWW! !WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
No, that's not a lady with an Afro. The map above represents (badly) a small island (l) surrounded by water (W). There is an oasis, or lake, on the island (O) and a little bit of beach nearby (B). Notice that there are no blank spaces on the map. If you are only modelling land (not doing a "sky" layer or a "water" or "underground" layer), this is how your map should be--with no holes. The usage of blank spaces in maps will be covered later.
For now, notice that there are four kinds of terrain on this map: water (W), land (l), oasis, (O), and beach (B). For every kind of terrain you want in your creation, you must use a separate and distinct letter on your map. The letters are not case sensitive, which means that TF will interpret "Z" the same as "z", but you can use @ and $ and % and anything else that strikes your fancy if you need that many kinds of terrain.
Also notice the lines of !s running all around the border of the map. "!" on the map denotes a location where a furry running around in the TerraForm landscape cannot go (so don't use ! as a kind of terrain!). In a "standard" TerraForm map, a furry can walk off of one side and come around the "back" of the map to end up on the other side (she can walk off the left side of the map and end up on the right side). This "wraparound" effect is good for planet maps, but not good for an island in a lot of water (unless your planet is very small!), so the !s around the edges of the map prevent furries from wrapping around.
Now that you have a map, you need to choose whether or not you're going to make sky rooms, and how many rooms big your map is going to be. Because this is a relatively small island, we're going to pick about 60 virtual rooms from side to side, and 30 virtual rooms tall. (That's 2400 rooms. :) Big place.) We'd like a little sky, so we'll give it a three-room-tall atmosphere, which is standard.
Note: underground layers can be managed in two ways: by creating actual "land layers" or by using props set when you set up terrain types (discussed later). The second way is the easiest, so we'll use that method here.
Some MUCKs are not set up so that just anyone can make a new TerraForm landscape at any time. If your MUCK is like that, ask your friendly builderwizard to help you get set up; usually this involves parenting Mr. Environment Room (you knew he'd come in handy) to the TerraForm parent room (the room that's got all the props, and the program set up in it). If you don't know how your MUCK is set up, ask the wizards. That's what they're here for.
Once the wizard says it's okay, or once you know things work, stand in your friend the Environment Room and type @INITWORLD. A lot of funny things will scroll across your screen. It will ask you how many rooms go around the world (60, in our example) and how many rooms from pole to pole it is (40), how many rooms "tall" the atmosphere or sky is going to be (3), and what property players who can fly (can get into the atmosphere, in other words) need to set on themselves (we'll use _flight?:yes because it's relatively standard, but you could pick anything, even _kumquat?:no).
Whirr...whirr...voila! We have a TerraForm planet! Impressed yet? I thought not. You can't go anywhere now because you don't have a map. Read on...
Now you need to tell TerraForm about the landscape it's going to be creating for furries to walk all over. Remember that big afro a while back? We need to give that to TerraForm so it knows what to build. To do that, we get to type another big word: @EDITMAP This command drops you into the lseditor (normally accessed by lsedit here=<listname> if you aren't familiar with the program) and asks you to insert the map that you drew before you started all this. Just port in, or draw if you prefer, your own version of Lady With Afro, by Ginger, and when you're done, type .end on a line by itself and hit enter.
TerraForm will now ask you big questions having to do with co-ordinates. It's trying to make the map you just gave it fit the world it recently created. For this map, which is 60 x 40 rooms, the upper left corner will have the co-ordinates (0,0) and the lower right corner will have the co-ordinates (60,40). This will fit our map as exactly as possible onto the TF landscape. This isn't the only way to do this, but it's the simplest.
This is the easiest part of "creating a map room", or telling Mr. Environment Room how to manage your TerraForm landscape. Now on to the difficult part.
Note: before you read this, you should read the section on description prototypes in the Exotic Stuff section.
If you remember, on Lady With Afro, we had four "terrain types" -- water, land, oasis, and beach, represented by W, l, O, and B, respectively. We've told TerraForm that we have them, and we've told it where the terrain types are in relation to each other, but we haven't told TerraForm what the terrain is like yet. If you were to walk into the TF landscape right now, you'd get a whole bunch of error messages, because TF doesn't know what W, l, O, and B mean, and doesn't know where to put you or what to tell you about where you're standing. Well, you're going to fix that now.
Let's start with the easiest one: land, (l), and begin
TF is now going to ask you for a name prototype. That's the name it will give every room it creates in that part of the map you defined by l. Use something like "Island Paradise" or "Tropical Forest" or "Another &%(#Empty Island Room"--something that will be a good, basic name, for, say, 1000 rooms. (Scary, isn't it?) We'll use something boring like
Now it wants something called a description prototype. That works much the same way as a name prototype--it's the basic description for those thousand rooms of island (Thousand Island(tm) rooms?). It is one line long--about 1000 characters. (Don't hit enter until you are completely finished entering the name.) Now, you could enter something here like 'You see sand.' but that would be boring, especially for someone walking through 1000 rooms of that. We're going to do something simple, since this is just an example:
This is another long stretch of beach. There are %animals% running about on the sand. Around you, you see a ludicrous number of mountains.
(See the section below for more info on prototypes.)
Once you've entered the description prototype, TerraForm will ask you for the verbs that will appear when furries move through that type of the terrain (See A Note on TerraForm Exits). For our example, we'll use wander for the first person verb, and wanders for the second person verb, to get messages like Ginger wanders south. when someone moves on the land-type terrain.
Now TerraForm will ask you for the "depth" in rooms of this type of terrain (this means can you go "down" from one of these rooms, and, if so, how far?). Since this is solid land, our answer will be 0, but if we were doing the water (W) terrain, we would want people to be able to swim, so we would pick 1, or 2, or 3, depending on the depth. (Note: if you want to have some shallow bits of water, or and some deeper, you can use two kinds of terrain for this.) If you pick something other than 0 for the depth of the terrain, you then get to go through the same thing you just did all over again: TF asks you for the name and description prototypes of the terrain under the first terrain, as well as the message verbs (again), as well as the name of a property to check on the player to allow them to move below the surface (_swims?:yes, perhaps, in the instance of water).
You get to go through this sequence for all of the letters in your map (all four kinds of terrain, in our example). If you leave any out, or have blank spaces in your map , these will be treated as "holes" in your map, and TF will go down to the next layer of the map to find what terrain you're on. If there isn't any layer below, or if that layer doesn't have the terrain defined, you get a spewing of error messages, which is bad.
However, once you've defined all of your terrain types, your TerraForm landscape is ready and operational (at last)!
This amusing little toy lets furries co-own a world. Once the designer has mapped it out, he or she can type @ADMIN <player>, and add that <player> to the list of furries that can alter the landscape. Anyone set @admin for a particular map room controls the TerraForm landscape contained in that maproom and in any other maprooms "beneath" that map room (see the section on map layers for more), but not the map rooms above it. @ADMIN with no arguments lists the admins for that map room and below (not above).
Stand in a TerraForm-generated room and use this command to transfer ownership of that room to yourself so that you can work on it. This works only if you are an admin who can control that area; but this is makes it very easy to co-own a lot of space with a number of furries so that multiple builders can work on a single space.
@TPORT <X> <Y> <Z>
@TPORT #ADD <placename>
This lets wizards and admin players zip around across a world without having to slog through the hundreds of rooms of empty space (I thought the reason for having TerraForm in the first place was to have those empty rooms to walk through!). X, Y, and Z(optional) are the co-ordinates on the map, or #ADD <placename> will let you name sets of co-ordinates. #list will list those names and the co-ordinates they represent.
This is the equivalent of @backlink, and should be used almost any time you try to link an exit into or out of a TerraForm-generated room. It asks first for the database number of the destination room to link to. Then it asks for the name of the exit from this room to that room, and then for the name of the exit from that room to this room. You can use it to link to either standard rooms or TerraForm created rooms--but no, there's no point in using it to link two non-TerraForm rooms. Use @backlink.
Please see A Note on TerraForm Exits for @succ, @odrop, etc., information.
When you create a home in a TerraForm created room, you have a problem, because TerraForm still thinks the room is outdoors, and therefore there is solid ground underneath, and no upper floors or anything. To tell TerraForm to bugger off while you build your skyscraper and its basement, once you've built the first room of your home, type @INSIDE YES. This will: a) make your home permanent (it will remain after you leave it, as a permanent, real room, and you can change its description, etc), and b) tell TerraForm that there's a house there, and TF will then let you go up and down from that spot, and also add more rooms into the space, so that you can stuff an 8-room cottage into what was once just one room on the TerraForm map.
Note that all the new rooms you build above and below the first, you must set them @INSIDE YES as well, or TerraForm will think you just walked off the roof into the atmosphere. (I.e., if you go "down" from your first room, you must set that room @INSIDE YES; the same if you went "up".)
@BLOCK <list of directions>
This command lets you make "walls" in the normally boundary-free TerraForm space. Typing @BLOCK n;w;s will prevent players from moving north, west, or south from that room. You can block any direction, or all directions. The list given should use the exits in the form n,s,e,w,ne,se,nw,sw,u,d, and should separate them with semicolons. If you @block the exit north in one room, it also @blocks the exit south from the room north of the one you are in (creating a wall that exists in both directions). @BLOCK by itself lists the directions that are currently blocked off. To unblock an exit, use @BLOCK !<direction>.
This command has nothing to do with toilets. It specifies, in a TerraForm room, whether or not the room will be automatically @recycled when everyone has left it (as is standard). If set @FLUSH YES, the room will be @recycled; if @FLUSH NO, it will be preserved (and this permanent room is the kind of room you build towns in. Note that preserved rooms set @FLUSH NO or @INSIDE YES stay on your quota and are effectively real rooms). If set @FLUSH CLEAR, the room will be set flushable, and all @TLINK exits out of it that lead to other TerraFormed rooms will be destroyed. With no parameters given, @FLUSH tells you the current status of the room.
Exits in TerraForm are not easily customisable--you cannot have specific @succ, @osucc or @odrop messages for every exit you create. This is simply because you'd have to put messages on 50,000-odd exits, and that's just not feasible. That's not to say that the exits in a TerraForm landscape don't have any messages attached to them: you can change them, to an extent, in @EDITTERRAIN.
After you've entered the description prototype for the terrain you're working on, TF asks you for the verbs you would like to have displayed in the messages when furries move in that kind of terrain. The messages are in the format <player> <verbs> <direction> (example: Ginger wobbles north.). What TerraForm is asking you for is the value of <verbs>; in the first person (wobble, as in You wobble north.) and second person (wobbles, as in Ginger wobbles north.).
Exits made by @TLINK, or those into rooms that are set @FLUSH NO can be customised. However, these exits use props instead of actual @succ messages:
@set <exit>=succ:You wander into the next room.
Note: There is a way to edit the messages on TerraForm-created (not @TLINK-created) TerraForm exits so that they will be a little more complex than this. However, it is not a good idea to change TerraForm properties randomly, so unless you're sure what you're doing, ask a wizard to help you before you fiddle with it yourself.
In our example, we created a simple, one-layer map for a small island surrounded by water. It wasn't very detailed, but then, it didn't need to be. However, let's imagine we're trying to make a TerraForm "Earth", and want to make it detailed down to our home town in Yucca, Iowa.
We start by making a planet map, in an "Earth" environment room, with fairly accurate approximations of continents and such, some bodies of water, etc. We give Earth a 3-room atmosphere and some pretty deep oceans; we define some forests and some deserts, etc., but we realise that Iowa is a pretty small speck in one of the Ms that define the United States. How do we make Iowa more detailed?
As stated above, any blank spaces or undefined terrain types on your planet map are treated as holes, and TerraForm "falls through" the map to the layer below it, to see if it can find a terrain type there. So, let's make a map for the state of Iowa, and stuff Yucca on it so everybody can see. You make this map just as though it were the map of a whole new planet--"Planet Iowa" if you like--and define all of Iowa's terrain, and arrange it just like you did Earth's, though perhaps with a couple less oceans.
Now, you go back to the map of Earth, and pick an M where you think Iowa should be, and erase it, leaving a blank space there. Parent Iowa's environment room to Earth's environment room. Now, when someone "falls into" the blank space on Earth's map, they fall into Iowa. Keen, huh?
TerraForm has a slight problem. When it @digs a new room as a furry walks into it, it needs to put a description on it. However, when it asks you for a name prototype, it will only let you enter one "line" (about 1000 characters) of data. It looks like all 1000 of your rooms with that one terrain prototype will have the exact same description!
This is, fortunately, not the case. TF has a built-in system to create variation in its descs. When you enter a description prototype (like the one above in the example), you can enter strings like this:
You see %number% %objects%.
Then, after you've finished editing the terrain, make a list on the environment room called ./number, like so:
Make another list in the same manner on the same room, entitled ./objects, and fill it with entries like rabbits, spaniels, or flamenco dancers, to round out the description.
When TerraForm @digs a new room, it will look at the description prototype for the terrain the furry is walking into, and come up with the string You see %number% %objects%. It will then grab a random line from each list (./number and ./objects) and insert that line into the desc in place of %number% and %objects%. So, for any given room, it might pick ten and rabbits, and the description of the new room would be:
You see ten rabbits.
Amazing, isn't it? You can put %<listname>% into the lists, too, so you might make a list like:
fine Swiss cheeses
If your environment room had a list called ./gigolos on it, when TF picked that line of the object list, it would hunt through the list of gigolos for a random member. This process allows for almost infinite variation in the descriptions of the rooms TerraForm creates!
Note that once a room has been created for the first time, all subsequent times it's entered, it will have the same description. This is so landmarks like mountains and lakes remain permanent, and a room that is listed as having twenty-seven personal masseuses in it always has twenty-seven personal masseuses in it.