Efficient Map Creation

From RPTools Wiki
Revision as of 23:59, 15 March 2023 by Taustin (talk | contribs) (Taustin moved page efficient Map Creation to Efficient Map Creation over redirect)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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:

  1. Building the entire map in an external tool (such as PhotoShop or Gimp).
  2. Building the entire map within MapTool itself (typically using stamps, such as wall segments or floor segments).
  3. 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. See also Introduction to Campaign Repositories.
  • If a failure occurs during the network transfer, the entire image may need to be sent again, further exacerbating the bandwidth requirements. This is more likely when using wireless networks, but the vagaries of the Internet can get you as well.
  • 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 texture 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 (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. Some recommendations:
    • Use a grid size of 100px when creating the map (so each grid cell is 100px across).
    • The images you drop on the map should be 200x200 pixels. When dropped onto any layer except Background, they will be sized to fit one cell (meaning they will be scaled to fit). This allows players to zoom in and see the image in all its artistic glory! (Note: There are options on the Preferences panel to allow images dropped on the various layers to start out at their native (a.k.a. "free") size and not be scaled to the grid, and any image may be set to a scaled grid size or not via its context menu.)
    • For images that you expect will be zoomed and studied by players (maybe a letter on a tabletop, for example) a slightly higher resolution may be appropriate. See also Introduction to Tokens: Layout, Portrait, and Handout.
    • 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 (size, rotation, opacity, halo, and so on), 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:

  • MapTool currently doesn't implement any kind of "image grouping" so 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. See also Introduction to Mapping: Getting Images into your MapTool Resource Library

The Hybrid Approach: A Little of Each

As the title implies, this technique uses a combination of the two approaches. After using MapTool for awhile, you should begin to get an idea of how your gaming group prefers to use it. Are they in awe of your artist ability with the 2000' x 3000' map you made of the warehouse? Or are you and they just as happy with a rectangle drawn using the drawing tools? The former is easier on the eyes, but the latter is easier on your network bandwidth and spare time!

In any case, you may wish to create some maps using the first technique by meticulously drawing floor plans and city streets, yet use the second technique when you know the area involved is huge and you want to cut down on download times or memory usage of the clients. There is nothing to stop you from using one technique on one map and a different technique on another map. Mix and match in whatever way suits you best!

You can mix and match on a single map as well. Perhaps you want one or two rooms of a large manor house to be laid out in detail, while the courtyard area or the surrounding gardens don't need such detail. Experimentation will help you get a feel for which technique to use when.

Good luck, and have fun!