I mentioned in my last post how Ian and I would often talk about game design. I want to tell you about one particular game that we actually produced (albeit to a very limited audience). In order to understand the game, I have to tell you about the set of circumstances that led to its inception.
I was working on a home-automation project for my Raspberry Pi and I wanted to buy a touch screen. I ordered one and anxiously awaited its arrival. When it came, I realized that I’d accidentally gotten one that was more compatible with Arduino than the Pi.
Oops.
I didn’t even own an Arduino! I decided that I didn’t want my $50 to go to waste, so I tried to figure out what I could do with the screen. An Arduino is mostly just a microcontroller; it doesn’t run a full-fledged OS like the Pi does, and you can’t just plug in a USB Wi-Fi dongle if you want to get access to the Internet (yes, there are Wi-Fi shields, but those are sometimes more expensive than the Arduino itself). That meant I couldn’t mount it to a wall and expect it to display my agenda for the day.
I decided that if I was going to buy an Arduino, I didn’t want to buy even more components, especially since I was already distracting myself from my original project. That meant that I couldn’t do anything with motors, lights, the Internet, etc. Pretty limiting, right?
I decided that I might as well just attach the Arduino to my computer and come up with something for my coworkers to use while at work. This decision was also nice because it allowed me to augment the small memory capacity of the Arduino with the near-infinite memory of my computer.
After that, I bought an Arduino Uno and started designing the game with Ian. Here are the requirements we came up with:
- The game had to be something that people could play while passing by my desk or waiting for their coffee to finish brewing. This meant play-times should be limited to about a minute.
- The game should be as social as possible; we didn’t want the company to shut it down if it distracted people from work!
- The game couldn’t run at more than a couple of frames per second. The Arduino couldn’t handle full-screen refreshes even when just drawing lines.
- Finally, we wanted the game to be very easy to understand.
I’ll skip the details of our discussions and tell you about the final product. We made a game where you play as yourself in a virtual representation of our office. As you move, your coworkers (represented by AI) will randomly move too. If you bump into one of them, you get into a battle. We worked at a casino-game company, so I wanted to incorporate that theme into the game. We decided that “battling” is really just spinning a slot machine, and it looked like this. If you won enough battles, your level would go up, granting you a few random, permanent “+1″s to your slot reels. This meant that your slot machine would generate higher numbers in future battles. The way you beat the game was by taking down our vice president, whom I started at level 50. This is how we arrived at the name “Path to VP” for the game!
One other thing we did was limit the amount of time that someone could play the game. If you lost a battle, then you couldn’t play for 30 minutes. If you won a battle, you couldn’t play for 60 minutes. If you leveled up, you couldn’t play for 120 minutes. This way, you couldn’t sit there for 10 minutes straight and eventually topple the VP. It also evened the playing field out a bit.
Here’s a video during development of one play-through. Some notes: the touch screen was unreliable, and I got into a battle by using a debug feature.
There were small bits of strategy in who you would fight in order to maximize your playtime at work (e.g. “I’ll fight a lower-level person now so that I don’t level up, that way I can level up right before I leave at 5:30 since it will block me out for two hours!”), but it was mostly a luck-based game.
…and people loved it! The game ran for a month, and it had 75 people play it for a total of over 2000 times! The VP himself even played, and although he didn’t understand it, he supported it. I’d also like to mention that because he was level 50, he was essentially guaranteed to beat anyone he played against. I made the slightly devious decision of setting his experience points such that he was only one XP away from 51, that way he leveled up immediately after playing.
I decided to take the game down after the first three people beat the VP. The company ended up buying trophies for those people, which are still proudly on display on the winners’ desks.
The entire experience was a blast for me! About a week or two into the game, I made the game push notifications to the “Path to VP” channel in our chat program that we all used at work. It was fun watching the number of people increase in that chat room. The game merely posted something like “Adam Damiano (lv. 5, exp. 2) beat Ian Smith (lv. 6, exp. 4): 42 >= 30”. That alone led to more trash-talking than I would have expected!
That was the Path to VP era that lasted for about a month at my previous job. Nothing happened with the game after that, although people asked me least once a month if I was working on another game. It gave Ian and myself a chance to figure out interesting game-design problems due to all the technical limitations. It’s one of the reasons I wanted to post this; to give you an idea that we’ve at least had some experience working as a team before tackling a massive project like Bot Land.
By the way, here’s a quick snapshot of what I finally did with my home-automation project using the intended touch screen.
Sometimes getting side-tracked can be worthwhile. 🙂