Fish Tank Commander: Huge Success!

Posted by
April 23rd, 2012 5:49 am

It was a very non-standard decision to program my Ludum Dare as a Ruby on Rails web app, but the game I ended up with is incredibly feature-full and remarkably complete — which is not something you can often say after 48 hours!

Fish Tank Commander features:

  • Multiplayer, turn-based tactics game (similar to Advance Wars…or chess!)
  • Four exciting unit types: The Speedy Seahorse, the Tanky Turtle, the Brutal Betta, and the Cheap Goldfish.
  • Elo ranking system (like in professional chess) and XP earning for each game. See how you rank!  Challenge people of your skill level!
  • Built-in map maker and a voting system
  • Notification system lets you know when it’s your turn…or when your opponent concedes! (Coming soon after LD: Optional notification by email.)

Tools Used:

  • Ruby on Rails and JavaScript
  • Sublime Text 2
  • Photoshop and GIMP (turns out Photoshop sucks for pixel art)
  • Twitter Bootstrap
  • Git, Github, and Heroku

What Went Wrong:

  1. Discovering that none of my several available web servers were running Ruby 1.9+ and being unable to upgrade them. I ended up having to sign-up with Heroku to do the hosting, but this was indirectly good — see below.
  2. The AJAX interface for moving the units can be a little laggy. Unfortunately, there wasn’t enough time (and expertise) to develop a WebSocket solution — this will come after Ludum Dare is finished.
  3. Not enough time for me to play the game, so some good balance tweaks only became obvious to me after the deadline when I could get in a few matches.
  4. Not enough time to implement the several pages of additional features the game deserves! Especially automated matchmaking and email notifications. Hurry up and finish voting so I can improve the game!
  5. The battlefield doesn’t look quite as much like an aquarium as I had hoped. It needs some kind of border around it that looks like fish tank walls.  One art please.

What Went Right:

  1. Really knowing my programming language. In LD #22 I used Unity 3d, which I’m not very experienced with.  But I use Ruby on Rails every single day for work.  This was still a learning experience as I don’t use RoR to make games, but it meant that I didn’t have to use documentation as extensively (just occasionally to check parameter ordering for complex functions).
  2. A great schedule. Just as with LD #22, my plan was to use Friday for ideas and a skeleton/outline of the app, Saturday for core gameplay, Sunday for “fluff” like finalizing the art and adding auxiliary features. Despite complaining about not having enough time to do everything, I actually did much, much more than I thought would be possible in 48 hours.  I think that midway through Saturday I felt that I had enough “game” to have been satisfied with submitting then.
  3. Working with Heroku.  I’ve been wanting to play with this sort of dynamic, cloud-like hosting for a while and I finally got the opportunity to do so.  Even the the fact that I wasn’t able to use my existing (and therefore effectively “free”) hosting is going to be a boon, as I’m feeling more motivated to complete all the features I want to make a very professional product.
  4. Good, high quality food at the ready. I made a pork roast on Friday night and had plenty of pre-washed spinach, lettuce, and other vegetables ready to go.  Saturday and Sunday morning started with a huge breakfast, and I made sure to consume a lot of high quality food the rest of the day. It kept my energy levels high.
  5. Going for walks. It only took me 10 minutes to go around the block, but the four or five walks I took throughout the weekend were great for recharging my batteries.

What Went Awesome:

  1. Streaming the whole thing and having hundreds of my YouTube viewers keep me motivated (and provide me with a to-do list of feature requests that will keep me busy for the next year).

Once voting for LD #23 is complete, I’m going to get back to work on this project and turn it into something really, really amazing.  I can’t wait.

Tags: ,

Leave a Reply

You must be logged in to post a comment.

[cache: storing page]