City adventures originally were handled one of two ways:
- freeform/unmapped, where the GM glosses over route details and goes directly to the location;
- fully mapped/keyed, where every building’s shape, position , inhabitants and contents are written out beforehand, just like a dungeon map.
TSR’s Lankhmar product took a new approach: full but semi-random mapping, partial keying. The full-color map is divided up into districts, with a key in the main book for every district. District maps are incomplete; each district has two to nineteen empty spots for city block geomorphs, randomly selected with a d12 roll (with a d4 for orientation.)
Only a few locations are keyed in each district, with a total of 99 locations described in the book. Sounds like a lot, but there are nearly a thousand buildings on the map. Other locations are added by the GM to worksheets from a separate booklet, which also include geomorph sheets that can be photocopied and filled in. There are random tables in the back of the main book to determine building type and NPC occupants for the huge number of unkeyed locations.
The Lankhmar book is not perfect. Numbers for keyed locations don’t seem to follow a strict pattern, appearing to run from North (low) to South (high) in parallel strips starting from the east wall, but there are exceptions. This makes it hard to find locations mentioned in the key. Using two books (or a book and a notebook containing photocopied worksheets) seems a bit clumsy. A GM would need to flip back and forth between the district close-up map and any geomorph referenced. Finding districts in the book is complicated by the fact that the districts aren’t labeled on the large color map; you need to know which streets act as boundaries between districts and remember the name of the district so that you can look it up.
Still, Lankhmar, City of Adventure was the seed that grew into a third semi-random mapped method, with several good ideas:
- A split between unique locations (keyed beforehand) and generic locations (typical merchants, inns, taverns, craftsmen, as well as households.)
- “Just-In-Time” map keying for most city locations (fill in details for a building when the details are needed, not beforehand.)
- Random generation of the bulk of the generic locations, to simplify map keying even more.