Let me tell you about a game my father played with me as a child. It started when we were walking home from grade school in winter, through the Greenwich Village towards the East Village where I lived with my mother in a six floor walk-up opposite Saint Mark's Church. He would pull a hat over my eyes to blindfold me. He would take a couple of quick turns and walk me around until I was "lost" (disoriented), and then he would put me in front of something, and lift the hat, shielding with his hands the rest of my view, so that I could only see what was right before my eyes.
Although we had never walked very far, and I had been over every street dozens of times, I had never seen (noticed) any of the things he showed me. A marble bust of a polish general. A colonial looking house with huge roman columns. Once he took me inside a store and when he lifted the hat there was an airplane in there. It was a rule that he would never tell me where we had been afterwards. Cut off entirely from the map of the streets as I knew them, these glimpses gave me the sense that i was seeing an entirely different city, a hidden city, like a palimpsest lying beneath the city I knew and peeking out here and there when the hat came up. What could I do build in my mind but spin out a whole alternate city built from these glimpses of things that were in truth hidden in plain sight? This alter-New York loomed large in my imagination.
The Model of Dungeon Crawl
I've been thinking for a long time about how to run and design cities in a retro-game sandbox way. I've been reading older rpg city material off and on for years. I've also been running occasional games of the City State of the Invincible Overlord for my kids and their cousins. And now, at long last, one of my two groups has finally made it up to Zyan Above for some proper adventuring. So I thought it was time to pull together something in the way of technique.
As I talked about here, the City State of the Invincible Overlord provides one model for running a fantasy city. It takes what I would call a "street-based" approach. In CSIO, streets generally have their own name, and many have their own special encounters. You also move through the city streets like corridors in a dungeon with encounters on a turn-based system. And there's a gorgeous map. It has the same openness that location-based adventuring has, but much more, since the "dungeon" of the city is less deadly and much more open. Because it's so focused on streets, there aren't neighborhoods with write-ups, because the focus is more fine-grained. This is similar to the way that dungeons often only loosely have thematically different quadrants.
One thing I like about this approach is that it takes a tried and true open-gaming model and tries to reimagine and repurpose it for citycrawling. It also works for discovery and exploration. Just like I explore the map of the dungeon, moving through corridors, opening room by room, so too I explore the map of the city. For example, like other Judge's Guild products, the CSIO came with both player and DM maps, so that the players could fill them in, jotting down notes on the temples, guilds, establishments, and so on they discover.
Although untapped, by extension from the dungeon, this also suggests a possible model for uncovering hidden locations in cities, insofar as procedures exist for uncovering secret doors and hidden areas in dungeon exploration. Perhaps one could try something similar here extending the dungeon model further.
But the problem with this approach, for what I want, is that there's no way I could build a city that feels sufficiently big to scratch my metropolis of the dreamlands itch if I insisted on treating it in this exhaustive way. The entire CSIO map, for example, would only be the size of part of a single neighborhood in the city I've been imagining.
A second problem is that I don't yet have a city map, and I'm not up to drawing one myself. This technique depends almost entirely on having a beautiful and interesting map.
A third problem is that a map-focused approach doesn't have rules for getting lost. The simplest most fun version of using this technique would probably involve giving the players their own map of the city so that we didn't get bogged down in narrating details of the map. But in that case, the players would always know where they were.
A fourth problem is that by taking the street as the level of analysis, it loses something of the texture of a city. I want an approach that emphasizes the different feel of different neighborhoods. I want a city with neighborhoods that feel as different as the East Village feels from Washington Heights or Red Hook or Astoria, or, to take a different city, as a different as Friendship feels from Polish Hill or Mount Lebanon. (Of course, one could recapture this through a well-designed map, but one could also try a different approach that built in the neighborhood as a unit more directly.)
The Model of Procedural Generation
From early on, a different model competed with the completist dungeon-crawl model of the CSIO. This model involved procedural generation, either on the fly or in preparation for the game. There probably are precursors to this, but there are two relatively early products I know of that apply procedural generation techniques familiar from dungeon construction to cities. If you know more in the comments, then please let me know.
The first is Midkemia system, first presented (I think) in the second edition of Cities, which involves a rich technique for randomly "stocking" a street with various shops and residences by rolling dice, with some neat rules for businesses clustering on a given street. Here we could see them applying the sorts of methods the Dungeon Master's Guide gave us for randomly generating dungeon rooms and stocking them via rolling on tables.
The second came in Lankhmar: City of Adventure, which borrowed the procedural generation of dungeons using geomorphs: cut out dungeon chunks cleverly designed so that one can assemble them in any number of combinations by laying down connecting tiles. Lankhmar used a city geomorph to map the mazy slum of alleyways that connect buildings in a sort of city-within-a-city way in Lankhmar. The thought was that there was no way or point in mapping them, and that their jerry-rigged structures shift often as well, so better to capture the mazy, infinite, and shifting feel of it it with procedural generation. In a delicious coup, the gorgeous Lankhmar map left blank spots to indicate where one entered geomorph space, so that you would generate a chase through the streets after a cutpurse (say) in this fashion, and players could know in advance when they stepping into an area with this sort of procedure.
Again, what I like about this is that it takes tried and true techniques from open-world dungeon crawling and design, and repurposes them to work on the city environment.
The early OSR fastened on techniques like these to deal with city crawling, focusing on procedural methods of generating city environments, although without much awareness of the early hobby precursors. Vornheim was intended to capture an infinite city, of which its author, the abuser Zak Smith, grudgingly drew a map of on the inside cover, while telling the reader not to use it. Instead, streets were to be procedurally generated using a (too) cute system that involved writing words, with a separate die drop system for generating buildings and streets. This was supplemented by copious random tables did the rest of the work, along with illustrative examples of buildings and the like. [New copies of this book are not for sale any more, so discussing it will not produce profits for its author.]
The reason why this procedural generation approach won't work for me, as flexible and wonderful as these techniques can be, is that if you procedurally generate locations on the fly, you systematically disable the pleasure of uncovering something hidden, since it's all made up as you go along. As a player (not a character), I can only find something if it's already there to be found. Furthermore, if the map is infinite and generated on the fly, then although it sure will feel big, there also will be no such thing as coming to know it. And my love of cities is all about coming to know them, and this is what I want to capture in my city crawling rules.
The Model of the Pointcrawl
Another model we could try in this context is the pointcrawl. The term "pointcrawl" was coined by Chris Kutalik for techniques that use points of interest connected to one another by abstract paths one moves along. The pointcrawl abstracts movement through a much larger space where not everything is of equal interest, and so where a micro-focus on the environment is not fun. It also mirrors the way one orients oneself in a wilderness space, navigating by landmarks, trails, paths of least resistance, and the like.
This is promising since it would allow exploration while focusing prep energy as a DM on a set number of notable locations, with possibly multiple things there, e.g. a location could be a single notable bathhouse, or it could be a theater row, or a bustling square with numerous establishments. If we wanted to focus on different neighborhoods, we could make each it's own pointcrawl. A pointcrawl models in abstract ways the distance between things without presupposing that one has a gorgeous map sufficient to capture the fascination and interest of players. So that's a plus too.
There is an obstacle to this otherwise promising approach in the city context in that one can usually reach a location in a city without being forced to move through any given location by going a slightly roundabout way. Thus cities don't really have the chokepoint feature of pointcrawl maps. But one can handle this by simply giving players the option of not interacting with points they pass through.
To make this work, we'll also need rules for getting lost on a pointcrawl, and a way to model off the beaten path or "hidden locations" in each neighborhood, which are often not literally hidden (although sometimes they are), but rather places that are easy to miss secret locations. Luckily, I have a system for this I developed for the sewer crawl in issue 3 of Through Ultan's Door, that uses a system of floating hidden nodes on the pointcrawl. I'll repurpose that here.
My Citycrawling System (V.1)
The number of neighborhoods, and locations in a given neighborhood, depends on the size of the city. There are the same number of hidden locations per neighborhood as regular locations, and the number must correspond to a die size (4, 6, 8, 10, 12, 20, etc. unless you use funny DCC dice). The hidden locations are ordered in a numbered list in terms of how hard they are to find, the higher the number, the harder it is to stumble on them.
- Small City: 3-5 neighborhoods; 4 nodes and hidden location per neighborhood
- Middling City: 4-6 neighborhoods; 6 nodes and hidden location per neighborhood
- Large City: 5-7 neighborhoods; 8 nodes and hidden locations per neighborhood
- Metropolis (the size of Zyan): 6-8 neighborhoods: 10 nodes and hidden locations per neighborhood
- Megalopolis: 7-10 neighborhoods: 12 nodes and hidden locations per neighborhood
At the bottom end you have a city with three neighborhoods, 12 notable and 12 hidden locations. At the top end you have a city with a staggering 10 neighborhoods with 120 notable and 120 hidden locations. Zyan is on the big side, with 6 neighborhoods, and so 60 notable locations and 60 hidden locations. While prepping a giant city like this is a lot of work, the idea is that it could sustain years of possible play, a whole campaign in a single city. (And should players just visit, I want them to be like: HOLY HELL that's a proper city of the dreamlands.) This number feels right to me.
When entering a neighborhood roll an encounter check. Also roll an encounter check when moving from any node to another other node. Encounters in cities are somewhat less perilous (although they can be dangerous), less to give pressure to exploration, and more to provide color, introduce NPCs, and provide hooks for adventure. Encounter checks occur 2 in 6.
Searching for Secret Locations
When entering a neighborhood, or moving between locations in it, check to see if the party becomes lost. Roll a die corresponding to the number of locations in the neighborhood (4=1d4, 6=1d6, etc.). The chance of becoming lost is initially very high, n-1/n (so 3 in 4, 5 in 6, 7 in 8, etc.). Decrease that chance by 1 for each location the party has visited in the neighborhood. When the number is 0, the party knows their way around well enough that they can no longer become lost in that neighborhood. (This necessitates a minimal book-keeping for each neighborhood, with a score equal to the number of locations the party has visited in that neighborhood.)
If the party is lost, that's not necessarily a bad thing. First give them a free roll to see if they stumble upon a secret location, since getting lost is the best way to find something off the beaten path. Next roll an encounter check. Finally, if they don't find a hidden location, dice randomly to see at what (non-hidden) location the party arrives, the spot where they can ask for directions and get their bearing.