Procedural Castle plans

Yesterday I learned about an ongoing challenge to create procedurally generated castles, over the procedural generation reddit. I’m a bit too late to the party but I thought I’d get in anyways.

I basically intend to generate topdown 2D multi level castles, similar to these found in Ultima 5 (the best game of the Ultima series).

Empath Abbey

So I went back to check the maps from the game in order to dissect their structure. You can find them here (don’t know for how long, doesn’t look like a stable location). I’m not sure who made this site, but it’s very nice 🙂

In Ultima V, the best game of the Ultima Series, most of the cities are walled and the castles and keeps have been improved greatly from Ultima IV. This is my structure breakdown, where I included elements from castles, keeps and even some walled towns:

  • Overall structure
    • 32×32 tiles
    • A wall covers all 4 sides
    • Castles are a compact structure, there’s no outer and inner wall.
    • Overall castle structure is symmetrical by the y-axis
    • There may be a moat surrounding the castle
    • Most castles have a central structure, be it a courtyard or a hall
  • Stories
    • Castles have up to 4 floors plus a basement
    • The bulk of the castle resides on the basement plus the first 2 floors
    • Floor 3 is used for the tower top of the towers and optionally the ceiling passageways connecting each
      • In some castles this structure is bigger, having most of the castle ceiling as a walkable surface instead of roof.
      • Some other castles have floor 3 as a big structure similar to floor 2, in which cases roofed walls won’t show with crenellations
    • Some central features such as a big tower can cover floor 3 and 4.
    • From high floors you can see the roof of lower floors, or the lower floor itself if there’s no roof.
    • Outer walls in floors 3 and 4 are shown with crenellations, they may also be decorated with statues
  • Towers
    • There are towers on each corner
    • Towers are connected either by covered corridors, halls or walkable wall borders. They may be connected by any of the stories they cover
    • Sometimes all 4 towers are connected, other times it’s only two (keeping the symmetry of the plans)
    • Towers are multi stories (often 3 stories) and have small cross shaped windows looking out.
    • Atop the towers there may be cannons and cannon balls.
    • Towers have stairs allowing climbing to the different levels.
  • Smaller Keep
    • Some smaller keeps may be just the four towers, the rooms below them, the halls or corridors connecting them and a central feature. They may be 1 or 2 stories.
  • Entrances
    • All castles have an entrance on the south side, some of them have an additional one on the north side.
    • The main castle entrance may be protected from the upper floors with cannons.
    • Entrances are located in the middle of the map and may have floor or grass.
    • There may be a drawbridge over a moat in the entrance.
    • Some castles have an entrance hall connecting to the central feature, in that case there may be defensive cross windows on it.
    • There may be lamps lighting the entrance
  • Courtyards:
    • A fountain or a well in the middle.
    • May have more nearby fountains in x, y or complete symmetry.
    • May have a small lake around the fountain
    • Grass with trees
    • There may be floor connecting with close rooms, or a dirt walkway around it.
    • Commonly produce a “hole” in upper levels
  • Main Halls
    • They have floor, most of times different than the used in the rest of the castle.
    • They may have a fountain the middle as well as a fireplace.
  • Rooms:
    • Staff’s Living quarters: With a lot of beds and lockers for the people’s things.
    • Guest rooms: Including one or two beds, mirror, sometimes even a piano and a fireplace.
    • Storage rooms: With lots of barrels and boxes. Commonly placed in the basement.
    • Forge: Contains an anvil and fuelled fire pit. Commonly placed in the basement.
    • Prison Cells: Divided in smaller locked barred rooms, mostly empty but may have things such as handcuffs and a watch station with a table and a chair.
    • Dungeon: Some castles have a full floor devoted to the dungeon, with lots of prison cells and torture devices.
    • Dining rooms: With different size and quality of dining tables and chairs, as well as lighting. Adornments such as fireplaces, chandeliers. Tables may or may not be served
    • Kitchens: Commonly close to the dining rooms, including stored food, tables, barrels of wine, ovens and cooking places.
    • Throne room: Long hallway with a carpet and a throne in the end. Hallway may have columns and torches on the sides. In addition to the throne, there may be additional chairs or magic instruments. They are always oriented to the north.
    • Castle Lord room: Most of times placed on a central location, it includes a bed, mirror, sometimes a piano, clock, bookshelf, fireplace.
    • Terraces:
      • Located on high places such as 3rd or 4th stories.
      • They may have a telescope and the flag of the castle.
      • May have a firepit and tiled floor.
    • Rooms may be connected with doors, open doorways or just open spaces.
  • Halls:
    • Long and wide rooms connecting rooms or towers
    • May have adornments such as torches, plants, columns and fountains.

Following with the same process I made for last year’s Ultima Underworld like generator, next step would be creating a high level castle layout generator based on this observed structure and given some generation parameters.

I am not sure I’ll be able to hit the deadline with all the scope, I’m aiming to complete the “first floor” generator.

By the way, these guys ran a competition last month to create a procedural pirate map generator. Check out the results!

qoVnH1z - Imgur

2 thoughts on “Procedural Castle plans

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s