Static App Showdown: The "Meeba" Experiment

I took part in a worldwide Hackathon called Static Showdown. It was a lot of fun, and here is a writeup about it (with a link to the game we made).

The last time I participated in a Hackathon, it was in December 2012 for Dwolla's Old MacDonald Hackathon.

I really had a blast, so when I saw Mark Otto's (the creator of Twitter Bootstrap) tweet that he was a judge in a hackathon, I jumped on the opportunity.

The third-annual Static App Showdown is a worldwide competition where teams have 48 hours to build an app. Basically, the only rules are that the app has to be contained in an HTML file (linked to JavaScript as well as third-party libraries).

This poses somewhat of a challenge, but it's become a lot easier to make apps today with front-end frameworks like AngularJS, BackboneJS, and EmberJS paired with backend services like Firebase and Parse.

The Team

I called upon my friend and colleague Doug Choi (a talented designer) and his friend Steven Lischer (a talented engineer) to join my team (which I called "The Iowish" for no particular reason).

We got together Thursday night to figure out what we wanted to build. While we had a couple options (from productive to utility), we ended up choosing fun.

We were going to make a game.

The App

You know that game where you start out as a little fish, you eat food, and then grow big enough to eat other fish? Fishy or something? Yeah, that's what we wanted to build, but with a few key differences:

  • It would be more cellular/evolutionary
  • It would use "weather flags" to show where the large food/opponents were on the board
  • It would be a realtime, multiplayer game.

Our first course of action was choosing a library for our drawing/animation. None of us had created a game before nor used a game/graphic library for anything.

We ended up choosing PaperJS for the project. We were drawn in by the neat animations, but we later regretted this decision (more on that later).

We worked late into Friday night, met up and worked Saturday all day, and again Sunday morning.

The Result

[caption id="attachment_1727" align="alignnone" width="984"]MeebaMeeba in its prime.[/caption]

So, we didn't quite get finished. You can view the app here and play around if you want.

Here's what Meeba can do right now:

  • Log in anonymously and get assigned a "player" (a white circle)
  • Sync up your movements and size in realtime to Firebase
  • Eat food and grow bigger
  • Watch other players move and eat food in real time
  • Weather flags (i.e. lines) point to the biggest spot of food on the board

Here's where Meeba has its glaring faults:

  • You can't log out once you log in
  • The progressive scaling gets out of control, and you get way too big too fast
  • You can't eat other people yet
  • The only end to the game is that it crashes when all of the food is eaten

Overall, we learned a ton and had a great time learning about the technologies and making the app.

The Lessons

In no particular order, here are a few things we learned this week:

Building a game is hard

Like, seriously. For a web developer, engineer, and designer, we had no experience making games. It's not like there are any manuals out there for making games from scratch, so we were kind of on our own to make an interactive multiplayer game in under 48 hours.

Choosing the right library is important

It turns out that PaperJS has poor documentation. It was often tough to understand what functions did what, and the error/debugging within the library was pretty lacking. We decided that the library ultimately wasn't meant for hooking into an interactive game and was really meant for some pretty animations.

Features take a long time to implement

While I worked to get the basic game mechanics working (scrolling, movement, eating), Steven was busy getting the weather flags to work. That's just one feature we had planned in our laundry list, but due to the poor documentation and other difficulties, we didn't get that integrated until late Sunday afternoon.

The Food

A really great thing about this weekend was the food. Doug and I visited Uncle Wendell's BBQ on Ingersoll Friday night for dinner, which was pretty great.

The three of us met up at Waveland Cafe Saturday morning for breakfast. GREAT breakfast place!

We grabbed lunch at the Fighting Burrito downtown followed by dinner at Exile Brewing Co. A lot of food, and a lot of fun.

Will we do Static Showdown next year? I don't know. Will our game launch on the App Store and have so much success that Flappy Bird feels bad that it ever left? Probs not. But here's to wishful thinking.

A special thanks to Happy Medium for letting us use the office space for the weekend!