Yesterday I found the desire to start playing around with the Mudlet Mapper and after many, many hours of struggle I managed to get it functioning today... but not without problems that I thought I would share with you, as there is obviously a fair bit of interest in getting the mapper working for SlothMUD.
Problem 1: Akaya's original mapper. (It won't work)
Akaya who was instrumental in creating the buzz that brought MSDP to slothmud, originally wrote a Mapper for Slothmud. This mapper used the msdp COORDS variables that were later removed because they were thought to be lagging the mud. Furthermore, I got a sense his mapper was snippets of code, copy and pasted from other authors and slightly adapted. Because the variables he was using are no longer in Sloth I really had no choice but to write my own mapper completely from scratch using msdp.ROOM_EXITS.
Problem 2: Room Collisions.
When I finally got my mapper to "map" a massive problem was exposed, which to some degree would probably make some area's not worth mapping... let me explain... the way I mapped things was using the x,y,z coordinate system in Mudlet. Lets assume that our first room is West Gate BH (0,0,0). We go 1 east (1,0,0). We go another east (2,0,0). We go one north (2,1,0) and we are in the Auction House.
Ok, now try this out... Lets assume that our first room is West Gate BH (0,0,0). We go 1 east (1,0,0). We go 1 north (1,1,0). We go 1 east (2,1,0). Where are we? The auction house right? No! The Bal Harbor Animal Market.
So straight away there is a problem... there are "collisions" with rooms... the coordinates for the Bal Harbor Animal Market are the same as the coordinates for the Auction House from West Gate... on the map this will place a room on top of another room. The reality is BH is a confused area with many collisions and essentially the map looks like crap. It would appear Akaya's original mapper didn't address this problem either.
So not to be beaten, I made a room collision detection system... when ever I added a new room to the map I checked to see if there was a double up, and if there was I placed that room with an angled line as to not place the rooms on top of each other. Perhaps I would even need to go further, and move all rooms that are on that axis over one, and re-index the rooms if I wanted to keep the lines straight. Area's like Kobolds mapped great as there are no collisions.
I think it would be fairly common to have coordinate collisions in a mud... and I wondered if anyone else has found a way to work around this, while trying to keep map lines straight? If so please share...
Problem 3: Detecting you have changed a room.
The other issue is each time you want to move a room, you want to add the new room and all it's links to the map... well as you may know, there is really no way to detect you have changed a room in Slothmud if you are solo. Capturing the msdp.ROOM_VNUM change event or msdp.ROOM_EXITS events are flawed because they fire multiple times and are subject to msdp update lag. If I walk fast then mapping some rooms will be missed out and my coordinates will be wrong. It appears the only way to map a room constantly once, would be to so in a group, as you could trigger the mapping on the following leader message. However as I was using msdp.ROOM_VNUM as the key for my rooms, and this variable is subject to lag... I wonder if that would even work. There doesn't seem to be a good way to do this but to add each room manually. Once again I wondered if anyone else has found a way to work around this?
I still have more work to do, to have colors for the terrain and run scripts that goto rooms etc... but I kind of feel without these other problems being resolved... whats the point... Does anyone have experience mapping muds and can tell me good ways to overcome these problems?
Gimme a G! Gimme a ORKA!