Using the Map Editor - Part 1

Create an image
To start off you will need an image for the metaroom you want to create. You can use any art package you desire to do this - you could scan in a drawing or a photograph or create the whole image by hand. However you go about it this tutorial assumes you have one already.

The image should be at least 800x600 in size, in BMP format, and preferably in 24bit.

Get the map properties
When you are creating an add-on map you will want to use the same convention of room types and CA properties as the existing Creatures 3 and Docking Station schema. The simplest way to do this is to load up one of the map documents that comes with the editor, these are called "C3_RoomData.2er" and "undocked_station.2er" and are the C3 and DS map files respectively, and remove the existing metarooms. Because the DS map file has less to remove it is probably easiest to use this one - load it up, use the 'Select Metaroom' room to click on a metaroom and press the 'Delete' key to remove it. Once this document is clear of metarooms you can save it - remember to rename it though!. This file can now form the basis for your own map.

Create the metaroom
The metaroom is the distinct area you are creating; it has a background image, a location and contains rooms.

  1. Open up your previously saved map document.
  2. Use the 'Add Metaroom' tool and click on the document.
  3. Browse and select your image file in the dialogue presented.
  4. You do want to create a background file and preview file, so leave the checkboxes checked.
  5. Alter the contrast to whatever values you prefer, this is simply for the preview image and doesn't affect the real image.
  6. Click 'ok' and the editor will create your new metaroom.
  7. You will now have a newly created background file in either your Creatures 3 or Docking Station 'Backgrounds' folder, and a small bitmap of your original image placed into your Map Editor's 'Preview' folder.

Position the metaroom
When you are creating an add-on map this is one of the most crucial parts and can lead to incompatibilities with other maps. You need to ensure that your metaroom is position such that it doesn't overlap with existing metarooms in the world, and also (if you intend to make this metaroom available to others, or add other people's metarooms to your world) doesn't overlap with existing add-on metarooms!

At the moment, there is a 3rd party site here: http://www.wuk.at/happy/norngarden/roomplan.html that has a very good list of existing metarooms, and their locations, and provides an essential service to map makers. This is not a site controlled by Creature Labs and so the content can change without our knowledge, at the time of writing the author is intending to move this information to another site.

When you have found a clear area of map you can then move your metaroom into this area by using the 'Select Metaroom' tool and click dragging the room into this location. Use the Zoom tool and the coordinates shown at the bottom of the editor for fine positioning.

Create rooms
Now that you have your metaroom, and positioned it in a safe location, you can start the fun part of filling it with rooms!

Rooms are essential for a map as they define the boundaries of movement for both Creatures and agents. You don't need to fill a metaroom with rooms - there can be areas of your metaroom that aren't contained within a room.
A useful tip for where to start when making rooms is to start at a floor level, and create your rooms marking this floor. You can then fill in any other areas you need a room system.

  1. Make your first point on the map on the desired floor level.
  2. Move the cursor until you have a suitable section of floor defined with a line, and make you next point.
  3. Move the cursor up to mark a wall, and one corner of a ceiling.
  4. Move the cursor across to complete the trapezium.

Congratulations, you've just made your first room!

Now that you've made a start you can carry on this process to cover the entire floor with the bottom of rooms.

  1. Position your cursor on the floor again, next to your existing room.
  2. Repeat the above process for making a room, noticing that the editor will attempt to snap rooms together for you so that you don't have to be pixel perfect when aligning rooms.
  3. Notice also that the boundary between the two rooms has been coloured green, we'll come to what that means next.
  4. Carry on until you have covered your entire floor.

Define the doors
The term 'door' when used in relation to the Map Editor means the join between adjacent rooms. In the example above the join between two rooms went green, this means that the door between these rooms is completely open - everything can pass through.

  1. Use the 'Select' tool to click on a door and highlight it.
  2. Right-click on the selected door
  3. Select 'Properties'

From this dialogue you can set the value for the door - open doors have a value of 100. Completely closed doors have a value of 0 and are coloured in red. Values between 0 and 100 are coloured in shades of orange/yellow. The blue boundaries are also fully closed and wont allow things through them, but they differ in that they mark the edges of the defined world.

These door values dictate which agents can pass through them (the PERM value of an agent corresponds to the DOOR value they can pass through). The values used for creating the maps of Creatures 3 and Docking Station are: 0, 50 and 100. Doors of opening 50 are used for wooden walkways and other areas where you want some agents to be able to move through the boundary, and also want others to treat it as a solid floor. This image from the Workshop in Docking Station shows how a lift-shaft was created with doors of opening 50 - which allows certain things to move through them. This scheme also allows CA elements to move from one level to the other, as a fully closed boundary also stops CA elements from moving.


Give the rooms properties
To get the most out of the engine you are advised to define each room as belonging to a certain type. Example types are Atmosphere, Wooden Walkway, Conrete Floor, Boggy Soil ... but there are others. These types are used by the CA system to move elements around the map (such as water, nutrients, heat) and can also used by agents (such as plants deciding whether they can grow there).

  1. Use the 'Select' tool
  2. Right-click on a room
  3. Select 'Properties'
  4. Click on the 'Room Type' entry
  5. Select the desired room type from the drop down list

Below is a list of the defined room types. Note that although the rooms are often defined in terms of the floor of the room, the room type itself doesn't care what the floor is. It is up to you, the creator, to define the floors and room types consistently.

AtmosphereAtmosphere rooms are those that don't have a solid floor, they are open. Elements such as heat and light travel freely while elements such as nutrients and water do not travel through them at all.
Wooden WalkwayThe floor of these rooms usually corresponds to a wooden walkway. They restrict transport of heat but allow water to travel freely.
Concrete WalkwayA solid bottomed raised walkway. More restrictive to most CA elements.
Indoor ConcreteAn indoor solid floor area. Restrictive to CA elements.
Outdoor ConcreteAn outdoor solid floor area. Restrictive to CA elements.
Normal SoilThe standard for soil types. This allows most elements to travel freely.
Boggy SoilThis type loses less water than Normal Soil.
Drained SoilAnother type of soil, this type though loses water faster than the others.
Fresh WaterUsed to define underwater, fresh water areas.
Salt WaterUsed to define underwater, salt water areas.
Ettin HomeA very particular kind of room for Ettins to consider home. The smell of machinery in these areas disipates very rapidly.

Inject it into your world
Now that you have defined your new metaroom, and the rooms within it, you can inject it into the game. It is always a good idea to save your work regularly, so save it now before injecting.

Once it is saved, you can then inject it - use the 'Inject as Addon' option to inject your map document into an already running world.

See any difference in your world? Probably not, unless you move the camera to look at your new room! Use the 'Set Metaroom from Game' option from the Tools menu, from that dialogue you can move the game camera to a particular metaroom ID - or change the background of a metaroom (NOTE: this is for metarooms that use more than one background file - something not covered in this tutorial yet!).

Making changes and removing metarooms

Agents
It is important to realise that the Map Editor only deals with map information - it can't control agents in the world - and so if you want to remove a metaroom from the game you have to make sure that there are no agents in it. The Map Editor will try to warn you if it detects agents in an area you are trying edit, but it can't remove them for you. You will need to use CAOS to remove the agents, or move them elsewhere. In some cases you may find that the map editor can't remove your metaroom for you - you will need to do it manually with CAOS. There are simple commands for removing rooms and metarooms - DELR and DELM respectively.

Links
There is a CAOS command called LINK - which is used to join specific rooms together such that they can be considered 'linked together' for cellular automata updates. An example of this is the metaroom for the central hub area of Docking Station - that metaroom has LINKs defined which join together rooms in that metaroom with a room in the Norn Meso, a room in Comms and a room in the Workshop. This allows smells, heat, nutrients etc to move beyond a single metaroom and so disperse around the ship as a whole.

Problems arise though if you remove a metaroom that has links to another metaroom - big problems in fact, the engine doesn't like it at all. To resolve this you need to manually remove the links - check out the CAOS Language Guide for the format of the LINK command, and how to use it. The essential information is that setting a LINK to 0 destroys the link. If this sounds intimidating, don't worry - this is really only relevant if you plan on removing some of the existing rooms in either C3 or DS.