Manual:Mapper
Mapper
Maps and Autowalking
Maps are implemented as directed graphs of connected nodes (rooms). Nodes are connected by edges (exits). Nodes are referenced by unique integer IDs. Edges fall into 2 categories: Standard exits with a visual representation on the map (e. g. north, south) and "special exits" without a calculated visual representation on the map e. g. the command "jump cliff" is a special exit that connects to a room without a clear spatial orientation. However, special exits can be visually represented if the user provides custom exit line strips. Standard exits are referenced by their respective node and a directional integer value. Special exits are referenced by their respective nodes and strings that hold the exit commands. Both nodes and individual exits can seperately be locked and thus excluded from speed walk path finding graphs. Path finding uses the fast A* search algorithm. Mudlet choses a path with the fastest travel time (-> room weights) as opposed to the shortest path.
Maps are divided into areas or zones where the area/room relationship is unique, i. e. rooms cannot be in more than 1 area.
Note: Areas help make do with the typical geographical irregularities of MUD maps where an entire city with hundrets of rooms makes up a single room on a wilderness map. In other words, if you can't make a place look geographically correctly, create (sub) areas to deal with the problem.
There are 2 forms of visual representations of maps. Standard mode shows exits and custom exit lines whereas "grid mode" hides exit details and sizes rooms to form a perfect grid without any empty space in between rooms. Grid maps can be made to look exactly like ASCII color text maps with character symbols to keep the look and feel of the MUD. Technically, grid maps are a special optimized representation of the typically very large LPC MUD style wilderness maps where every room has 8 direct neighbors in a n*m grid of rooms with relatively few holes. The grid map implementation uses pre image caching and fast gfx hardware render support and can thus render very large grid maps in less than 1ms that would take much longer if the map were to be displayed in regular mode. Changing the zoom level of maps in grid mode can take a significant amount of time if the maps are very large, because the pre cached images of the map need to be recreated at the new zoom level. Areas remember their particular zoom level so this is no hindering issue in actual gameplay.
Any map can be displayed in both modes, but the visual map editor only works in regular mode. Consequently, grid map mode need to be turned off before editing the map. Grid mode is an area property.
regular mode grid mode grid mode.
Room Properties
Room object need following required properties in order to be shown on the respective area map:
- unique room ID in form of an integer value
- area ID in form of an integer value (To which area does this room belong - or in other words, which area map displays this room)
- x, y and z coordinates as integer values which relate to its paricular area map coordinate system
Further optional room properties:
- regular exits with or without respective exit locks
- special exits with or without respecitve special exit locks
- room lock
- exit stubs (draw exit directions even though the exit rooms have not yet been defined)
- custom exit lines (user defined line strips of various formats to visualize special exits or redefine regular exit lines)
- searchable room name that can be used for bookmarks, annotations etc.
- room weight (How long does it travel through this node. A high room weight makes it less likely that this room will be chosen for pathfinding e. g. a safe road should have a low weight, whereas a dangerous place should have a high weight
- room color
- room character e. g. the symbol $ to symbolize a bank or H for a hotel.
Visual Map Editor
Maps can be comfortably edited by using the visual map editor or by scripts. The editor behaves like the usual WYSIWYG editors. Select objects with a left click and then right click to open a context menus and do actions on the selected objects.
Object selection
left click = select element left click + drag = sizing group selection box choosing all rooms in the box on the current z-level left click + shift + drag = sizing group selection box choosing all rooms in the box on all z-levels left click + alt (or the mapper menu move map buttons) = move map left click + control = add a room to current group selection or remove it
if multiple rooms are being selected a room id selection list box is being shown where you can fine tune the current room selection via the usual left click + control or left click + shift. The box disappears if the number of rooms in group selection is zero.
Moving Objects
Move selected objects either by right click and select "move" or with following handy short cut:
- left button down on custom line point + drag = move custom line point
- left button down + drag usually moves the item directly (as a handy shortcut) if only one element has been selected
- or hold left button down + control + drag if multiple rooms have been selected