TWiki Home Tharsis . Website . UsingTheAreaEngine (r1.2) Tharsis webs:
Design | Guilds | Combat | Website
Website . { Home | Changes | Index | Search | Go }

The Area Engine

Overview

The Area Engine is a "device" that allows builders to make areas in an easier fashion - at least that is the idea. Down the track it should even have a graphical interface!

Essentially it is a single "controller" that creates the rooms for you based on an area file. As a builder you write the area file and the area generates itself - no more creating rooms. At this time the area file only controls the rooms and their exits, but it will soon provide the ability to place monsters, and then to define monsters. After that, I'm open to suggestions.

File Format

The area file is a normal text file - you can edit the file in notepad, under windows, and using ed inside the mud.

The file is broken into a series of sections, each section having a heading and some content. Headings have the form [heading-name], and a section is all the content from its heading until the heading for the next section. Section headings have to be on a single line of their own.

The following shows you the outline of the file. A complete area file will probably include the sections shown here as well as having lots of content inside each section

[general]

[map]

[exitnames]

[specialrooms]

[roomdescriptions]

Comments

You can put comments anywhere in the area file. Comments are notes that are completely ignored by the Area Engine. Comments are lines beginning with a #

# I am a comment
[general]
I am not a comment.

[map]
# I am another comment
# that goes over multiple lines
I am not a comment

The [general] section

This section is used to define some global variables: constants and rules that apply across the whola area.

Supported constants at this time are:

Name Purpose
domain The numeric id for your domain - ask a wiz. This makes all rooms be in this domain
startroom The roomkey for the room which the player will start in by default

Each constant goes on a line of its own and is assigned a value using the = operator.

For example:

[general]
# Define 'domain' to be 123
domain=123

#define 'startroom' to be 'hallway'
startroom=hallway

The [map] section

The map section is used to define all the rooms in the area and the exits between them.

This section does not define the contents of rooms, nor the room descriptions, just the exits/links between rooms.

Each room is defined on a single line. The line has the format:

room_key : exit = destination , exit = destination ....
So each room has a room_key, which is a unique name for this room. It might be a word, as in the following example, or it might just be a number - maybe you just number your rooms from 1 to 100.

After the ":" are the exits for the room, separated with commas. Each exit is a direction, an "=" sign, and the room_key for the destination.

So - the following map is used to describe a 2 story house with several rooms:

[general]
# Make people start in the lounge
startroom=lounge

[map]
# This comment is just describing the layout below, the area creator ignores it completely
# The ground floor map looks like:

# kitchen   -  dining  
#    |      \     |
# hallway    lounge - outside
#    |
# hallway - bedroom
#    |
# hallway - bedroom
#    <

# The second story looks like

# bedroom - onsuite
#   |
# landing
#   >

# The "outside" room is not in this area, it's the room for entering this area

# Below here are the actual rooms with their exits
kitchen: e=dining,s=hallway1,se=lounge
dining: w=kitchen,s=lounge
lounge: nw=kitchen,n=dining,e=outside
hallway1: n=kitchen,s=hallway2
hallway2: n=hallway1,s=hallway3,e=bedroom1
hallway3: n=hallway2,e=bedroom2,u=landing
bedroom1: w=hallway1
bedroom2: w=hallway2
landing: d=hallway3,n=masterbedroom
masterbedroom: s=landing,e=onsuite
onsuite:w=masterbedroom

Note that there is no room with a room_key = "outside". This is because the room is specially coded - it is either a hand-coded room which you want to connect with, or it is a room managed by a different area engine.

The [exitnames] section

The [specialrooms] section

The [roomdescriptions] section

Topic UsingTheAreaEngine . { Edit | Attach | Ref-By | Printable | Diffs | r1.18 | > | r1.17 | > | r1.16 | More }
Revision r1.2 - 21 Nov 2006 - 12:08 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.