Table of Contents

Map Making Guide

Without Maps, there would be nowhere to put monsters now would there. Map making is a rewarding task but there are some things to be aware of…

Map Guide

This is a guide on what is an acceptable map and what is unacceptable. Only acceptable maps will be put in the official Crossfire map distribution. Please use the latest release of Gridarta when making maps to contribute.

Directory Structure

Regions

Maps that are not wilderness should be assigned a region. Current defined regions are:

Entrances and Exits

  1. Check that all exits lead where they are supposed to. Unless there is a specific reason an exit leads only one direction (like a trap door or perhaps a teleporter), players should be able to exit back from where they came from right when they enter the map.
  2. One way exits/entrances should only be used on objects in which it is obvious it is one way. A house is not an obvious one way entrance. Remember, players may not have the three hours of time it takes to find the exit after being trapped in a map (a work around for this can be have the trap lead to a safe place with no exit which contains a save bed. Thus, the player could save and come back at a later time to find the exit.)

Hallways, Roads, Paths, etc.

  1. Try to make sure the maps are multi player accessible. In towns, this means the road should be at least a couple squares wide, buildings should not be trapped in corners in which case one character standing in front blocks access, etc.
  2. Try to make corridors in dungeons or mazes a few squares wide -especially if there is only a single path. If it is a maze with several different paths, single width corridors are acceptable. The main problem here are big labyrinths in which only one monster attacks at a time, and which there is only 1 or two routes. If two players enter such a map, the one that went in first will be in the lead the entire time.
  3. Avoid spiral or single path mazes that just have monsters lining the corridor. These are not very good for multiple players, not particularly interesting (map just consists of killing all the monsters), and tend to be an easy and safe way to gain experience.

Don't Put

  1. Do not create weapons or other items with the attack_type godpower or protection/resistance to godpower
    1. In order to maintain the challenge level of Crossfire, the attacktype godpower is used. Since it's possible to gain resistances and protection to all all other attack_types certain monsters have godpower which will cause damage to player character. I know, it doesn't seem fair - but it's no fun when the game is easy, either.
  2. Extremely valuable treasure right next to the entrance, or nearby. Players should need to work to get treasure. If the treasure is fairly worthless (food, or non magical items), this would be acceptable.But a character should not be able to pop in, pick up a potion, spell book,or a lot of diamonds, and then pop out again, without ever meeting monster.
  3. Don't put monsters of high experience points near to entrance where they are trapped as this might allow low level players to boost their experience high by using some weapons or spells from distance, but without danger. For example find a trapped troll and get wand of fireball.
  4. Monsters on top of other monsters. A troll should not be sitting on top of an oriental dragon. The only exception to this would be if a monster could be on top of another monster (making sense) and hiding it at the same time. A troll on top of an oriental dragon does not make sense (could not fit), nor can the troll hide the oriental dragon. Using tricks like these which are only applicable due to display limitations is something that should not be done, nor should the player need to click on every monster he encounters to see if something is below it. (As a side note, doing this will tend to lock the monsters into position, making them unable to move.)
  5. Large groups of monsters that can be killed quickly with spells. A fairly popular tactic to make high level maps is just to put 30 dragons (or other tough monsters) in a big room. Do not do this. All the player needs to do is cast a dozen ice storms, and quickly gets millions of experience. Likewise, it is unlikely that any more than 2 or 3 large (multi square) monsters will be able to attack a player or party at once - the remaining 25 will be blocked from doing anything. This then makes it so that having 30 dragons is not any tougher than having 3.

Map tags

(the tags are applicable to trunk maps only)

The Crossfire Mapper tool can take advantage of special tags in the lore field to logically link maps together and display their information in a summed way.

The following tags can be used:

The text from the tag to the end marker is free-form, though it should be HTML (as this is what mapper generates). Basically, @def is meant to describe the quest in detail, including rewards and such, while @quest is intended to specify where to find items or NPCs or such.

General Suggestions

Features to Avoid

  1. A map should be designed so that a character can never be trapped in a room (except via other player interaction.) A character should never be forced to dimension door or word of recall out of a map because some gate closed behind him. For a character without these spells, being trapped means death. A simple method around this is put a lever on both sides of the door. If the door is opened by special actions (saying things, dropping things), just put the lever on the hard to get side of the gate.
  2. If a map requires simultaneous use of multiple players to solve the map, put a sign or message so players know. Such maps would be those that require manipulation of levers or buttons in certain sequences in order to get through gates.
  3. Don't make ends of maps require multiple users. This ruins that map for single players (not able to complete it), and makes a map that requires multiple players for only a small portion.
  4. Try not to make the maps too many levels deep. To get to the goal, it should not require a 6 hour continuous sitting, as the player works through each map to get to the next. Multi-level maps are fine - just don't over do it. One way to do this is to have several maps with a key or other special item at the end. The final map could have the various battles, and then a series of gates/altars that uses up these keys.

Shops

  1. Do not put super stores in any towns or villages you create. With the growing number of maps, players can already make a trip to all the different towns to try and find certain items. A one stop shop of every conceivable item is not interesting. A good maximum size is about the same size of the shops in the starting village.
  2. Also, making six magic shops of that size and putting them in the same town is not any better than one large magic shop. If you want to have specialized shops, then make each shop smaller. If you just want one shop that sells every type of item (magic, armor, weapons, food, etc), then a large shop is permissible.
  3. Make sure the entire interior the shop is covered with tiles. Likewise, do not put shops that lead to areas without going over one of the magic doormats. A player should never be able to get an unpaid item out of a shop, whether by exiting without going over the magic doormat, or through the use of spells.

Map Layout and Placement Suggestions

  1. Don't make maps which require high level characters that low level characters can wonder into without warning. Put a warning sign nearby,or gates or doors so the player can see they are in over their head, instead of instantly getting toasted the second they enter the map.
  2. The structure of the map should make sense. That is to say, if you enter a house, the house should then not have a tower or a door to a shop inside. In other words, if a map has an exit to another map,that exit should make sense (ie, another level, tunnels, dungeons all make sense. However, another building the size of the original does not make sense.
  3. Try to keep the difficulty throughout the map(s) about the same.The first monster in the map should not be the most difficult monster, nor should the last monster be orders of magnitude more difficult than anything before it.
  4. It is very frustrating to play a map, killing most every monster without much difficulty, only to find the last monster invincible to the character that just made it through the rest of the map just fine.
    1. It is reasonable to have the monsters increase in difficulty. Also, if the map has no quest or end goal, then having a very difficult monster around is not unreasonable, as long as it does prevent the player from progressing to the next map.
  5. Do not place directors with bullet, lightning, fireball, etc. that are a loop or continuous. Example: Do not have two directors, each facing each other, with a bullet wall firing into them at the side.
  6. Having numerous directors is fine. But make sure that eventually, there will be an exit/detonation point for the fired spell. Having loops that go for over typically bring the game to a halt, as the objects just multiply and the game consumes more and more CPU time.

Technical Map Hints

Map Difficulty Level

FIXME - needs better organization; draft & work in progress

Map Difficulty Level Factors

Base Line
Factors that INCREASE Difficulty
Factors that DECREASE Difficulty
Grey Areas in Regards to Difficulty

They Grey Areas are special cases or scenarios which can work for against the player character. Here's a partial list of factors that need consideration on a per case basis:

Other Suggestions

The following are various suggestions for making good or interesting maps. A map that does not need to follow all these hints to be accepted, but following these hints will make for more interesting or playable maps.


Map Contributions

Once a map has been created, you have the option of contributing it back to the Crossfire project. Here are a few ways on doing that.

NOTE In all cases, compress the map file(s) first by using either WinZip (for .zip files) or tar (for .tgz files) as this helps to save bandwidth, disk space and overall time to “handle” the files.

Creating a "diff"

There are all kinds of technical reasons for using a “diff” file to merge in file updates. The biggest reason is it gives the person working with your map changes an easy to read a file comparison to see what has changed, exactly. One needs Subversion (SVN) installed and set up before attempting to create a diff.

SVN diff from the command line:

$ svn diff > patchfile

This runs a comparison (or difference) between your local files to what is in place in the Crossfire Subversion repository at SourceForge. It is advisable to use a descriptive name for the patchfile, as that is just an example.

Next, use the tar command to compress the patchfile.

$ tar czvf mypatchfile.tgz patchfile

This takes the contents of patchfile and compresses it into mypatchfile.tgz

The command to uncompress said file is

$ tar xzvf mypatchfile.tgz

Remember, c = compress while x = extract

FIXME - Document how to create a diff against SVN using TortoiseSVN and TortoiseMerge

Once you have a diff or patch file, see the options below for submitting them or making others aware of your new map or map updates.

Submit the map as a "patch" on SourceForge

  1. Follow the online instructions for submitting the patch - please be thorough on filling out the online submit form
    • Keep in mind there is a maximum file size for the file upload (around 200KB) so you may need to submit multiple patches or make the maps available via other means (personal web area, etc.)
    • Please check back to the Patch page for any follow up questions and feedback in regards to your map(s)