Inspiration

There's more to engineering than algorithms and logic gates. Communication, trust, and patience are crucial to solving problems in high pressure situations. SpaceHacks takes place in a spacecraft in need of repair for one of its faulty life support circuit boards. In order to find a suitable replacement board, the ships' Lead Engineer must relay information about the configurations back to a teammate at Mission Control, who will return analysis from their trusty (though convoluted) repair manual.

SpaceHacks takes inspiration from the phenomenal game Keep Talking and Nobody Explodes, so we can have a collaborative logic game on a subject other than bombs.

How we built it

SpaceHacks is built on top of Blend4Web (B4W), Blender's Web SDK. Blender provides the environment for the game, including screens for displaying challenges. B4W displays the screens in the space ship and communicates what buttons the user has pushed, but the challenges are contained inside web applications separate from the Blender game, allowing for highly modular development of new challenges!

We created a MissionLink system using Firebase that allows all applications connected to a game to communicate to each other in real-time and even for spectators to be invited to watch a game without disrupting it. Each game is given a unique ID that pieces all the different services together and allows it to run independently of other instances of the game.

We integrated Messenger on our home page to let users easily share these long links with their friends and dive right into game play.

What we learned

We spent a lot of time exploring the B4W source, trying to resolve an error where users could not click on objects while playing in VR mode. A fellow programmer in Russia appeared to have experienced a similar problem, but we couldn't translate the forum to find out what happened to them... leading to a strong emotion best explained by XKCD:

XKCD Comic

We opened an issue for B4W, but in the meantime, built another web page with separate controls that users could use while playing in VR mode.

Share this project:

Updates