A small write up about the Spacehack game
So, the story started way back in about October or November 2013. Nathan, a member of York Hackspace, was talking to the group about how the company he worked for were looking to sponsor a project at York Hackspace. Some crazy ideas were thrown around and everybody um'd and argh'd about what we could do. We wanted something fairly big that would be easy to do and be an awesome thing to take to a Makerfaire. More specifically, Makerfaire Newcastle 2014.
We had all been playing the mobile phone game Spaceteam because Nathan showed us it. It is awesome. So eventually, Bob (The guy sitting in the picture above, I'm the other guy) suggested that we could make a physical version of Spaceteam. We didn't call it Spacehack at this point, we didn't actually have a name until much later. Nevertheless, the seed was planted and the idea unfolded more and more and we quickly agreed yes "Yes! Let's make this happen!".
Before we could start to implement our ideas, we had lengthy discussions about what hardware to use, how things would talk and what they might look like. This took a little time as it was important to get it right.
In the end, we decided that what we needed was a central server box with a Raspberry Pi and four consoles, each one with a Beaglebone Black. The justification was that it would be very easy to connect all of these together with an ethernet switch and a bunch of patch cables, the BBB had plenty of IO for the controlers. We decided at this point to use MQTT for making everything talk. MQTT is ideal for this kind of thing. This lead to the decision to use python for all of the programming. Bob was to do most of the programming, he hadn't used python before and I've always avoided it as I don't like it much (We'll save the reasons for another day). Nobody else was quite a python expert and so this was a learning experience for everyone involved.
Things moved slow after this. A proof of concept appeared, you can see a video of that on YouTube here (Video shown below). Then everything was a little slow motion. Everybody started to buy parts and build little sections of things that might be useful. This included the "Warp vortex" that appeared on top of the server box, that's in the second video.
We were starting to approach a deadline for signing up as makers for the Newcastle Makerfaire. The Makerfaire was the reason we wanted to do this and so we had to get things done quick. We noticed that we needed to get something we could photograph quickly. I had started to design the front of a console to be laser cut. We had decided that laser cutting was the easiest way to make the panels. None of us had really done laser cutting designs before and so this was also a new experience. The plan was to have a laser cut plywood layer that would be the base that most of the components and LCDs would be mounted on, then have a printed sheet that would provide any imagery we wanted on the panels and then have a protective acrylic layer on top of this to clamp the print layer down and protect the screens a little. We were discussing the design on our mailing list and were wondering how we were going to get the laser cutting done. We were dreading sending files off to a laser cutting service as we had never done this and didn't want to spend lots of money getting it wrong multiple times. Fortunately for us, local-ish maker Rob "Mowcius" was listening in to our worries on the mailing list. He offered to do the laser cutting we needed at cost price with the huge fancy laser cutter he had in his bedroom. We jumped at the chance and sent him the first designs, he pointed out what might not work and helped us to fix some issues before making a splendid job of our first console.
It was getting close to the deadline by the time this was done and so we quickly assembled console 1 and had it looking good. John from the hackspace then built a box for it to sit in and that was console 1 looking done (but not actually done... yet). There was less than two weeks to go before the sign up deadline and we still had no photograph. We wanted at least two consoles in the photo and so we had to quickly whip up another design and run it by Rob. After a little back and forth we had a second console and a box. We spent the week before the deadline, even the day before the deadline, getting these two consoles into something that we could present in a photograph. A box was thrown together for containing the server. Bob had suggested having huge foil ducting connecting the consoles to the server, it was a good suggestion as it looked fantastic. On the day before sign up closed, we took this photo of Spacehack with no reliable working electronics inside it yet and sent it in with our pitch...
The LCDs on the top were mounted in some 3D printed boxes that were designed by Nick from the Hackspace. John printed them just in time for this photo. They work really well (although they need some tweaks), there is a mechanism inside that allows the screens to rotate and be held at set angles with fairly satisfying clicks between them.
You can see most of the mad dash to get the thing done on a video here, shown below too.
So after that we all breathed a sigh of relief. We shouldn't have done that really because we didn't have much time to get the rest done. It was at this point that we kind of gave up on the idea of being sponsored by Nathan's employer as we had funded everything ourselves without any issue and had the advantage of only having the York Hackspace name on it. The enthusaism for sponsoring seemed to just fade away.
So now it was mostly a race to get the hardware complete, two more consoles assembled and the software working. The software at this point was looking fairly good from the client side of things. Although it still needed lots of work, there was enough to test the hardware. It was at this point I took over wiring console 2. Bob had done most of the wiring until this point and had most of it on a really small breadboard. Some things were still not wired up and so I spent a few hours at home getting that sorted. During this time, I broke two Beaglebone Blacks by doing silly things with the wiring in console 2. I think we only had one BBB left at this point and so we needed some more. This first looked like disaster as there was a mass shortage of BBBs in the world at the time. The supply of BBBs was so bad that Element 14 was working on their own clone. We started contacting other hackspaces and asking anybody we could if they had any to sell. We thought the project might be almost ruined. The timing actually worked in our favour however. As soon as Element 14 were doing their own BBB clone, several members, including me, bought lots of them. We ended up with an abundance of BBBs. Shortly after this there was another shortage of BBBs as Element 14 ran out of stock really quickly from their first batch. We couldn't believe our luck.
At about this point, we were unable to make use of our friend Rob's laser cutter as he was moving house and so it was out of action for a while. The last two consoles came from RazorLAB. This was not such a pain as we were familiar with laser cutting by this point. They arrived and were assembled with little time to spare. I got console 3 going fairly quickly and then it was mostly just software. Bob had been continuously working on the server software as the Makefaire weekend approached. I was working on the client software having finally bitten the bullet and decided to learn to use python.
Time was getting scarce and the consoles still weren't fully operational. We had to organise lots of 'extra meetings' at peoples houses to get the thing into a working state. Eventually it worked. We somehow even found the time with days to go, to add in a life counter in the form a huge seven segment display and an LED sign that I had built that would flash red when you were near death. It came out quite well and I'd like to do another and perhaps post details here.
We had a working game on a workbench in my loft only on the Wednesday before Makerfaire weekend. It was quite a relief but it was still lacking the LCD top boxes. John was frantically printing more boxes with days to spare so that we could fit them to the consoles.
Along came the Friday before the Makerfaire and it was time to travel up there.
It turned out there wasn't time to fit the LCD boxes before the this Friday and so instead, John brought with him a drill and some drill bits and all of the plastic parts for the boxes. We had some time to set things up that afternoon and so the day was spent adding in LCD boxes, figuring out some last minute problems and even adding code changes. We still had some stuff to do on the Saturday morning before the visitors arrived. The big instruction LCDs we were fiddling with earlier were playing up. I'd like to blame this on John :-D but through lack of evidence, it is unclear why the LCD connector was entirely backwards. HD44780 LCDs appear to work slightly even if the whole connector is the wrong way around. Then, with less than five minutes to go until the public were allowed in to the life centre to enjoy the Makerfaire, we had a sudden catastrophic failure of console 3. We had three consoles working and then we were down to two. Having only just finished getting the LCDs to work we frantically rebooted console 3 (which involved opening it up, removing a BBB cape, disconnecting power, reconnecting it, waiting for it to boot and then replacing the cape live) and then we were back up to three consoles just as the first visitor appeared through the door. This was the first time we were able to play a real game of Spacehack as this was the first time it had been working fully and we had a chance to give it a go. Luck was on our side and it worked.
We got going fairly quick with visitors wanting to know "What's all this about then?". We noticed that with three consoles going at once, it was difficult to get a game going with people shouting loud enough over the general noise to make the game work properly. Then problems started to occur with console 3 and so we switched it off after a little while and just went with the consoles 1 and 2 which were much closer together. After this, people started to understand the game and get the hang of it. They were enjoying it. Sometimes they even brought friends back around to show them and to have another go.
The rest of the weekend continued much the same, people were playing the game, having a laugh and enjoying themselves.
We were fortunate enough to be at a stand just across the room from Mitch Altman and Jimmie P Rodgers who were doing their 'Learn to solder' workshop. At the end of the Saturday we invited them over to have a go. There's a video of that too! right here, also below.
We couldn't possibly have cut this closer to the wire. Our application was done just in time and the consoles still had issues up until, but not beyond, the point where the doors opened to the public. A tremendous amount of effort went in to getting this to the Makerfaire. Each of us did as much as we could and went above and beyond to make sure it looked and worked [almost] perfectly. Many of the public had a go and wandered on by without even considering how much this project took out of everyone involved. I guess this proves we did it well. If anything, to have all four consoles going as we had planned would have been a disaster. Two players was perfect in that sort of environment. Any more and it falls apart.
I say thankyou to all the guys at York Hackspace [You should too ;-) ]. It was really good fun to build and to demonstrate.
If you want to see more pictures or get more info about the build, there is a site for it, spacehack.york.hackspace.org.uk
Everything is open source, look at that site to find the code.
You may see updates here later and some more detail about parts of the build.