Tuesday, October 14, 2008

Maps and area layout

One of our players, Woem, mailed me a handful of area descriptions and maps a couple of days ago. I finally managed to get through my email, and have put them online here:

http://dentinmud.org/maps

They're the maps of the Aggerazzi Swamp, the Fire Plane, and the Ice Plane. They're hand drawn, but really well done.

This got me thinking about mapping in general. Muds are particularly difficult to map because of the ad-hoc room linkage and arbitrary room sizes, not to mention lack of sanity checks to detect overlapping rooms. I'd like to be able to do it anyway because people are so visual, but there are some problems.

One of the biggest problems is that building is already so restricted, in that we generally have cardinal directions, without any real ability to place slopes or other such three-dimensional constructs. Another really big problem is that we don't build rooms with any regard for size; rooms just are, and they hold whatever we need them to hold. Further, we can hook them up to anything else without regard for space constraints.

To top this all off, Alter Aeon has over 30k rooms that are -already built-, and over two thirds of those are in working, sane areas. Rebuilding those areas with some (as yet ill-defined) positional features is really out of the question in the short term.

This has brought me back to thinking about automatic determination of room sizes, or at least room positions within areas. Some of this can be done based on terrain types; most individual areas can be mapped pretty well using a simple combination of flags and terrain to give rough sizes. The real clobbering comes when you attempt to glue areas together.

So, assuming I can automatically place the rooms in individual areas, how do we place areas overall? It turns out that we happen to have positional information for most areas anyway, so all that remains is to tie the area coordinates to the room positions within each area. The game can then scan for room linkages where the areas are markedly disjoint, and log it as a typo or bug.

Ta-da! With that, we should be able to correlate the real room position with the real area positions, and while the hookups wont be perfect, it will give us a very good idea of where the worst disconnects are.

Hopefully I can get some time to try this out in the near future. It's probably a handful of hours to do it and get it right, then I can hand off the cleanup to some of the worldbuilders and let them straighten out the worst of it.

No comments: