Skip to main content

Creating a New Map

Adding a brand-new location is a task at the intersection of game design and level design, and it's harder than placing points on an existing map. Below is the process reconstructed from the structure of the pda-assets and pda repositories.

1. Draw the location in Tiled

A new map is a .tmx file edited in the free external Tiled Map Editor:

  1. Create a new map with an orthogonal projection and an 8×8px tile size.
  2. Use the existing tileset maps/tiles/tiles.tsx from pda-assets — or extend it with your own tiles (textures go into maps/tiles/).
  3. The tiles layer is the terrain grid itself (roads, grass, swamp, walls, etc. — from the tileset's palette).
  4. The objectgroup "objects" layer holds collisions: mark walls and passability boundaries with polylines, and obstacle hitboxes with rectangles. If needed, add objects with the fire=true property for campfire spots.

2. Put the map into pda-assets

  • Save the .tmx file into maps/ under a clear name (for example, zaton.tmx).
  • Add a preview/thumbnail of the location to maps/textures/map_<name>.png — used in the location-selection UI and on the minimap.

3. Localization

Add the location's name to the localization file (locale/ui.properties). If you want the location to participate in the background "radio chatter" of random stalker messages, add place-tied phrases to templates/locations (for example, "near the checkpoint at Zaton").

4. Register the map in the game

The game (pda) itself doesn't hardcode the list of locations in its code — maps are represented by a GameMap record (data, not code): id, title, level, the .tmx file's name, the player's starting position (defPos). Adding a new map to the registry of available locations is a data change on the game/backend side; as of this writing, the exact format of that registry (where the list of GameMaps is physically stored) wasn't fully clarified by this research, and needs confirming with the pda/pdanetwork developers before you can count on adding a map entirely on your own.

5. Fill it with a story

Once the location is registered, everything else is entirely in the story writer's hands, with no developer involvement needed:

  • Add points through your story chapter (points.<map_id>).
  • Add faction squads (spawns.<map_id>).
  • Link a transfer point (type: 7) on an existing neighboring location to the new map, so the player can reach it.

6. Add a transfer point from a neighboring map

To reach the new location, an existing neighboring map needs a point of type 7 (transfer), and the new map needs a matching transfer point back to the neighbor. Both transfers are usually added by the same story chapter that introduces the new location to the game.

note

This section was assembled from data about the resource structure and the map data model, but hasn't been verified "live" by actually adding a new map to a built copy of the game. If any part of steps 4/6 doesn't work as described, see Open Questions and check against the current pda code.