When it comes to map making, I want my maps to contain a whole lot of my game information, all ready to go, for me.
For example:
Shouldn't a map tell you what tile piece goes in each position?
Shouldn't it tell you if you can walk North, South, East, West, or any of the diagonals?
How about if you can swim it? Fly it?
Shouldn't a map tell you if a tile has a special effect attached to it, such as Darkness, Spin, or Teleport?
If there's a creature always on the map, shouldn't it tell you where they're at? What that creature's walking path is? (Random, Chase direct to hero, One step North, One step West, One step South, One step East, Repeat...)
What a tile contains, and how the character can interact with it? (Click on it and loot the medical herb which is in the pot at 10,2, Papa's House.)
For my game (Destiny's Child), the map itself contains all this information for me and all the game 'engine' has to do is read the map and then react to all this information.
Say we have a room which looks like the following:
|----| |----|
| |
| |
| |
--------------
With a single glance, you can see where the "walls" would be, which would limit the character's movement, and you can see where the entrance/exit would be. All we need to do is mark those areas with walls as "unpassable", and then place the teleporter to the main map at the exit.
|----|S1|----|
| |
| |
| |
--------------
So, a typical map type might look like the following:
TYPE MapInfo
Walk as _Byte
Swim as _Byte
Fly as _Byte
Tile as Long 'Representing tile and tile set
Script as Long 'This says while the character walks on this tile, we check special conditions. (If hero has Gold Key, then Walk and NORTH = TRUE.. He can walk through the locked north door.)
Monster as Long 'monster icon
MonsterPath as Long 'Random, Chase, Patrol)
MonsterScript as Long 'what the monster does when it catches the hero, or if the hero clicks on it.
END TYPE
Notice that my map info contains a "Script" which can be used to set and check various game flags. Movement via teleport is often through this script, which I identify as a number cooresponding to that room.
SCRIPT 0001:
Physical Damage 3 'spiked floor
IF hero HAS "Gold Key" Then
Walk AND North = TRUE
ELSE
If Move = North Then
PopUp "The door is locked; you can not open it at this time."
END IF
END IF
If Walk = East then
Teleport to "MainMap0101"
END IF
END SCRIPT
Note, these scripts are attached to the end of the map, so they're loaded when the map is, keeping all of the control information self-contained, and allowing our game 'engine' to just worry about processing these scripts for us.
************************
Just something for you to think about, if you're going to work on a map maker/editor. I don't know if my way would work for everyone, but it seems the best way for things to work for *me*, at least. ;)