Efficient Map Creation
Languages: English
BEGINNER
THIS IS A BEGINNER ARTICLE
Introduction
MapTool has two modes when it's being used to run a game: server, and client.
The server accepts connections from clients and coordinates all data transfer between clients. This means the server needs to have good upload bandwidth — if there are five clients connected to the server, all data that comes into the server must be distributed to the other four clients. And changes that are made on the server itself need to be sent to all five clients.
Therefore, it makes sense that maps need to be created in an efficient manner that minimizes the amount of data that must be transferred. This provides a better experience for all players, including the person using the server.
This page will discuss three predominant techniques for creating maps in MapTool:
- Building the entire map in an external tool (such as PhotoShop or Gimp).
- Building the entire map within MapTool itself (typically using stamps, such as wall segments or floor segments).
- Building the map using a hybrid of the first two approaches.
Using an External Tool
This option is good for users who are comfortable using PhotoShop or Gimp or other paint programs (now including Dungeondraft). These tools allow a user to design and draw an entire map within the external tool. When the drawing process is complete, the map can be exported in PNG or JPG format and used very easily within MapTool (described next).
Follow the process for creating a new map within MapTool. Click the Map button on the right side of the New Map... dialog and navigate to where the exported image is saved and select it.
That image becomes embedded as the underlying graphic for the map, similar to how a tiling pattern is used for the default Grasslands map. This keeps the normal Background layer empty so that other background images can be added to it. (For example, perhaps the exported map only contains walls and doorways, along with other static elements that clients will not interact with. However, doors could still be added to the Background layer and the GM could open/close the doors, as necessary.)
When clients connect to the server, that image will be transferred to each one separately.
Pros:
- The image generated is limited only by the user's skill with the external program!
- The image will be the only map information that needs to be transferred to the client (other than tokens).
- For external programs with proper support, the content of the VBL (vision blocking layer) can be created while the map itself is built. This is commonly done via a "mask" layer or other features within the paint program.
Cons:
- A large image could consume significant upload bandwidth on the server, since it will be transferred once for each client.
- If a failure occurs during the network transfer, the entire image may need to be sent again, further exacerbating the bandwidth requirements.
- Individual objects on the map cannot be interacted with, such as moving chairs or opening doors.
Using a Tileset
If your map is going to contain the same images over and over, combined in different ways (such as one overlapping another, or the same image multiple times but each one rotated slightly), then using a tileset may be a good approach.
In this technique, you create the map using whatever background you want, then you drag images from the Resource Library onto the map and position/size them as you need. The images can be trees, wall segments, doors, floor tiles, and so on. When you're done, you may have hundreds (a or even thousands!) of images on the map.
This technique allows players to interact with each individual element on the map, if the images are placed on the Object layer. Place non-interactive elements on the Background layer. This interaction is currently limited to clicking on an image to see the formatted contents of the image's Notes in a pop up panel. The GM will see both the player notes and the GM notes from the image. (A future version of MapTool may support additional interactivity options.)
Pros:
- Very little memory usage on both server and client:
- Use a grid size of 100px (so each grid cell is 100px across).
- Most images should be 200x200 pixels.
- For images that you expect will be zoomed and studied by players (maybe a letter on a tabletop, for example) a slightly larger resolution may be appropriate.
- Each image is only sent once to each client, and is only loaded into memory once, even if it appears on the map multiple times in different positions, sizes, or rotations.
- Fast transfer times to the clients as long as the above sizing constraints are used (or similar ones; experience will help you determine what is appropriate for your network bandwidth limits).
- Players can't access their asset cache to see the entire map! (They can see individual images, but no information about position, size, or other properties.)
- When building the map, it can be helpful to drag images to the map and set their visual properties once, then copy/paste them into place. For example, wall segments can be placed on the map off to the side, then copy/pasted to produce a room or passageway.
Cons:
- After many images are placed on the map it can be difficult to select a particular one for the purposes of repositioning or resizing it (it may help to zoom way in).
- Requires a large Resource Library for all of the images (RPTools has free art packs available for download by using File > Add to Resource Library... and clicking on the red RPTools logo).