Continuing with the Google Narratives Series, we'd like to profile Google App Engine and OpenSocial developers, Dave Westwood and Randall Ho of BuddyPoke!

Dave and Randall both have backgrounds in 3D and avatars for the last 11+ years, with work in various web 3D games, facial tracking, facial animation, and mobile avatars. They've worked at five companies together - "Dave does all the technical stuff and I'm the technical artist." Simply put, they complement each other perfectly.

Q: Tell us the story of how BuddyPoke was envisioned.

A: We'd always worked for other companies, and disliked the company politics, etc, and always dreamed of just going and doing our own thing. When we saw the huge success of Slide's slide shows on MySpace, we quit our jobs and started work on a 3D pets widget. Facebook apps and OpenSocial weren't live yet and our first project failed miserably because we completely lacked a distribution model with viral channels. Fast forward a bit, and Nintendo Wii is huge with everyone making miis and talking about avatars. There was Playstation Home and Second Life. Also, the Simpsons Movie was just about to released and allowed for you to "Simsponize" yourself. We thought about the 30+ minutes people were putting into customizing their avatars, without any way of doing any cool interaction with friends. We also thought about the interesting fact that most people who installed these types of console games did it mostly for character personalization or "dress up," rather than to actually play the game. Bottom line, we knew we had to do something about it.

Facebook apps then started to take off, and OpenSocial came out. We closely watched what worked and what didn't on Facebook by looking at usage charts of the top 200 apps. After a lot of trial and error, we applied our 3D backgrounds to some of the ideas and came up with a way of doing the 3D rendering in Flash. That's when we came up with BuddyPoke.

Q: Describe your implementation and why you decided on Google App Engine.

A: During the time that we were focused on researching app usage, we noticed that most apps were struggling with scalability. Their difficulties sounded vaguely familiar with our current implementation and we knew we needed to find a platform that would help us avoid the same issue, especially since we were working on the version for MySpace. The main thing here was timing with the release of Google App Engine and the announcement of OpenSocial. All of a sudden we found ourselves able to quickly roll out our app to the various OpenSocial sites without having to worry about scaling.

Q: Tell us about your overall development experience and any obstacles you have encountered along the way.

A: When Google App Engine first came out, the big learning curve was BigTable. Our data models were horrible. Then, after watching Ryan and Brett's talks at I/O, we redid everything and it's running well now. Our only concern is the organization of our code on AppSpot - everything runs on one AppSpot site. If we knew ahead of time of our success, we would have broken the code up in groups to make updating easier. Also, our main ask is XMPP support so that we can implement chat on App Engine.

One last thing...we're thrilled about the success of BuddyPoke. The barrier to entry is so low from a developer's perspective. We never imagined having 3D characters seen by so many people, without having to even think about the technology behind them or without even having to buy a Wii.

We really enjoy hearing from developers in the community about inspiring stories, so if you have something you'd like to share, visit our online submission form. Better yet, come tell us your story at Google I/O. You can also check out Dave & Randall's cool story on the Ning blog!

Thanks Dave & Randall!