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!

Full Production

Full Production

I took some time off to be with my new baby (pictures at the end) but now I'm back in full production on Blabyrinth. I'm so lucky to be able to work from home, and you're a big part of making that possible. So thank you!! I can work while mum and baby are asleep in the mornings and the evenings, and even though there are more interruptions during the day I've still been very productive.

The vertical slice is almost done and has revealed, as expected, several aspects of the design that needed rework or refactoring. But now I'm a lot more confident that all the systems will mesh well.

There was a lot of unsexy behind-the-scenes work so I'll regale you with a random assortment of tidbits:

  • Players can now be trapped, and then rescued by their teammates. This is just one way the game forces you to work together.

  • Photoshop's "Content-Aware Fill" has been really useful for removing symbols from placeholder art so I can add my own adornments dynamically. I'm working on a shader that will make the clue text or image look like it's engraved into the surface.

  • Related to this, I had to make a custom "Clue Region editor" so the game knows where to draw clues and identifying marks on scenery and items.

  • Having large libraries of scenery, items, and symbols means I have to do a lot of categorization/tagging so I can randomly pick an appropriate context-dependent thing.

    • Symbol tags are things like: simple, complex, linear, solid, connector, abstract, pictogram, animal, unambiguously-named, ...
    • Scenery tags are things like: can-stand-on, can-slide, can-be-ritually-touched, musical, engravable, landmark, can-see-contents, ...
  • It's important that players be able to return the treasure they find to the "overworld" when the game is done and store it in their personal collection. While building support for this I realized it was necessary to have two parallel worlds (only a technical distinction, not exposed to the player): one shared world when you're connected to other players, and one local world when disconnected. I have to perform some sleights of hand to keep these worlds consistent, and moving items between them is a bit tricky. But there's a special reason I need it to work this way and I think the payoff will be worth it :)

  • I'm experimenting with a simple "hands" UI for showing the item(s) you're carrying. Building good puzzles for two players involves splitting up clues differently from three or four players, so one of the ways I'm making things simpler is by letting you carry two items each in a 2-player game.

I'm still using temporary art (this asset has been great for prototyping and inspiration) but the game is getting to a point where I'd like to start looking for a real artist. If you know any 2D artists who might be interested in some contract work making lots of scenery and items for a top-down Indiana Jones-style treasure hunt escape room labyrinth, please send them my way! I'll post a full job description with details sometime soon.

Also the levels are very bare at the moment because I'm just including the essential elements needed for the core puzzles. The next step will be to generate each level with decoration, extra scenery, side-puzzles, meta-puzzles, a few custom handmade set pieces, and maybe some red herrings for good measure :)

Spaceteam news

I just updated Spaceteam to work better with iOS 11. If you were having Wifi connection issues on iOS 11 please try again with this update.

I'm working with Concordia to finalize the new versions of Spaceteam ESL and the French-language equivalent "Astronautes FLS". They should both be ready for launch in early November. I had a tricky time getting good French pronunciations for the phrases in Practice mode since I'm just using my Mac's built-in Text-to-Speech service. For reference to nobody but myself: I ended up using a combination of the Amelie, Aurelie, and Chantal voices to get it sounding right :)

The board game is back in stock almost everywhere (still working on cheaper shipping to Canada...). It's also starting to show up at some Barnes & Noble locations, so if you've been looking for it maybe you should check your local B&N store.

And finally, some pictures of Nori. She is now almost 4 months old!


Space out!

~ Henry

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

2.5 Launch & Livestream

Spaceteam 2.5

Spaceteam 2.5 has just been released on iOS and Android!

The big news is that Bluetooth is back, and there's a new connection mode called Internet that you can use if neither Wifi or Bluetooth are working for you. This should help you play Spaceteam wherever in the universe you find yourself.

Livestream and Tournament

In honour of the Buzztime launch, I'll be hosting a livestream event this Thursday where I'll be playing Spaceteam with friends, sharing tips, and chatting with the community (that's you!).

At the same time I'll be running a mini tournament that you can join from wherever you are by entering the Event Code in the Spaceteam app (I'll announce the Event Code on the day of the tournament). The game will record your scores to a special leaderboard and I'll be awarding prizes to the top teams.

Please join us on Thursday April 20th at 6pm EDT on my newly-minted Twitch channel here: https://www.twitch.tv/captainspaceteam

New Buzztime Skin

Buzztime has been working on a new skin to commemorate the event and they have two themes to choose from. Vote on which skin you want to see here: http://www.buzztime.com/spaceteam-fanvote

Version 2.5 will officially be the last major update to the Spaceteam app, as after next week I'll be spending most of my development time on Blabyrinth. Spaceteam will still get bug fixes and minor improvements, but no new features. It's had a fantastic run and there are still a few surprises in store elsewhere in the Spaceteam ecosystem.

Plus I'm always happy to add new languages as long as the community keeps volunteering to translate! Coming up next: Finnish, Serbian, and Esperanto.

I hope to see you online on Thursday.

Space out!

~ Henry (aka Captain Spaceteam)