Jumps Background Race Background Turret Background


The game I created in seven days is done! Battlefriends, as it's called, is launched. You can even play it right now. To get you excited, here's a screenshot of what a typical profile (mine) looks like early in the game:

Battlefriends Profile

Since it's finished already, here are some tips and tricks that I discovered along the way.

When to Use the Open Graph API

The new Graph API caters very much to the Facebook Connect crowd. So much so that the canonical way of getting users to authenticate is JavaScript based. If you have an app that exists somewhere outside of Facebook - a destination website like a blog that isn't dependent on Facebook - then the Graph API is great. However, if your app only exists within the canvas page on Facebook, then going with the old REST API offers you a lot more flexibility and power to interact with Facebook data. Easier authentication. Better tools with more options. But it'd be a really heavy solution in the former case. So use what makes sense for your specific app.

How to Use FBML

There is an option in the JavaScript SDK to have it render FBML on the page. It works, but just barely. The rendering time for any sort of intensive FBML (like the all popular request-form) is measured in minutes, and that's just not acceptable. Instead, using the force FBML hack is at least an order of magnitude faster.

Facebook Doesn't Like Transparent PNG's

You need both a 75x75 logo, and a 16x16 favicon to upload to Facebook. I discovered that if you try to use a PNG with alpha channel transparency, then Facebook automatically converts it to a GIF, which obviously has only binary transparency: a pixel is transparent or not. They control the threshold, and in every case it was set at something that made my images look horrible. I have no idea why they don't just keep the image the way it is. This conversion seems like more work on their part for a negative gain. In any case, do yourself a favor and convert it to a GIF yourself before uploading, so that you can control the threshold.

Regarding Playtesting

When making a game, actually playing it is really important. This may seem incredibly obvious, but going through the flows solo or with a robotic competitor is nothing like playing against a real live human being. You have to test the game with other people. They will do unexpected things in unexpected ways, and generally muck up your system. Doing this before exposing the game to a wider audience will probably catch most of the pain points other users might encounter.

Game Over

Now that this mini-project is playable, it's back to work on the tower defense game for the Xbox. This was a nice distraction for a while, but I think putting a time limit on it is a good thing. There's still so much to do for our first console game!

Webmention Endpoint


Stay Connected