Making Hidden Moves

Before lockdown started, I played a whole lot of board games. I would meet with friends numerous times a week to get my fix, visiting my local board game cafĂ© more often than I’d like to admit, and like most board gamers I enjoyed the process of learning a new game with pals.

Board gaming isn’t impossible during lockdown – we had quite a lot of success with some cleverly placed cameras in zoom calls, an absolute blast with The King’s Dilemma over Tabletop Simulator, and some incredibly tense Scythe battles in Scythe Digital; but something was still missing for me.

Treehouse Boardgame Cafe

As TableTop meetups were impossible, and I still had piles of board games amassing throughout lock-down that I wanted to dig into – when a copy of Escape From the Aliens in Outer Space arrived I decided to take a new approach, and create a digital version. The idea was to learn a skill, alongside learning a new board game in a totally different way.

For anyone unfamiliar with Escape from the Aliens in Outer Space (as I was until I purchased it during lockdown); it’s a hidden identity, secret location game published by Osprey Games. During the game, players must navigate a space station, with humans attempting to escape via escape pods – and aliens attempting to kill all the humans before they’re able to escape. As a print & play version was already available, the idea would be that this software would only have to handle the logistical side of the game that would be difficult to handle over zoom – namely the distribution of hidden roles and in-game items – and so I got to work.

As a Unity developer by day, I had already decided on which engine I’d be using for the project – and after a little bit of digging and asking around on Twitter I was pointed to Photon Unity Networking (PUN). PUN offers developers a free plan for up to 20 concurrent users, a whole bunch of data, and an API that handles all the boring stuff – perfect for rapid prototyping.

There’s a great Introduction to Multiplayer tutorial, written by Ray Wenderlich, and the PUN 2 Asset from the Unity Asset Store comes with some great examples of using Photon with Unity. If you’re a developer looking to quickly prototype an online game, it’s the perfect place to start.

The game in its original form
Connecting to a game using the mutilated example lobby.

After finishing tearing apart some examples to get a working lobby, and implementing a primitive solution for distributing roles – I started to get carried away. It turns out the very same principals used to achieve this initial task gave me the building blocks I needed to go ahead and digitise the whole game.

The player log in action

I quickly discovered there are a lot of small decisions involved in digitising a board game; especially when adapting a game with a large amount of hidden information. With EFTAIOS, it was important that players have enough data in order to make informed decisions about other player’s locations and roles – but not so much that the discussion, and thus the social deduction & player interaction element, is lost. This shouldn’t be a puzzle that players solve independently.

After a small amount of testing, I opted to add a player log to keep track of player movements and actions; which despite offering players the same information that they would receive in the tabletop versions, was provided in an easier to read format. A slight compromise on my original intentions – but giving all the players the same data-set to read from and discuss really helped the game continue to flow when playing remotely.

One of the other ways I attempted to keep the original flavour of the game, was to ensure player’s couldn’t deduce another player’s role by the number of mouse clicks they were doing. Despite the alien players having a greater range of movement, and the ability to attack – ensuring that you would have the same number of mouse clicks regardless of role was key from the start. 

Player movement and turn flow

Digitising board games also opens up a bunch of avenues that could enhance the overall experience. There’s still features I have planned for this little project; by utilising player data in interesting new ways. In particular, opening up the possibility for playing back a game timeline is super exciting, and would create a great visual aid for new players to understand the flow of the game – as well as an interesting conclusion for games with “close shave” situations.

This project took me a few weeks on and off – definitely longer than I had ever planned – but it was a super rewarding experience.

If you’re a board game obsessed programmer like me looking for a new hobby project I’d definitely recommend it.

More than anything, it’s a great way to get your friends to play your favourite game now that the zoom quizzes are starting to become a little bit tired.