Jump to Main Content


General 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.

  • Check that all exits lead where they are supposed to. <index> 
    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.

    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 savebed.  Thus, the  player could save and come back at a later time to find the exit.)
  • Try to make sure the maps are multi player accessible. <index> 
    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.
  • Try to make corridors in dungeons or mazes a few squares wide. <index>
    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 essentially trapped by the second player.
  • The structure of the map should make sense. <index>
    That is to say, if you enter a house, the house should then not have a tower inside.  Or a door to a shop.  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.
  • Try to keep the difficulty throughout the map(s) about the same. <index>
    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.

    It is very frustrating to play a map, killing most every monster without much difficulty, only to find that last monster unkillable.

    It is reasonable to have the monster 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.
  • Try to create only small maps. <index>
    If you have a large map in mind, try to see if you can possible split it up in several separate sections, and place those sections in different maps.  Many small maps use much less memory than one large map, since crossfire doesn't yet support swapping of portions of maps.  Also, with small maps, the time to load it from and store it to disc becomes so short that it's impossible to notice.  In this context, small means about 32x32, though it's actually the number of objects in the map which count.

    What is potentially more critical than the size of the map is the number  of objects (memory usage), and live objects (CPU usage, as each would need to be processed.)

    Also, remember that if you make very large maps, all generators will be cranking out monsters whenever anyone is on it.  This could mean that a lot of monsters have been generated before a player even gets to the area where they are being created.

    Related to this:  If a map contains multiple levels, make multiple maps.  Many times, if the level is small, the map maker may think I will just put all the levels on one larger map.  This makes the map a little less readable to others.  Also, things like magic mapping and dimension door can lead to unexpected results.
  • Make a plot! <index>
    A map without a plot becomes just another mindless "Kill'em all".  For instance, create a story which explains why there are npc's here and monsters there, fragment the story up and put bits and hints of it in various writables (books) and npc-conversations.

    If you are going to make a mindless "killĀ“em all map," at least put some reward in the map that can only be accessed after all the monsters have been killed.  The only thing worse than a kill them all map is a kill them all map which you get nothing out of.

    Avoid maps where all the monsters are lined up, and only one can attack you at a time.  This just makes an easy (and relatively safe) way for a character to gain experience and treasure, and is not especially interesting or challenging.
  • A good idea for the rewards at the end of quests are specific items. <index>
    It is much more interesting to put a specific item (luggage, spellbook of some otherwise not available spell, special weapon, spellcrystal, etc.) instead of something like a random artifact.  Feel free to mutate or otherwise change existing artifacts to create your own.

     This has two advantages: one, the player will get to know where certain items are.  Having to search endlessly for a specific item gets tedious.  Two, it reduces the incentive to keep repeating the quest (repeating quests is not inherently bad)  If the reward is a random artifact, a player may very well keep repeating the quest until the item he looks for comes up.  By doing specific items, this will not happen.
  • Make puzzles! <index>
    Use all those different object types: buttons, handles, doors, altars, pedestals, triggers, timed gates, etc...  Hide special "keys" needed to get further in special places, and use text-puzzles to describe where they are hidden and how they must be used.  The possibilities are endless!  Remember, you can also hide buttons under floors, making it more difficult for the character to find the trigger points.
  • Give the npc's information! <index>
    An npc's knowledge about hidden treasure surely makes it interesting to have a conversation with it.
  • Feel free to add some traps. <index>
    But be careful to not make them too deadly without adequate warning.
  • Don't mix the monsters too badly. <index>
    Let there be at least some logic behind why they are grouped in a single room.  Undeads together with undeads, for instance, but not together with kobolds... Big dragons usually don't live together with mice...  Fire immune creatures generally dislike ice immune creatures.

    Also, limit use of monsters that multiply rapidly (mice, slimes).   A map that is easily overwhelmed with these creatures quickly becomes useless.
  • Give your maps a meaningful name (like John's tower, level 1). <index>
    This way, these can be used instead of the map paths in the highscore file.  Also, in terms of the actual file name, try to use numeric level identifiers (i.e., maze.1, maze.2, ... instead of maze.first, maze.second, etc.)  The former maps the levels sorted a little bit nicer in the directory.
  • Try to make the map so that it links in with the existing world. <index>
    Most people want to make their own continent, which is then accessed by ship or other fast means.  While convenient, this creates many island continents.  The problems with this are that any feeling of relation is lost (where is that island continent), and it makes item searching in shops very easy - if you can access half a dozen shops quickly and safely by taking boats, you have a decent chance of finding the item you want.

    Also, it seems that when most people start making maps, the first thing they do is create a new town or village.  There are already a lot of towns and villages out there.  If you are just going to create a few new buildings, instead of going to the effort and time of creating your own island with a town, just create the buildings, and plug them into one of the existing towns or the terrain someplace.  Many of the towns right now have many unused buildings.

  • Additional Suggestions. <index>
    • Use copy, it saves alot of time.
      • Make a perfect block of all the tiles you want, then select that square.
      • Select a completely blank square, and paste.
    • Use png/xpm
      • run with -png of -xpm flags, pretty obvious but very important.
    • When in doubt go searching
      • If you aren't sure about something, think back to a map that does something similar or the same, use the copy command.
    • Slow progression
      • Don't create a map that has monsters the second you walk in, or dragons behind the first door (dragon hangar is what you don't want)
    • Have fun!