I managed to carve a good chunk of time working on city generation over the 4-day Thanksgiving, but I wish I were done. My core accomplishments was in creating single-wide alleys, more crafted patches for both 2-lane and alley roads, and most importantly: Allowing patches to be rotated when placed.
This allows me to create more variety, not just because things look different when rotated, but also because I can spend my time on crafting unique areas without having the create four direction rotations of them. It’s getting there…
The biggest problems beyond variety is playability. The most interesting maps should have some interesting tactical spaces, and more importantly enough loops that give the players a better sense of exploration as well as not punishing them as much for getting some speed going (which dead ends can completely wreck). Typical Roguelikes (Dungeonmans included) introduce at least a few loops so that exploring the map doesn’t force endless backtracking.
A whole bunch more work is needed, including:
- Make additional large patches with interesting tactical features such as open areas, wide runways and so on. This will help keep the game from just being a bunch of corridors.
Create an evenlarger 4-lane road type and seed the map with a couple of large roads. This should present some neat places to build up some speed.
- Checking patches before they are laid down to make sure that they are not blocking off an adjacent road (this leads to a series of roads that lead to nowhere).
- When the map has been expanded as far as it can be (usually a set value, such as 1000 attempts at placing a patch), make sure that all the “unexplored” road tiles are capped with dead ends or are connected up to their neighbors. (Again, this avoids road connections that terminate abruptly.
- Add some “overlay” rules and tagging that allows for “optional” entrances into a block. This way if I try to lay down a block next to another block, I can more easily “bust a hole” between the blocks as needed. This will be huge for generating loops.
- Create a few rules to evaluate a “good” map, including if there is enough space to explore and that there are areas suitably deep in the city where boss areas can be placed… and if those criteria are not met, throw the whole map out and start over.
I basically need to take this as far as needed until it’s fun, and then step away from it and worry about making it perfect later. Something like this could take all of my time for many months if I let it. Over time I’ll try to add new models, streetlights, textures, buildings and so on, but I need to work towards something I can play again.
Once the map generates well (hopefully in another week), I’ll need to properly populate it with encounters, and create a boss area fairly far from the entrance that players need to play towards. Once I’ve got that I’ll be back to having a game loop and can push to sharing a build out. That’s something I really want to get done before the holidays.