Making Cities Slicker

“What strange phenomena we find in a great city, all we need do is stroll about
with our eyes open. Life swarms with innocent monsters.”

― Charles Baudelaire


Basic RGBPerhaps not as much as haunted ruins or mysterious towers, but cities have long been a staple of fantastic literature. Lankhmar is as much a character as Fafhrd or the Grey Mouser, and the mental image of the circles of Minas Tirith has stuck with me since i first read them in middle school.

Fantasy cities provide characters with the opportunity to spend their hard-earned gains, seek out wise counsel, or simply stir up trouble. But they can be some of the hardest locations to design and manage for the game master. Everything that makes them enticing — the freedom, the choices, the opportunities and risks — make them difficult for a GM rot handle and players to make the most of.

Unlike dungeons or wilderness areas, most urban areas are too large to be fully detailed (unless you have far more time than I do), and the ‘goals’ may be harder stay on top of. Further, urban areas make it far easier for player groups to separate and force the GM to juggle multiple stories at once.


  1. I’ve run two campaigns out of a fair sized elven of 15,000. Non-elves were required to sleep in a ghetto, which the party to interact with a core cast of NPCs. By making it attractive to stay in town–adventurers are treated like rock stars–they settled in, learned local history and felt invested in the place. They reached out to a network of NPCs for all sorts of things, easing that awkward “I’m spoon-feeding the clues” feeling I get when Doing.

    I also found it much more interesting for the players to save a town or protect people they actually cared about. I could also thread back characters and events, which the players also liked. For instance, near the climax of the second campaign, I brought back a loathed character from the first campaign; the party freaked out (and it only got better after that.

Leave a Reply

Your email address will not be published. Required fields are marked *