Hi, I'm Henry. In 2012 I quit my job as a programmer at BioWare to spend a year making my own indie games. This blog is about what happened next...

Like Spaceteam? Want to support my work?
Join the Spaceteam Admiral's Club!

Blabyrinth is not my only baby

Blabyrinth Progress

This post was slightly delayed for reasons which will become clear at the end :)

I've been working towards a "vertical slice" of Blabyrinth, which is supposed to cover a cross section of every component of the game to make sure all the systems work together well and nothing needs to be redesigned.

Part of this is what I call the "Overworld" which is actually just a fancy term for the pre-game menu screens. I'm designing the pre-game screens to be similar to rooms in the game that you can move between and interact with, to introduce the player to the kinds of interactions they'll need for the game proper. The Overworld contains "rooms" like:

  • The Clearing, where the game begins (the one-sentence back-story for Blabyrinth is that you've followed a mysterious map deep into the forest/jungle and have finally reached the spot where the entrance to the labyrinth is rumored to be hidden)
  • The Tavern. Equivalent to the Waiting Room in Spaceteam. A gathering place where you join other players before starting a session.
  • The Vault. A place to collect and store treasures from previous sessions.
  • The Gift Shop. This is where I'll offer a few in-app purchases for players to support me in the traditional way. The game will still be free but, like Spaceteam, if people want to give me money (and aren't comfortable with a monthly Patreon pledge) then I'd like to reward them with some extra features. I'm toying with the idea of only letting you buy things for other players. Not sure if that will work.
  • ...and who knows, maybe the Overworld will contain secrets of its own!

Once your team is assembled in the tavern and ready to embark on their adventure, you'll raise your glasses in a toast, and a custom level will be generated, tailored to your group.

The Level Generator creates a labyrinth of interconnected rooms and passageways, an exit to the surface, and a series of secret sections hidden behind locked doors and other obstacles. Sometimes secret sections are only accessible through other secret sections so the generator has to keep track of dependencies so that a key doesn't get stuck behind its own locked door, for example.

Some sample layouts with sections colour-coded:

The level then gets populated with puzzles, items, and scenery. The biggest puzzles are the Treasure puzzle and the Exit puzzle. These always involve hidden passages and rituals where all players must work together. These puzzles need clues, which will physically manifest on scraps of paper, or be engraved on scenery or walls. Other items may also be involved: a key, a mysterious carved shape, a sacred candle, a glowing gemstone. These clues and items can themselves be locked behind obstacles with puzzles, and this process cascades until the whole level is built!

Each level is generated using a unique random seed, which is like a signature that can be used to generate the same level again. This is super useful for my own debugging, but also if someone discovers a particularly interesting or quirky level among the millions of combinations they can share the seed with others. This is one of the things I love about procedural generation. It creates this huge possibility space of content that I can explore without knowing exactly what will show up. It's easy to stay interested in your own games when you never know quite what you'll encounter.

At each step, the Level Generator works in concert with the Clue Generator, the Ritual Generator, and others to pick from an ever-growing selection of possibilities:

  • Locks can be opened with: keys, keypads, combination-style locks, levers and pressure plates, hidden triggers like false books or wall sconces, complex rituals, and more.
  • A key can be a literal key or a key-like object. eg. the perennial classic: gemstone in a statue's empty eyesocket!
  • Rituals can involve items, scenery, locations, and player actions performed simultaneously or in sequence.
  • Clues can refer to items and scenery by name, or by other properties like colour or an identifying mark.
  • Clues can be split up using various techniques, sometimes giving players a mini-puzzle to find the correct ordering.
  • Clues and codes can use letters, numbers, runes, shapes, or any number of other symbols. Once again I'm using graphics from the Noun Project, which is an awesome repository of icons and symbols covering thousands of concepts.
  • Clues can be encrypted into a different "alphabet" of symbols, requiring a legend in order to make sense of it.
  • If a clue needs to specify a location in the level it can use directions, landmarks, or diagrams to lead you there.

A keyword clue split into parts:

A keyword clue split into parts

Another split clue (I wonder what it says??):

Another split clue (I wonder what it says??)

A random assortment of other (out-of-context) clues:

When the vertical slice is finished, I'll start to flesh out the choices at each generation step and my plan is to continue adding new possibilities even after the game ships, making the levels richer and more varied with each update.

Also... I have a baby now :)

Nori Juniper Alethea Smith was born on June 11th at 4:20am. She came so quickly that the doctors almost didn't make it into the delivery room! But everything went well and she's healthy and strong and squirmy. Sara's also recovering well but we're still catching up on sleep. I've been off work for a bit to take care of the family but since I work from home I should be able to ease back in to working a few hours a day and then get a more regular routine going.

Thanks for joining me on this adventure!

~ Henry