by domtron » 19 Jun 2019, 03:02
Procedural generation is often used as a lazy way to build the world with less effort, but good PG can actually be harder then doing it by hand. The problem with PG in most games and what makes it boring is the lack of detail.
Lets compare the beginner programmer dungeon crawler, Minecraft, and Dwarf Fortress.
The beginner dungeon crawling roguelike generates the dungeon. The common algorithm picks a number of rooms, varies their size, and dumps it into the map then connects everything with corridors, and finally places start/exit and some monsters. It is kinda boring because you have very low detail. You have walls, ground, rooms, hallways, different sized rooms, and a few entities running around. Add in loot and it get more interesting because you have more to find.
(Side note: not bashing rougelikes here just using a simple implementation of one as an example of low detail PG.)
Minecraft expands on the detail. PG encompasses biome placement and size, terrain height details, twisty caves, decorations like grass and varying colors across biomes, some structures(they are premade for the most part, but placement is generated), loot, and enemies. Mechanics complement it since instead of passing through you take what is given and morph it into more. But it's boring in that there isn't all that much variety. Only a few mob types and they are not smart. The buildings are mostly premade and just PG placed. The few buildings that are PG don't have a real plan like nether fortresses where they run into themselves, suddenly end, and feel random in a bad way and very, very samey.
Dwarf Fortress is kinda the king of detailed PG for now. It generates not just terrain but history, items, and addon details of creatures. Things and people have history and personality, the very world does as well. Terrain is generated from a top down approach where things are placed in a way that makes sense. Mountains rise in the middle of land and the rivers flow from them to the seas. Settlements are placed in reasonable locations and connected in a fairly believable way. Generation of actual cities is a little rough but not worse then other examples to my knowledge. It would be even more interesting if it was visually varied as well.
Anyway my point is PG benefits from more details working from general wide sweeping ideas down to the little details. At least that's my idea on what's often wrong with procedural generation.
I also want to point out that procedural generation is not equal to random generation. Procedural generation uses randomness to an extent, but requires significant design (human intelligence) work to make sure parts come together as seamlessly as possible. Good PG will throw out randomness that doesn't match up to the bigger plan. Random is completely incoherent with the occasional happy pattern, procedural follows a big picture plan with variety choices provided by RNG.
Good Procedural generation in my opinion is layered generation. You generate general aspects and zones for the world, then layout features on the continents, then generate specific sections of the continent, and finally add in the first person details like that flower or that animal den.
That's my opinion/experience anyway.