porting a hack job to facebook...

So this past weekend I spent a decent amount of time porting the existing Hero Brawl code base so that we could have play the game as a facebook app…here are a few quick notes from that hack fest:

1. In less than a year, the Facebook API has come a long way…they now support a lot of things that you might want to do (ie. Javascript, Ajax, some CSS, etc.)

2. But they haven’t come far enough…for security reasons, they have to first parse everything and convert it into their own subset of ‘supported’ things…in many cases this means completely re-writing or at least re-working how you do things (for me specifically, it meant cutting out all my prototype Ajax stuff and seriously scaling back on some of the other Javascript things we are doing on the reg. herobrawl.com site).

3. While the port was fairly easy (because I chose to duplicate into a new location), it also revealed just how painful it is to not have designed the system from teh scratch to be more 'portable’…sure I got a facebook version up and running VERY quickly, but now I’ve got two code bases (that are slightly different in a variety of ways) to support and maintain…

4. Merging the Hero Brawl system with the facebook system brought some interesting decisions out to the front…for example, both systems have the concept of 'friending’…when you install the app in facebook, should we go ahead and automatically use your facebook friend list to determine who your 'pre-existing’ friends are? Both systems also have the idea of 'status’…and so the question of where, when, and how to tie the two together makes the most sense…overall, very easy things to do technically but also very interesting from a UI, business, and 'what makes sense for the user’ point of view…

5. Maybe it’s just me, but every project I seem to get involved in…the more I get done, the larger the to-do list becomes…I guess this is because the more I do, the more ideas I get. The more features and options I want to add…if I wasn’t so easily distracted (or bored with things), I’m pretty sure any system or project I work on would end up having every imaginable feature and option installed (so it’s probably a VERY good thing that I’m so easily bored and distracted away from projects). It’s just so hard for my brain to actually accept the 'less is more’ concept even though I know it to be true.

Anyway - there are lots of other little tidbits I could and should share (so maybe in a future post)…and I haven’t even started to talk much about the business side of why or what I’m doing this stuff for…oh and I also haven’t even started to think about the myspace version (that’ll be a whole nother set of complaints, issues, and ideas I’m sure).

In the meantime, if you’ve got a facebook account, why not be one of the first to get a sneak peek at the Hero Brawl app (before it’s even officially released on facebook): http://www.greentile.com/herobrawl

And don’t forget to let me know what you think - oh and yeas, I do accept cash donations as positive feedback!

This post has received 43 loves.


This is the personal blog of Kevin Marshall (a.k.a Falicon) where he often digs into side projects he's working on for digdownlabs.com and other random thoughts he's got on his mind.

Kevin has a day job as CTO of Veritonic and is spending nights & weekends hacking on Share Game Tape. You can also check out some of his open source code on GitHub or connect with him on Twitter @falicon or via email at kevin at falicon.com.

If you have comments, thoughts, or want to respond to something you see here I would encourage you to respond via a post on your own blog (and then let me know about the link via one of the routes mentioned above).