Thursday, June 28, 2018

Public Domain Photos - Ansel Adams' photos of Manzanar Detention Center

The Library of Congress has a collection of Ansel Adams' photos of the Manzanar War Relocation Detention Center in California.
 
In the photos below, you can see the sign at the entrance to the detention center, a view of the center from the street, and a line of people waiting for lunch.
 
"Manzanar Detention Center" from Library of Congress
 
"Manzanar street scene, spring" from Library of Congress
 
"Mess line, noon" from Library of Congress
 
 
While they were interned, the people who lived here did what people do everywhere, wherever they live, wherever they have a community. They played games, like bridge and American football and volleyball.
 
"Bridge game" from Library of Congress
 
"Football practice" from Library of Congress
 
"Volleyball" from Library of Congress
 
 
The operated a press to report on their own local news within the center. They visited a museum exhibit of photographs of their own internment.
 
"Reading paper in front of office" from Library of Congress
 
"Manzanar museum, Ansel Adams exhibit" from Library of Congress
 
 
Older children attended high school classes, classes on science, classes on dressmaking.
 
"Science lecture" from Library of Congress
 
"Dressmaking class" from Library of Congress
 
 
Younger children in the internment center attended their own school, and Sunday school. They learned informally from the interned adults. They took calisthenics classes. Children without parents, without families, were taken care of by a nurse in an orphanage within the detention center.
 
"School children" from Library of Congress
 
"Children at Sunday school class" from Library of Congress
 
"Group of children" from Library of Congress
 
"Calisthenics" from Library of Congress
 
"Orphanage nurse" from Library of Congress
 
 
At least a third of the photos Adams took inside Manzanar were individual portraits. About three hundred of his photos are held by the Library of Congress. What I've shared here is only a very small sample of the collection.

Monday, June 18, 2018

Experimental Layouts for a Dwarven City Megadungeon

I previously wrote about devising some experimental procedures for generating a dwarven undercity. As I explained, I have a friend who plans to write an undercity generator, and I'm helping him a little by thinking about the procedures. I wanted to test my suggestions to see how well they did at generating a usable map. My initial ideas worked pretty well, although I developed some modifications while using them, and realized at least one more after I finished.
   
I started with a blank hexmap with the same layout as the Brimstone Mines from Black Powder Black Magic, volume 4, including a central borehole as the primary entrance. Since the procedures are intended to generate paths as you explore, I didn't want to just start in a corner, fill in a row, hit the carriage return, and repeat. Instead, I started at the entrance and followed a path. Actually I followed two paths, because I did this twice to see how different the layouts might look. The first time, I always went to the left-most unexplored hex; the second time, I went to the right-most unexplored hex.
   
I realized after doing this that I probably included too many "passageway" hexes, and that if this is supposed to be an under-city, then it ought to have some neighborhoods. I think I rolled more 2s on the left-hand path and more 3s on the right-hand, so if you wanted to use these maps, I would flip coins for each of the passages, and whichever comes up more (heads or tails), I would give the left-hand map more "neighborhoods" and the right-hand map more "passages".
 
The "passageway" hexes are the ones with small squares and little tunnels branching off them. The things that look like amoebas are "caverns". The larger squares with terrible maze-diagrams are "maze" hexes. "Special" hexes would involve rolling on a sub-table. I imagine these will be unusual, but not unique, terrain like parks, gardens, lakes, perhaps particular districts within the city. I drew them as mushroom forests because, (a) c'mon, of course a dwarven undercity is going to include mushroom forests as one of the possible special terrain types, and (b) they look better than a hex full of question marks. "Unique" hexes would also involve rolling on a sub-table, and I'm thinking these would be known locations, palaces, landmarks, and the like. I drew these as fortresses because again, (a) c'mon, and (b) the question mark aesthetics thingy.
 
As you enter a hex, roll on the following table to determine terrain type:
1 cavern
2 neighborhood
3 passages
4 maze
5 special
6 unique
   
Regardless of the terrain type, roll 1d4 to determine the number of exits. If the hex has no blocked sides, it gets 1d4 exits in addition to the entrance you just drew. If it has any blocked sides, it gets 1d4 exits in total. Hexes on the edge of the map all have at least one blocked side by default. Place the exits at random from among the available sides, and consider any side that doesn't have an exit to be blocked. I found it helpful to draw in the blocked sides to remind myself not to draw a new connection there in the future. (When randomly placing the exits, you should never need to roll more than twice - either roll once or twice to determine which sides get exits, or roll once or twice to determine which sides don't get them.)
   
Earlier I wrote (what turned out to be) some complicated and unwieldy ideas about comparing the number of exits you just rolled to the available sides and using that to determine secret passageways and temporary blockages and etc ... ignore all that. If the number you just rolled is higher than the number of unblocked sides, then all remaining sides get exits. If the number you rolled is lower than the number of pre-existing routes into the hex, then just block the remaining sides off. Trying to use the normal path generator to make special passages was a mistake; those should be features that get determined by a separate table.
 
I also had some ideas about generating significant sites within each hex. Determining if those procedures are correct or not would take a different kind of playtesting and/or philosophical introspection about what the nature of the undercity-crawl should be like. I will say that I think it will probably be easiest to roll a d20 on a menu showing possible site locations within the hex. Rolling d4 to determine the number of sites, and then rolling d-something several times to randomly place them gets a little tedious.
   
The question of whether or not this is the correct size map would also require introspection to answer. A larger map lends itself to more horizontal exploration; a smaller map means that players are going to start descending to deeper levels sooner. But it's a question of preference, not true right and wrong. What do you want your city to look like and feel like? How quickly do you want your players to descend? The city probably does need edges though, unless you want it to possibly go on forever. With d4 exits per hex, you will never procedurally generate a map edge unless you start out with one drawn on the map already.
   
Anyway, the two maps I drew are below. I think the terrain-and-path generating procedure I've come up with leads to a decent variety of areas that are fairly interconnected without allowing total freedom of movement. You would need some actual playtesting to be sure, but I think this should feel more like being inside a large structure or network of caves rather than being in an open under-wilderness. d4 exits might even be too many, although I'd have to try this again with d3 to confirm that. The left-hand map was totally filled in. After the initial pathcrawl filled in most of the hexes, I just went back and rolled for the remainders. The right-hand path actually led to every hex on the map, and cut eight hexes out of the map by blocking off all their available sides.
     
Here is the map I drew by following the left-hand path:
   
And here's the map that came from the right-hand path:
   
I kept track of the two paths I followed while drawing, and you can see them here:
   

   
     

Tuesday, June 12, 2018

Mechanics for Resource Management - part 1, The Easy Way

Recently I've found myself thinking (and commenting on G+) about resource management in D&D. The series of posts I'm starting here is mostly an attempt to gather my thoughts in one place so that I can consider my options and think about my own preferences.
  
In the earliest versions of D&D, it seems that players were expected to keep scrupulous accounting records of their adventuring gear and the weight of their treasure. Gear was recorded in pounds (or even in coin-weight-equivalents) and there were multiple levels of encumbrance with associated movement rates.
  
As I understand it, the goal of this approach is to make resource management central to the playing of the game. Your gear determines how many 10' dungeon grid-squares you move per exploration turn. Torches provide illumination out to a set distance, beyond which the dungeon is invisible in the darkness. Torches burn out and get used up; if you don't bring enough with you, you could run out entirely and be stuck in the dark. Every turn or every other turn, you check for wandering monsters. When you do find some treasure, you're limited in how much you can carry, and you have to decide how encumbered you're willing to become. The more treasure you take, the slower you'll move, the more torches you'll use up, and the more wandering monsters you'll check for and encounter. (And wandering monsters, of course, use up things like ammunition, spells, and the ultimate character resource, hit points.)
  
As I said, I think that's the goal. I think the message is intended be that resources matter, you have to make hard choices to manage them, and if you make the wrong choices, you won't get out alive. In practice, rules that require such strict record-keeping and so much memorizing and monitoring of multiple metrics simultaneously, in terms of pounds and coins of encumbrance, in terms of squares of movement, in terms of watching the time on your torches, in terms of remembering to keep checking for monsters ... in practice, a system like this sends a different message, to me at least.
  
  
If resource management is going to matter, then the rules for resources have to be simple enough to remember, monitor, and apply at the table.
  
In defense of the original rules, I think they were playing with miniatures on table-size grip-maps, and I think most of them were wargamers who were used to doing a lot of mental accounting during their games. Move off the miniature map and away from a direct physical representations of the pieces on the board taking their turns ... move away from that, I think it becomes practically unmanageable.
  
Later editions of D&D and Pathfinder seem to feel obliged to maintain rules for equipment weights in pounds, degrees of encumbrance and rates of movement. But they're like legacy components that are no longer supported by the rest of the system. There rules are there, but they don't matter. You get all the work, but it serves no purpose. In that sense, it becomes completely optional, because nothing in the game depends on tracking those things. There are no consequences if you don't track them, and no consequences if you do track them either.
  
If there are no wandering monster checks, then why does it matter how quickly you're moving? If it doesn't matter how quickly you're moving, then why does it matter how much weight you're carrying? And if it doesn't matter how much weight you're carrying, then why bother tracking the individual weights of every item in your inventory? (And in general, the high-fantasy settings these editions imagine, the linear-path games they support, and the medieval-superhero characters they generate all seem antithetical to imaginary scarcity and privation.)
  
For whatever reason though, the people writing these rules seem to be unable to admit that they're essentially set dressing, the weight of your boots mattering no more than the nutritional value of your bar-food or rations. Instead of removing the rules, or stating that they're cosmetic, or choosing to meaningfully support them, instead they have often chosen to fill their worlds with magic items to circumvent them. The worlds of 2e, 3.0, 3.5, and Pathfinder are all worlds filled with bags of holding, boots of walking, and flashlights of continual light. I don't know what message they hope this is sending to their judges and their players. Something about how it's important to track these things for their own sake, or the sake of realism, or the Protestant ethic, or something, but also about how good players and judges should find magical within-game ways to circumvent these rules as quickly as possible. I'm just guessing at that, though. I don't really understand what message they want to send. I do know what message they're sending to me though.
  
  
If resource management is going to matter, then there have to be consequences that result from how the players choose to manage their resources. (Consequences both for carrying too much, and consequences for trying to do without.)
  
5e introduces some rules simplifications in other areas, possibly aimed at lightening players' and judges' cognitive loads to the point where resource management could matter once again. Rather than picking characters' starting equipment item-by-item from across a multi-page inventory list, players get to pick between a few pairs of weapons that come with ammunition, and they receive a pack that contains bundles of items like torches and ropes.
  
My only critique here is something I've noticed in play. Every background has a special ability that guarantees you free room and board from someone. You start the game with a week or two of rations, enough arrows to slay a small army, and enough light to last at least through your first session without refueling. You can mark them off as you play, but you know (or you learn, the game teaches you) you'll never run out mid-session, and between sessions, you can fully restock on anything you used up. So why mark them off? Why keep track, if keeping track will never matter, if it will only ever be busywork?
  
And if you're not keeping track of your arrows, and the things the game offers for sale are things like arrows, things that cost the barest fraction of the treasure you hauled out your very first session, why keep track of those purchases? Your food is already free, your room every night is already free. What is there left to spend money on? And if you can't spend it fast enough to ever, even for a moment, be in danger of running out of it, why bother tracking it at all? (Yes, I realize I just asked "why track gold in D&D?" but if you aren't trading gold for XP, and you always have as much gold as you need for routine purchases, and routine purchases are the only kind of purchases you can make ... then why track gold in D&D?)
  
  
If resource management is going to matter, then resources have to be managed routinely (possibly every time they're used) so that running out mid-session is always a possibility, and having enough when you need them is the result of strategy, conservation, or luck, and not guaranteed.
  
If your supply of something is so great that you'll never run out when you need it, then your supply is practically unlimited. That is, in practice, if the number of supplies you have is so great that it can't run out, then that number does not set a limit on your use of that supply.
  
  
   
So the first option for resource management in D&D is, don't.
  
Don't manage your resources, ignore them.
  
Your characters can carry whatever equipment they've accumulated along the way. They are in the hallway, then a room, then back in the hallway again, then in another room, and it doesn't matter how much time passes while they do that, so it doesn't matter how fast they were moving. The lights are always on. Their guns never run out of bullets. They never need to eat or go to the bathroom. They always get a good night's sleep. 
  
But if you're going to ignore resource management, ignore it. Don't force yourself to count things where the number doesn't matter. Don't continue going through the motions of a certain style of play without actually playing it. Be honest with yourself about what you're doing. Admit to yourself that you don't care about encumbrance, or movement rates, or light sources, or whatever. Don't pretend you're using them when you're not. Give yourself permission to play the game you're already playing. Don't punish yourself with unnecessary bookkeeping just because you don't want to acknowledge that account will never be overdrawn. Dan Savage claims, "Some people twist themselves into the oddest knots so they can have what they want without having to admit they want it." Don't do that. Admit what you're doing. Give yourself permission. Ignore it.
  
Admittedly, this style of play is far removed from the original wargamers counting dungeon tiles and coin-weight-equivalents, and double-checking their marching order, and playing "who's on torch" to decide how far they can move and what they can see each game-turn. But we've been far removed from that for awhile, though we feel obligated to pretend we're not. Ignoring resource management is easy. It frees up your cognitive resources to focus on other parts of the game.
  
Tracking all that shit is hard, and it's much harder to do in the theater of the mind than it is at a bespoke wargaming table. Sometimes you want to play a game without feeling like you're recreating The Things They Carried in fantasy while you play. Tracking all that shit takes time, real time, your time, an actual resource that is truly limited. For novice players, or players who are too busy, or players who can't make an 8-hour play session, ignoring resource management might be the only way they can play.
  
Are you missing out on something if your game doesn't include resource management? In the sense that you are missing out on participating in a very specific style of play, yes, you're missing out on something. But in the sense that that style is somehow the superior way to play? That everyone who doesn't play it only experiences something inferior? No, you're not missing out on a thing.
  
Gary Gygax claimed that "You cannot have a meaningful campaign if strict time records are not kept," and you get the feeling that he felt that way about everything, down to accounting for the last copper penny. But meaning can come from lots of sources, and for me, those sources don't include determining my character's height in inches, or weight in pounds, or age in years, or birth order, or astrological sign, or how much loose change she keeps her pocketbook, or how many pencils are in the jar on her desk, or how many AA batteries she has in the door of her fridge.
  
Including any resource management in your game has to start with acknowledging which resources you want to manage, and which you can safely ignore. If there are resources you want to manage, then manage them, and for the rest, do what TSR and Paizo and WotC have been telling you to do with them all these years, (despite not being willing to admit what message they're sending you).
  
  
This is just the first option, the easiest. Everything else is more complicated.

Wednesday, June 6, 2018

Bodys Isek Kingelez's Dungeons I Want to Explore - The Dream Cities

The Grey Lady recently had an article about Congolese artist Bodys Isek Kingelez receiving his first exhibition in America (three years after he died, unfortunately) at the MoMA.
 
"Ville de Sète 3009" by Bodys Isek Kingelez, image via New York Times
  
"Ville Fantôme" by Bodys Isek Kingelez, image via New York Times
  
Kingelez sounds like he was an outsider artist. He had no formal artistic or architectural training. He built these model buildings and cities in his home using consumer-grade and found materials. He designed them as he built, without drawing plans or studies beforehand. The Times' critic is especially impressed with Kingelez's "consistency of style", his "multitude of references" to other architectural styles, and the way he uses those references: "every suggestion is fastidiously integrated".
  
The MoMA is calling this exhibit "City Dreams." I mean in no way to diminish Kingelez's artistic accomplishment when I say that to me, these look like set-pieces in a game I want to play - colorful, vibrant, playful, hallucinogenic cities I want to explore.
  
"UN" by Bodys Isek Kingelez, image via New York Times
  
"Canada Dry" by Bodys Isek Kingelez, image via New York Times

Sunday, June 3, 2018

Mechanics I Want to Use - DCC Movement Rates through a Dwarven City Megadungeon

I have a friend who's brainstorming a dwarven undercity campaign, using procedural generation to fill in a minihexmap as the characters explore a multi-level ruined-city megadungeon. These are my thoughts on the mechanics of moving around the megadungeon. The point of writing this is to try to think through some of the mechanical structure so that he can worry about the content. I'm using DCC as my base here, but my friend could relatively easily convert these ideas to work in B/X or any other system.
 
 
   
Humans and elves in DCC have a base movement speed of 30. Dwarves and halflings have a speed of 20. Characters with the Wild Child birth augur can have their speed altered by plus-or-minus 5, 10, or 15 depending on their starting Luck score. Wearing heavy armor can slow characters down. Wearing scale, chain, or banded mail imposes a movement penalty of -5, and wearing half or full plate imposes -10. So a DCC adventuring party without animals is usually going to have a group speed of 20 or 30.
 
Dogs move 40. Donkeys and mules have speed 30, ponies have speed 40, and both horses and warhorses have speed 60.
 
I propose to treat a character's speed as their movement points. Navigating the dwarven undercity requires spending movement points to explore and travel between hexes. The slowest character in the party determines how far the party can travel without anyone needing to forced march. The fastest characters in the party can take advantage of their speed to scout ahead and report back.
 
Hexes are approximately a mile across.
 
Although travel times are given too, the need for rest is based on using movement points, rather than the passage of time. Characters need to stop for the night and rest once they get to 0 movement points. Continuing to travel beyond that requires forced marching, which entails some element of risk. You could require that the characters have to stop to briefly rest around the time they use half their movement points, but unless you plan to have something happen during that rest, or just really want to narrate it for realism's sake, there's no reason to. (Alternatively, ignore the movement points, and use the travel times to establish the adventuring day. Travel up to 8 hours is as normal, going longer carries the risks of forced marching. Characters with low movement rates due to their species or encumbrance may begin forced marching after only 6 hours.)
 
Entering a hex is "free," but passing through it to come back out costs 0, 2.5, 5, or 10 movement points, depending on the terrain and on whether or the characters are exploring or crossing through a space they've already explored.
 
Terrain types
There are at least three common types of hexes in the dwarven undercity - caverns, passages, and mazes. There may be other common types that will need to be detailed later. There may also be special or unique hexes that would never show up on a general list. (Cavegirl's Game Stuff's The Gardens of Ynn might be a useful tool for thinking about what these uncommon hexes might be like.)
 
Cavern hexes
Movement point cost: Caverns cost 2.5 to explore initially, 0 to cross after exploration. Some caverns contain difficult terrain (such as weed-like or forest-like stalagmites) and cost 5 to explore, 2.5 to cross after exploration. Difficult caverns are relatively rare.
   
Time cost: Caverns take an hour to explore, half an hour to cross after exploration. Difficult caverns take 2 hours to explore, 1 hour to cross.
 
Cavern hexes are mostly filled with giant, wide-open caverns. They make ideal building sites and contain 1d6 or 1d8 significant structures. They contain 1d4 exits in addition to the entrance the characters used. Unlike in passages and mazes, the structures are not tied to particular exits and should all be considered central.
 
It is impossible to get lost in a cavern hex.
 
Passage hexes
Movement point cost: Passages cost 5 to explore, 2.5 to cross. Some passages are very easy to navigate. They have wider corridors, simpler layouts, and/or better signage. These cost 2.5 to explore and 0 to cross. Some passages are more difficult to navigate. These are narrower, more winding, contain stairs or other changes of elevation, etc. These cost 10 to explore, 5 to cross. Both easy and difficult passages are relatively rare.
 
Time cost: Most passages take 2 hours to explore, 1 hour to cross. Easy passages take only an hour to explore, half an hour to cross. Difficult passages take 4 hours to explore, 2 hours to cross.
 
Passage hexes are mostly filled with halls and corridors used to facilitate navigation between structures. Passage hexes contain 1d4 significant structures and 1d4 exits in addition to the entrance the characters used. Most structures are associated with a particular exit, and either can or must be accessed to use that exit. Occasionally there are central structures that can be accessed freely by anyone passing through the hex. Even the first time they explore the hex, players can always choose which exit they use to leave the passages.
 
It is almost impossible to get lost in a passage hex. Difficult passages have narrow walls, long winding stretches, sharp turns, weird angles, and other features that slow down movement, but, they do not present a navigational hazard. Like caverns, they can be considered fully explored after a single crossing, and unlike mazes, they carry almost no risk of losing one's way (unless the party fumbles their exploration.)
 
Maze hexes
Movement point cost: Mazes cost 5 to explore, 2.5 to cross. Some mazes are especially difficult to navigate. These cost 10 to explore, 5 to cross. Because of the risk of getting lost, and the need to fully map a maze before it can be considered explored, difficult mazes are a nightmare for adventuring parties. Difficult mazes are relatively rare.
 
Time cost: Mazes take 2 hours to explore, 1 hour to cross. Difficult mazes take 4 hours to explore, 2 hours to cross.
 
Maze hexes are filled with halls and corridors laid out to confuse and misdirect the traveler. Maze hexes contain 1d8-4 significant structures and 1d4 exits in addition to the entrance the characters used. Structures in a maze are always associated with an exit. If there are more structures than visible exits (including the characters' original entrance), then the extra structures contain secret exits. The only way to find a central structure in a maze (at least initially) is to get lost.
 
Exploring mazes: Mazes take much longer to explore than normal passage hexes. They are designed to thwart navigation and make stymie mapmakers. Fully exploring a maze requires multiple passes through the structure. The characters must leave a maze by each of its exits in order to fully map the maze. Since all maze hexes contain an original entrance and at least one exit, it always takes at least two trips through the maze to fully map it. Getting lost in the maze does not count toward meeting the exploration requirements. (I know, I know, in real life, getting lost in a place a few times really does eventually make it easier to find your way around. Either dwarven mazes are too confusing for that to work, or if the ref is feeling generous, getting lost means that you roll +1d the next time you try to explore it.)
 
Until a maze is fully mapped the characters can either choose to travel a known route or leave via a random exit. Traveling a known route doesn't let you go any faster, count toward your exploration requirements, or run any less risk of getting lost, but it does let you pick which exit you use to leave the hex. Leaving via a random exit maps one route, putting you one trip closer to mastering the maze, and requires rolling 1d5, 1d4, 1d3, or 1d2 to determine which exit (including the original entrance) you use to leave the hex. For obvious reasons, when there's only one unmapped route left, you don't have to roll the dice, you just go the only way you haven't gone before. Once a maze is fully mapped, you can pretty much treat it like passages.
 
Getting lost in a maze: Mazes are designed to make you lost, so this is a fairly regular occurrence. Getting lost doesn't count toward your mapping totals. Typically, getting lost either means ending up back in the hex you started from before you entered the maze. Less commonly, you might end up stuck in the maze, or if you're lucky, you might find yourself outside a random exit. The other thing that might happen, if you're lucky, is you might discover a lost wonder of the dwarven underworld. (This can happen in passages too, but since getting lost there is rarer, so is finding forgotten wonders.) Lost wonders are cool, long-forgotten structures and treasures that you can only find by getting lost. There are two ways to handle this. One way would be to have a special encounter table for lost characters, and to include finding a lost wonder as a possible encounter. The other way would be to use a Luck check to resolve what happens when you get lost, and make finding a lost wonder the best possible result of the Luck check.
 
Exploring the dwarven underworld: When the characters traverse a hex from their entrance to one of the exits, this generally counts as exploring the hex. (It's possible to fumble this in a passage, and mazes of course require multiple trips through to fully explore.) After they've explored the hex, characters can simply cross it thereafter.
 
The lead character in the party's marching order makes the exploration check. In passages and mazes, this is the roll that determines if you get lost or not. Other consequences TBD. If a character scouted ahead and reported back, and that character then leads the party through the hex, that hex can be considered already-explored. (Something like this also applies for return trips to the undercity bringing along new characters.) Probably rolling the exploration check involves rolling d10 if you're untrained, d20 if you're trained due to your occupation or class. (Since it's a dwarven undercity, I would imagine that all dwarves are considered trained.)
 
I'm not sure if you should have to roll an exploration check if you're just crossing the hex. If you do, you should either get to make the roll using larger dice, or have a friendlier table to roll on. I guess it depends on whether the exploration check is just to see if you get lost, or if it also functions as the wandering monster check. That might be good, because the person you want to help you avoid getting lost isn't necessarily the person you want in front if you need to sneak past a sleeping monster, or negotiate with a dwarven guard patrol, or lead the charge in a fight. (It could be the same person, but it's not guaranteed.) The exploration check should be a separate roll however, from any rolls that are used to procedurally generate the contents of the hex. (Your exploration roll shouldn't determine if the next hex you move into is a cavern or a maze, for example.)
 
Structures
Depending on the hex type, a hex may contain one or more significant structures. (Or it could be empty, although I guess the numbers I given so far make it impossible for anything but mazes to be structure-free. Hmm...) The terrain type determines both the number and the type of structures. Depending on the type of hex, structures could be things like dwarven mine-works, small caves, monster lairs, burial sites, temples/shrines, residential buildings, barracks, workshops, vaults. Presumably important public buildings are mostly located in caverns, whereas mazes mostly contain things that they want to protect or hide (like graves and vaults, maybe) or things that appear as the result of neglect (like shantytowns and monster lairs). Also, I'm calling these "significant structures" because you could imagine in-significant structures being part of the set dressing in passages or caverns. (You could walk past a row of dwarven office-worker cubicles that contain no personal effects, or there could be a block of spartan dwarven apartments that you have no need to enter or search.) This is the content that you're filling the the undercity with.
 
Significant structures should be like minidungeons. Ideally, it should take considerably less than a single game session to explore one structure. You might have some of these pre-keyed and waiting to be used, others could be procedurally-generated right there at the table, as long as the procedures are fast enough. Dwarven mine-works, for example, might be 1-6 rooms, with the room-types weighted toward long passages leading away from the entry. Dwarven buildings could have a handful of stock blueprints, which are then filled up using random tables. Characters should be able to explore multiple structures as a routine part of almost every session. Hexes that contain special/unique locations could contain large buildings that take one or more sessions to explore.

Secret doors
There are a few ways to get secret doors. In a maze, if there are more exits than structures, then some of the exits are hidden. Also, you may have noticed that I'm suggesting that each hex have between 2-5 ways in and out. There are no true dead-ends using the procedures I've laid out, but there are also no hexes without any barriers between them and the others. These barriers lead to secret doors in two ways. One way is, you go into a hex and roll for the number of exits. The number you get is larger than the number of unblocked sides (or, when you're randomly determining which sides have exits, you get a side that's blocked.) Voila, that exit is hidden. Also, there are going to be some hexes, or even some small areas that seem to be fully blocked off from the rest of the undercity. For each hex or area like that, random procedure decides if it's truly solid rock, or open but only accessible from a higher or lower level, or open but only accessible by secret door, or open but accessible both by secret door and stairs from above or below.
 
By the way, what happens if you know from its surroundings that a hex has more exits than you just rolled when you finally entered it? That means something has happened to make one of those exits unusable for now, and you're either going to have to quest for it or negotiate with a faction to get that connector fixed.
 
Dwarven factions
I don't know what my friend's plans are, but I do want to point out that the OSR has created a plethora of usable dwarf-types. Chris Kutalik of Hill Cantons and Slumbering Ursine Dunes has given us robo-dwarves and caveman dwarves. Jason Sholtis of Dungeon Dozen and Operation Unfathomable has written gray dwarves, blue dwarves, and bat-winged dwarves. This is to say nothing of all the dwarven subtypes that Wizards and Paizo have published. Thanks to the Open Gaming License, those (or some re-written version of them) are all available for any dwarf-themed project.
 
 
 
Okay, I think that's enough brainstorming for now. With this framework, and some minor tweaking, one has the beginnings of the procedures necessary to start creating a dwarven city megadungeon for DCC characters to explore. You'd need to start with a blank hexmap that has the outline of the first level of the city. The terrain types here give you the start of a procedure to fill in the hexes as the characters explore, and the times and movement rates lay out how much they can explore per day. (You'd still need tables to decide "what's in this cavern?" and "which significant structures are in these passages?", etc, but this is a start.)
 
Camping and staying overnight in dwarven houses is pretty much mandatory after the first few forays, although intelligent use of horses and scouts could let the players focus on in-and-out play for awhile before they start going deeper. The use of passages should keep the whole place feeling more like a dungeon and less like some gigantic open space, without the same slowdown that mazes create. The use of structures should also prevent it from feeling like you're always in abstract space, while keeping the structures mostly very small should prevent getting so caught up in exploring individual buildings that you have no time to move across the larger structure. I'm trying to thread a needle, basically, but I think these procedures should avoid several undesirable outcomes ("undesirable" for the goal of feeling like you're in a sprawling dwarven warren, anyway). Only playtesting will reveal if I got it right, or show up where the mistakes are and the fixes are needed.