Bot Land: Origins – Part I

I came up with the original Bot Land™ almost exactly five years ago, but it never saw the light of day. Neither did the subsequent iterations that took place over the years to follow. In this short post, I’ll share some details about the very first version of Bot Land that I ever made.

If I recall correctly, Adam-from-five-years-ago wanted to prototype a game that involved programming, but he didn’t actually want to think much about what that entailed. He opened up SciTE (this was before the days of Sublime) and hammered out 3,000 lines of Python into a single file. He was truly a visionary of terrible code.

I’ll let Adam-from-2015 tell you more about it here:

There are plenty of things that I want to explain about this video, but they won’t make sense until I cover the other iterations of Bot Land*. After that, I can finally tie all of them together in a post explaining how we arrived at our game design for the final Bot Land, that way you get to see the full evolution of the idea.

*Just a note: it will be at least a few weeks before we continue with Part II of this series.

Path to VP

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. 🙂

Icebreaker

In Toastmasters, the first speech you’re supposed to give is the Icebreaker. There are two primary purposes to this speech: to introduce yourself to your audience, and to help determine your strengths and weaknesses as a speaker. I’ve always enjoyed listening to Icebreakers because of the connection I feel with the speaker by the end of it. That’s why I’ll be starting this blog in the same way; I’ll tell you a bit about myself, the company, and what you can expect out of the blog.

My name is Adam Damiano, and I’m a software developer with a passion for games. When I was a kid, I remember getting a TI-83+ calculator and being delighted to find a simple programming language on it: TI-BASIC. I spent hours making all sorts of games, sharing them with my classmates, and trying to learn more about the wonderful world of programming. I eventually removed the training wheels and graduated to their Z80 assembly language. After that, I got insight into more modern programming techniques through high school and college.

Many years have passed since then, but not much has changed. I still spend too many hours designing, programming, and thinking about games. With the advent of Twitch.tv, I can now spend more time watching people play games. The best feeling I have as a game developer is when I can see someone enjoying a game that I’ve made. That feeling is what’s fueled my dream of owning my own game company someday.

Thankfully, “someday” arrived sooner than I expected. About a year ago at my last job, I met a guy named Ian Smith. Our conversations always seemed to steer themselves toward game design; we’d bounce ideas off each other, and I would sometimes code up a prototype (remind me to write a blog post about “Path to VP” at some point!).

One day, Ian proposed just a nugget of an idea for a game: “what if we made a game where programming came into play?” I was immediately hooked. This is something that I’d been toying with for almost five years. In fact, the last game I publicly released, OpHog (GitHub page), heavily featured autonomy despite not exactly having programming elements.

The only problem was that this new game would take too long to complete if I could only put my post-work hours into it, especially since I was tired for most of those hours. After a couple of weeks of deliberation, I decided to quit my job and pursue this venture full-time. Ian and I are starting Xtonomous LLC, a company devoted to making quality games.

There’s not too much to say about the company itself yet. We’re based in Seattle. We only have two co-founders. Our first game will be Bot Land, which coincidentally was the working title for the four iterations of the game-with-programming idea I’d worked on before meeting Ian. For Bot Land, I’ll be doing all the coding, and Ian will primarily be handling the creative side: game design and overseeing the user-experience (UX).

As promised, the last thing I want to tell you about is this blog. I plan on making at least one post per week. The content will almost always be related to Xtonomous, our games, or gaming/technology in general. Likely future topics include:

  • Technology choices and rationale
  • Details about Bot Land itself
  • Other games mentioned in this post
    • Those “four iterations” of Bot Land
    • Path to VP
  • The process of how Ian and I design portions of the game
  • Development updates with screenshots and/or videos

If there’s something in particular you’d like to see us write about, just let us know!