Mechanic #094 - Collectible Dungeons - Overworld|
Legend of Zelda done with procedural generation and collectible cards, part 4. Tie it all together with a giant explorable world, filled with secrets and opportunities.
I've Got the Whole World...|
Okay, the player can build a town, explore a dungeon, and customize his initial experience. Time to tie all that together via the overworld.
The best way to think of the overworld is that it is one entity, broken into multiple smaller zones. Each zone features a single dungeon and usually represents a biome similar to the dungeon's theme (snowy zone harbors an ice fortress, bunch of islands in the ocean before a water dungeon, etc).
With generating the overworld, I wanted to go someplace a little different than I did with the dungeons. Already, you have the player collecting loot cards (avatars, equipment, items), town cards (towns, buildings, villagers), and dungeon cards (seeds, layouts, bosses, puzzle rooms, generic rooms, and monsters). If the game features tools like a hook-shot, we've got those too. We're dealing with a lot of different types of cards, and to bring a similar experience of overworld deck building would require just as many cards as a dungeon, with a separate set for each biome! We're talking at least a dozen sets with dozens, if not hundreds, of cards each, just to make the overworld.
At that point, the ability to collect and organize a deck for building an overworld becomes too unwieldy. Heck, dungeon rooms are already pushing it (side note: maybe just collect puzzle rooms; basic rooms built in/uncollectible). We'll want to re-use as many existing card types as we can (seeds, monsters, loot/equipment/items) and limit the number of new cards we introduce. Let's also not forget that the player will want to directly decide some features of the overworld (like how many dungeons there are and how large the landmass is).
Before nailing the formula, let's go through what the basic steps will be:
0. Determine initial parameters.
1. Select Dungeon Decks, order them, assign tools.
2. Build zone regions. Place dungeons.
3. Create terrain for zones. Includes barriers between zones.
4. Populate zones with secrets.
5. Populate zones with enemies.
At the very least, in the beginning, the generator will want to know a few simple things, like how many dungeons there are, are the zones small and dense or massive, and stuff like that. We COULD ask the player these things when he attempts to create a new game, but there could be many parameters that are worth tweaking and many which are not worth tweaking at all (what's the difference between twenty dungeons and twenty-one dungeons?).
So, what we do is create a sort of Overworld Avatar-like card which defines these parameters for us. Maybe you have Hellhole, which is a volcanic island that can have 4-6 zones (no ice zones), or Ringworld, which is a long, linear world that only moves to the right. Combining a bunch of parameters together into themes like this make for something worth collecting. Again, the purpose of the cards is less about overwhelming the player with options than it is to give them a few meaningful, distinct options.
The Overworld card is the only unique new card type that will be introduced, and you only need one. However, it is very powerful in that it has a great impact in how the world is created and used. The best way to think of it is that this card represents hundreds, if not thousands of invisible cards that define how the world is built. If you need to build a swamp, you'll need a bunch of details on swamp fauna, swamp enemies, special features, how swamps connect to deserts, and all sorts of details. This, and all the other biomes, are considered part of the Overworld card.
The reason you should think about these details as invisible cards is because you might have expansion sets that introduce new biomes, additions to old biomes, and new monsters. The world data that makes up that biome could be retroactively inserted into previous Word Cards without any effort. However, all these invisible cards that represent implementation details are really only important to the game designers. The Player will never dabble with things at this level. They do not create world cards. They just select them.
I should also point out that you can use a single Seed Card to control the randomization of the game world and parameters. This Seed Card will also be used to control Dungeon building, unless the dungeon specifically provides it own Seed.
Along with the World Card, there are a bunch of Dungeon Decks that represent the dungeons that will be found in the world. These are the Dungeon Decks that are previously built by the player (or by the challenge designer). They are NOT random. If you have a World that has 3-5 dungeons, the card will be accompanied by 3-5 Dungeon Decks - no more, no less.
The Dungeon decks are then randomly ordered in the order they will be tackled by the player (assume all random processes are controlled by the Seed). Then a tool is assigned to each Dungeon. For instance, the first Dungeon will get the Boomerang, the second the Bow and Arrow, the third has the Hook-Shot, etc. Tool selection is random, though weighted such that you won't get a tool that is too powerful too early or get the Silver Bow and Arrow before the regular one.
(Concerning tool puzzle rooms in the dungeons. It is too much trouble to build decks with cards for each potential tool the dungeon could contain. Instead, there are pre-set tool puzzle rooms which will be added to each dungeon's pool during this phase - but with the preference still leaning heavily toward player supplied puzzle room cards. The tool puzzle room cards will be added according to which tools will be available in each dungeon, so the third dungeon will have potential puzzles involving tools from the first two dungeons for the first half, and the third tool for the second half).
To sum up, the entire definition of an overworld is the World Card, a Seed (optional), and a non-random selection of Dungeon Decks. In "Infinite Mode", which is just a fancy way of saying use every damn card possible to create purely random games, a World card will be selected at random, no Seed is used, and Dungeon Decks will be randomly created using every Dungeon card in the game.
Now that we know the order of the dungeons and what biomes they require, build the world map using a process similar to [#054 - PGC World]. The process is essentially, create a branching tree of zones, then plot that tree on the map. Grow each node until it can grow no more, and keep track of the borders between each zone. Finally, place a dungeon somewhere in each zone.
3. Create Terrain and Borders|
Once you have that, you can create appropriate borders between zones quite easily. For instance, going from zone 2 to zone 3 will require the tool gained from the zone 2, while going backwards at all, like from zone 6 to zone 1, will use the latest tool available (effectively making it a one way door).
The terrain, though essentially room-based, is created in each zone as a whole - though care will be taken on room borders so you don't have a block on one side of a border and not on the other. You can use whatever terrain generation techniques you want here, from carving out terrain to simply plotting terrain features. If I were doing it, I'd probably build the borders first, then fill the inside of each room with terrain features like rocks and trees and stuff.
One of the defining features of the Zelda games is that you can use tools to uncover secrets. This is simply done by selecting a room, then selecting a secret type based on the terrain. If the terrain has a bunch of tomb stones, for instance, one of them could be made push-able with a staircase leading down the cavern. In a room with lots of trees, one tree could be cut down with an axe and you find a cave. Rock walls? Bomb it. Unlike the borders, no regard for when tools become available needs to be taken. In fact, it makes it more interesting to see a bombed wall three zones before you get bombs.
Creating the secret rooms and whatever could be done with cards or done randomly or whatever. It's one of those invisible implementation details that the player doesn't care about.
Finally, you have enemies. Unlike dungeons, which grabs its enemies from cards, the World card provides its own set of invisible cards to represent encounters for each biome. Rather than populating each room with a set number of random enemies, the world instead operates on an encounter-based system.
For instance, one encounter might be six hobgoblins huddled around a fire in the middle of the forest. Another might be five angry fireflies in the dusky forest. Rather than enemies being separate, they come in preset groups.
Essentially, I want dungeons to be these very deliberate, controlled experiences of locked doors in a specific order, while the overworld I want to be a wide open place filled with landmarks. Once you have opened a zone, you are free to explore it as you'd like without any arrows pointing the way or punishment for going the wrong way first. In fact, some World Cards may define worlds which are non-linear and without tools, allowing you to explore everything from the start and tackle the dungeons in any order (save the final dungeon, of course).