In "Creating a Procedural City - The Roads Pt. I", we talked about how the initial procedural road system was designed. The original concept was to create a system that was relatively random, having roads that darted left and right in a random zig-zag pattern. This, although relatively visually interesting, didn't actually represent the look of a city.
I realized that to correctly create an environment that resembled the structure of a city in the amount of development time we had, I needed to pull back my scope. I focused on creating a relatively boxed in version of a city, where the player was limited by where they could go by buildings that sprawled up around them, while the roads were generated in a grid format.
This sort of generation system allowed for the correct "organized" format of a city with random aspects, such as block length or filler content like buildings and houses (our Art Director Naomi actually talks these houses in one of her blogs). The toughest aspect was connecting separate blocks together, but with some trial and error, I was able to get everything to work correctly!
The key was essentially scope, like it is with many games in general. Knowing your limits and time constraints as a designer, artist, or programmer is critically important, as it is in any field. Sometimes you are limited, but you can always figure out a way to compromise! In this case, the compromise seems like much less of a compromise and much more like a successful implementation. Below you can see the current state of our procedural generation system from a developer's point of view!
- Alexander "Hawkins" Croom