Generator Walkthrough with EN World OGRE

The second part of a walk-through of creating a random generator for the O.G.R.E. system at EN World. This follows on from preparing an O.G.R.E. Generator, building up the Quick Dungeon generator step by step.

A Basic Dungeon

The script for the most basic version is

The {Morrus[Dungeon Name Generator]} is a dungeon with {1d20} rooms and {1d3} entrances.

which created

A basic working model that we can build on.

Design notes include:

A random number between 1 and 20 is created by the text "{1d20}" representing dice notation for a 20-sided die. The {1d3} gives a range between 1 and 3.

The text "{Morrus[Dungeon Name Generator]}" is a reference to the generator "Dungeon Name Generator" by the EN World user "Morrus". This inserts the result of that generator into our text, "The Unqualified Caverns of the Dead" in this case.

Adding More Tables

Time to add some of our own material, so we create our own table for Dungeon Type, as mentioned in part one.

The {Morrus[Dungeon Name Generator]} was originally a {PieAndDragon(Dungeon Type)}. It is a dungeon with {1d20} rooms and {1d3} entrances. The main entrance starts with a {leonardoraele(Random Dungeon - Starting Area)|nocaps}

Running this generator produced

So this is a bit more useful, returning information about the dungeon's original purpose was and what features the main entrance has. Design notes include

Tables are included in the same way as Generators. {leonardoraele(Random Dungeon - Starting Area)} refers to the table "Random Dungeon - Starting Area" by EN World user leonardorale.

The "|nocaps" part of the starting area table code means that only lower case letters are created for the text in that table.

I've referenced one of my own tables, Dungeon Type, which returns the text "Subterranean Cavern" in the example

Who's in the Dungeon?

Dungeons need inhabitants, so we add some details for this and increase the average number of rooms being created.

{Morrus[Dungeon Name Generator]} was originally a {PieAndDragon(Dungeon Type)|nocaps} and is inhabited by {PieAndDragon(Dungeon Inhabitants)|nocaps}. It is a dungeon with {1d20+1d6} rooms and {1d3} entrances. The main entrance is a {PieAndDragon(Dungeon Entrance)|nocaps} and starts with a {leonardoraele(Random Dungeon - Starting Area)|nocaps}

Results in

The first "The" was removed, as this was being duplicated from the Dungeon Name Generator. The formatting of other generators and tables needs to be taken into account when using them.

We added another of our own tables, with types of creature in the dungeon

The "|nocaps" filter was applied in several places, removing capital letters from all but the dungeon name

A second d6 added to the number of rooms, giving a number between 2 and 26, with more likelihood of being near the average of 14.

Why Are We Here?

With a usable dungeon we add some details about why the characters might be investigating the dungeon and a hint of history.

{$chanceOfNewerDungeonType:{1d100}} {Morrus[Dungeon Name Generator]} was originally a {PieAndDragon(Dungeon Type)|nocaps}{if: $chanceOfNewerDungeonType>50} and now a {PieAndDragon(Dungeon Type)|nocaps}{/if}. It is inhabited by {PieAndDragon(Dungeon Inhabitants)|nocaps}. It is a dungeon with {1d20+1d6} rooms and {1d3} entrances. The main entrance is {PieAndDragon(Dungeon Entrance)|nocaps} and starts with a {leonardoraele(Random Dungeon - Starting Area)|nocaps} Someone wants adventurers to enter the dungeon and {PieAndDragon(Dungeon Goal)}

Which generated

Here we...

added an if statement and the chanceOfNewDungeonType variable. This gives a 50% change that the dungeon has a more recent purpose. The chanceOfNewDungeonType variable is given a number between 1 and 100 and we test this in the if statement. We re-use our Dungeon Type table from within the if statement.

added a reason to enter the dungeon with a reference to another of our own tables. .

Removed extra "a" before dungeon entrance

A Simple Dungeon Generator

This is the finished version, with enough to run as the basis of an adventure.

{$chanceOfNewerDungeonType:{1d100}}{$dungeonEntrances:{1d3+1}} [B]{Morrus[Dungeon Name Generator]}[/B] was originally a [B]{PieAndDragon(Dungeon Type)|nocaps}[/B]{if: $chanceOfNewerDungeonType>50} and now a [B]{PieAndDragon(Dungeon Type)|nocaps}[/B]{/if}. It is inhabited by [B]{PieAndDragon(Dungeon Inhabitants)|nocaps}[/B]. It is a dungeon with [B]{1d20+1d6} rooms[/B] and [B]{$dungeonEntrances} entrances[/B]
[LIST]
[*]- Main entrance is [I]{PieAndDragon(Dungeon Entrance)|nocaps}[/I] which starts with starts with a [I]{leonardoraele(Random Dungeon - Starting Area)|nocaps}[/I] {loop:¨{$dungeonEntrances-1}}
[*]- Another entrance is [I]{PieAndDragon(Dungeon Entrance)|nocaps}[/I]{/loop}
[/LIST]
Someone wants adventurers to enter the dungeon and {PieAndDragon(Dungeon Goal)}

Resulted in the final dungeon of

The number of entrances was moved to a variable, dungeonEntrances, which is printed out later in the description.

The dungeon entrances are moved to a list, with the main entrance still appearing as before.

The additional entrances are created in a loop. The loop will repeat the text up to the number of additional entrances (dungeonEntrances -1)

The overall formatting was tidied up, with use of italics and bold text to highlight parts.

A Detailed Dungeon

A future generator will build on this one and create a more detailed dungeon.