TWiki Home Tharsis . Website . BlobRoomTutorial Tharsis webs:
Design | Guilds | Combat | Website
Website . { Home | Changes | Index | Search | Go }
This tutorial is intended to lead new Builders step by step through the process of configuring and using the blob to make a room.

Please follow the steps carefully - they DO work.

In this example I use a map that consists of three rooms joined together as follows

[cave_2]---[cave_1]---[cave_3]

I will be creating cave_1.

Legend:
- Text I typed
- comments
- text appearing in the mud window

Note that my prompt is C:>, yours is probably something else

Before you start please verify that you have a blob, one can be obtained from the dispenser in your workroom.



1: Blob appearance and getting help

C:> look at blob

Blobs are used to make things.  You can see the list of commands provided by this blob by issuing the command 'blob help'
You can configure it with the 'setup' and 'domain' commands.
The blob will change it's description based on it's configured state. It remembers the configured state between logins. Shown here is the appearance of a blob that has never been configured at all.

C:> blob help

The universal blob is used to make things.
The blob provides several commands you use by doing 'blob'  
To use it you must set up a domain for it to use and a type of object to make.
You do this using the 'domain' and 'setup' commands.

Available commands are:
   domain  - to configure the domain to use
   setup   - to configure the type of thing to make
   types        - to list the allowable arguments to the 'setup' command
   status       - to show the blob status, also obtained by looking at the blob
   make    - to start making a new item,
                  optionally specifying the file to save to
   load    - to load a previously created item
   list [all]   - to list previously created items
                  without the all argument only lists items for the current setup
   delete  - to remove a previously created item
   cd           - to cd to the working dir for the blob
   goto    - to teleport to an object in 'list' which is a room.
   clone   - to clone an object from the current setup ino your inv.
   advanced (on|off) - to enter or leave advanced mode.
   newdomain    - to create a new domain (king only).

Help can found at 
   http://tharsis.dyndns.org/wizard/blob
   'help blob'

Please refer back to 'blob help' if you run into trouble with the commands, and note that 'help blob' gives you different help!


2: Configuring the domain

The blob builds every object inside a Domain.
A Domain called test has been created which can be used by anyone when just messing around with the blob.

C:> blob domain test

Blob is initialising...
You have not configured the blobs 'type'.  Use blob 'setup'

The blob is now configured to use the test domain.


3: Configuring the type of object to make

The blob can be used to build several types of object. You must configure it to build the correct type of object. The blob types command can be used to see the types of objects that can be made.

C:> blob types

Possible types are: 
armours      containers   monsters     rooms        treasures    weapons
When you use the blob setup command you must select a type from the above list and type it in exactly. blob setup room WILL NOT WORK

C:> blob setup rooms

Blob is initialised for type 'rooms' ...
Using domain: DOM_TEST
Making things of type: rooms
Blob domain dir: /room/areas/develop/test
Blob working dir: /room/areas/develop/test/rooms

The blob is now configured with a domain and a type. It is now time to start making.
Note that you can change the type as often as you like.


4: Making the cave_1 room

The blob make command is used to start making a new thing, the blob load command is used to load a thing created in the past. The blob list command lists the things created in the past.

C:> blob make

Commands: 
   exits, inside, items, light, long, objects, short, advon, list, save, abort
Enter choice:

The blob works by presenting you with the list of attributes that you can set. You set the attributes to the values you desire and then you save the object.
The list command can be used to see the values the attributes are set to.

The advon and advoff commands turn advanced mode on and off. When advanced mode is on you can set even more attributes.

First we set the short attribute.

short

Please enter Short Description
   (Use '~q' to abort and '?' for help):

You are able to do a ? at almost any time and be given more information. The help given by the ? command (with some extra examples) can also be found on the web pages for the blob and in help blob.

?

Help: This description is a single line that is seen when the player is in brief mode or when they glance.
Format: string

A wet cave

Commands: 
   exits, inside, items, light, long, objects, short, advon, list, save, abort
Enter choice:

Next we set the long attribute.

long

Please enter Long Description
   (Use '~q' to abort, '?' for help and '**' to terminate):

Note that some attributes, like short require just a single line. Others, like long, support multiple lines and have to be ended with **.

?

Help: This description is the text that a player sees when they enter a room while in verbose mode or when they do a look.
Format: string

Several underground tunnels merge here, forming a small natural cave.
A small trickle of water runs through cracks in the limestone overhead and down the wall, forming small puddles that cover most of the uneven floor.
**

Commands: exits, inside, items, light, long, objects, short, advon, list, save, abort Enter choice:

Next we add exits linking this room to the other rooms

exits

Please enter Room exits:
   Commands 'list', 'delete #', 'add ', 'clear', 'abort', 'save'
>> 

For any attribute that supports multiple entries you will be presented with this new menu which allows adding entries, deleting entries, clearing the whole list of entries, aborting changes and saving changes.

?

Help: The exits from the room that lead to other rooms.  Not including doors.
Format: direction:room-file
>>

Take special notice of the format you must enter direction:*room-file*, eg "east:room1" not "east room1".

add east:cave_2

Added 'east:cave_2'
>> 
list
 0: east:cave_2
>> 

At this point we could do delete 0 if we wished.

add west:cave_3

Added 'west:cave_3'
>> 
save
Commands: 
   exits, inside, items, light, long, objects, short, advon, list, save, abort
Enter choice:

We have just added 2 exits, as per the map at the top of this page. Now we have to make the room indoors rather than outdoors.

inside

Please enter Whether the room is enclosed
   (Use '~q' to abort and '?' for help):

?

Help: If this room is 'inside' then set this to 1.  If it is outside set this to 0.
Format: 1 or 0

1

Commands: 
   exits, inside, items, light, long, objects, short, advon, list, save, abort
Enter choice:

Lets make our cave lit, not really normal but what the hey!

light

Please enter Light level
   (Use '~q' to abort and '?' for help):

?

Help: The light level in the room.  0 is normal night, 1 is normal daylight.  Using other values will requires approval.
Format: number

1

Commands: 
   exits, inside, items, light, long, objects, short, advon, list, save, abort
Enter choice:

In our long description we had several nouns. As per the guidelines we should add, at the least, items for these. A good area builder might also add smell and listen (which you can do if you turn advanced mode on)

items

Please enter The non-gettable items in the room:
   Commands 'list', 'delete #', 'add ', 'clear', 'abort', 'save'
>> 

?

Help: Items should be defined to match the set of Nouns defined in the long description, and in other items. They are not things the player can get but they can be looked at.
The basic form is 'item_name(s):adjective(s):description(s)'
In any section multiple values are entered separated by a |
A player is able to look at one of the item_name values, prefix by any combination of the adjectives.  What they see will be a randomly chosen description.
Adjectives are optional.
The description may be the special value of ##item_name, in which case it is the same as looking at 'item_name'.
Format: aliases:adjectives:descriptions or aliases:descriptions
>>

As the help implies you can enter items in many different formats. The simplest is "alias:description", then you can try "alias:adjective:description" and finally the most complicated - multiple aliases, multiple adjectives and multiple descriptions.

add tunnel|tunnels:dark|gloomy:Two dark and gloomy tunnels merge here, one from the east and one from the west

Added 'tunnel|tunnels:dark|gloomy:Two dark and gloomy tunnels merge here, one from the east and one from the west'
>> 

This is almost the most complicated form: Players can look at tunnels, tunnel, dark tunnel, dark tunnels, gloomy tunnel, gloomy tunnels, dark gloomy tunnel, dark gloomy tunnels, gloomy dark tunnel and gloomy dark tunnels

add water:trickle|trickle of:A thin trickle of clear water that runs down the wall and forms puddles on the floor

Added 'water:trickle|trickle of:A thin trickle of clear water that runs down the wall and forms puddles on the floor'
>> 

add wall|walls:The walls are a combination of limestone and clay.

Added 'wall|walls:The walls are a combination of limestone and clay.'
>> 

list

 0: tunnel|tunnels:dark|gloomy:Two dark and gloomy tunnels merge here, one from the east and one from the west
 1: water:trickle|trickle of:A thin trickle of clear water that runs down the wall and forms puddles on the floor
 2: wall|walls:The walls are a combination of limestone and clay.
>>

save

Note that we just saved changes to the items, not the whole room, next we save the room

Commands: 
   exits, inside, items, light, long, objects, short, advon, list, save, abort
Enter choice:

save

Specify the filename: 

cave_1

--- Preparing to save /room/areas/develop/test/rooms/cave_1.c ...
Result is
--------
#include 
#include 
#include "../test.h"

inherit ROOM;

void reset(int arg)
{
   ::reset(arg);
   if (arg)
      return;

   set_domain( THIS_DOMAIN );
   set_property("inside", 1);
   set_short("A wet cave");
   set_long("Several underground tunnels merge here, forming a small natural cave. A small trickle of water runs through cracks in the limestone overhead and down the wall, forming small puddles that cover most of the uneven floor.\n");
   set_light(1);   
   add_item( ({"wall","walls"}), "The walls are a combination of limestone and clay." );
   add_item( "water", ({"trickle","trickle of"}), "A thin trickle of clear water that runs down the wall and forms puddles on the floor" );
   add_item( ({"tunnel","tunnels"}), ({"dark","gloomy"}), "Two dark and gloomy tunnels merge here, one from the east and one from the west" );
   
   add_exit( ROOMDIR + "/cave_3", "west" );
   add_exit( ROOMDIR + "/cave_2", "east" );
}
--------
--- Saving to file '/room/areas/develop/test/rooms/cave_1.c' ...
--- Compiling and updating ...
--- Done.

You'll be a bit spammed by that last chunk of text - that is the actual LPC code that the blob generates to make your room. If you are interested you should be able to read through it and see how it matches what you entered above.


5: Going to the room

We've finished our room! Lets go and check it out

C:> blob goto cave_1

You teleport to /room/areas/develop/test/rooms/cave_1.c.
/room/areas/develop/test/rooms/cave_1
Several underground tunnels merge here, forming a small natural cave. A small
trickle of water runs through cracks in the limestone overhead and down the
wall, forming small puddles that cover most of the uneven floor.
Obvious exits: east, west

All looks good. Now test that the items work properly...

C:> look at tunnels

Two dark and gloomy tunnels merge here, one from the east and one from the west.

C:> look at dark gloomy tunnels

Two dark and gloomy tunnels merge here, one from the east and one from the west.

C:> look at puddles

There are no puddles here.

Not good. Your rooms will not pass QC and be put into play if they are missing items. We mention the puddles in the long description so we must have an item for them.


6: Editing an existing room

First we load the old room, then we edit it, then we save it again.

C:> blob load cave_1

Loaded...
Commands: 
   exits, inside, items, light, long, objects, short, advon, list, save, abort
Enter choice:

items

Please enter The non-gettable items in the room:
   Commands 'list', 'delete #', 'add ', 'clear', 'abort', 'save'
>> 

add puddle|puddles:Shallow puddles of clear water cover most of the floor of the cave

Added 'puddle|puddles:Shallow puddles of clear water cover most of the floor of the cave'
>> 

list

 0: tunnel|tunnels:dark|gloomy:Two dark and gloomy tunnels merge here, one from the east and one from the west
 1: water:trickle|trickle of:A thin trickle of clear water that runs down the wall and forms puddles on the floor
 2: wall|walls:The walls are a combination of limestone and clay.
 3: puddle|puddles:Shallow puddles of clear water cover most of the floor of the cave
>> 

save

Commands: 
   exits, inside, items, light, long, objects, short, advon, list, save, abort
Enter choice:

save

Specify the filename: 

cave_1

/room/areas/develop/test/rooms/cave_1.c exists.  Overwrite? y
--- Preparing to save /room/areas/develop/test/rooms/cave_1.c ...
Result is
--------
#include 
#include 
#include "../test.h"

inherit ROOM;

void reset(int arg)
{
   ::reset(arg);
   if (arg)
      return;

   set_domain( THIS_DOMAIN );
   set_property("inside", 1);
   set_short("A wet cave");
   set_long("Several underground tunnels merge here, forming a small natural cave. A small trickle of water runs through cracks in the limestone overhead and down the wall, forming small puddles that cover most of the uneven floor.\n");
   set_light(1);   
   add_item( ({"puddle","puddles"}), "Shallow puddles of clear water cover most of the floor of the cave" );
   add_item( ({"wall","walls"}), "The walls are a combination of limestone and clay." );
   add_item( "water", ({"trickle","trickle of"}), "A thin trickle of clear water that runs down the wall and forms puddles on the floor" );
   add_item( ({"tunnel","tunnels"}), ({"dark","gloomy"}), "Two dark and gloomy tunnels merge here, one from the east and one from the west" );
   
   add_exit( ROOMDIR + "/cave_3", "west" );
   add_exit( ROOMDIR + "/cave_2", "east" );
}
--------
--- Saving to file '/room/areas/develop/test/rooms/cave_1.c' ...
--- Compiling and updating ...
The room around you flickers.
--- Done.

Notice the "The room around you flickers." message. This is the room being updated with your changes. You do not have to goto the room again.

So check the changes took effect.

C:> look at puddles

Shallow puddles of clear water cover most of the floor of the cave.


And we are all done. Next you would create cave_2 and then cave_3.

Please direct any questions to Fantom.

Topic BlobRoomTutorial . { Edit | Attach | Ref-By | Printable | Diffs | r1.3 | > | r1.2 | > | r1.1 | More }
Revision r1.3 - 08 Apr 2003 - 05:04 GMT - FantoM
Parents: WebHome > BuilderPages
Copyright © 2001 by the contributing authors. All material on this collaboration tool is the property of the contributing authors.
Ideas, requests, problems regarding Tharsis? Send feedback.