User's corner: Ghost Catcher

Paul Malolepsy on April 2, 2012

It has been a while since our last post in the “Users’s Corner” series! This time, Paul Malolepsy did us the favor of describing his experiences with Sparrow in Alki Lab’s latest game.

Who Are You?

I am Paul Malolepsy, co-founder of Alki Labs. I’ve been playing and building video games since the dawn of personal computers. Carnival of Horrors is my first attempt at a game on the iPhone platform, and I credit Sparrow Framework with making it an enjoyable, and surprisingly easy transition.

Ghost Catcher: Carnival of Horrors

Borrowing lovingly from classic tower defense games like Plants vs. Zombies, Ghost Catcher: Carnival of Horrors pits you against a whole carnival full of ghosts, monsters and possessed carnival attractions. The game is intended to be a lighthearted cartoon-style romp, with an emphasis on great sound and visuals, action-based strategy and solid replayability. You can check it out at the iTunes App Store: Ghost Catcher: Carnival of Horrors.

The Search For A Framework

Being primarily a Java developer, I was relatively new to iPhone development. One thing I’ve learned about trying to tackle ambitious new projects is the importance of keeping the number of things you are learning to a minimum. Since I was already hitting the learning curve of Objective-C, I wanted to make sure that I wasn’t also having to re-learn everything I already knew about game development.

After hours of searching and evaluating various different game frameworks, I ended up settling on Cocos2d. I chose it largely because so many other developers seem to be using it, and it has a proven track record of producing successful iPhone games. So I set out to start my development, but quickly found that I was fighting the framework too much. Most of their components felt very heavy weight and awkward, coming with way more features than I needed or wanted. Now, I’m not trying to slam Cocos2d. I know its been a great choice of lots of developers. But it just wasn’t my cup of tea. After about two weeks of fighting the framework I decided to scrap the work I had done and re-evaluate my choice.

Sparrow To The Rescue

After my experience with Cocos2d, I was hoping to find a game framework that fit my own personal style a little bit better. Sparrow Framework was always near the top of my list, but I initially overlooked it because it appeared to be newer and not as battle tested. But clearly some developers were having success with it, so I decided to take a leap of faith.

That faith turned out to be well placed as I got into the meat of my development. Sparrow’s components were so clear and intuitive, I found it incredibly easy to learn the API quickly. If I ever had any questions about how things were working, a quick jump into the very clearly written source code would usually answer my questions. In the few cases where an answer was not readily apparent, I was able to get my answers on the very helpful Sparrow Forums. Its simplicity reminded me quite a bit of libgdx, which I had used a lot for previous Android projects.

The best analogy I can use for the way I view Sparrow Framework vs. other iPhone game frameworks are like different Lego sets. Some Lego sets come with a lot of fancy pre-formed pieces that work very well for the very specific way they were intended to use, but are hard to use when you don’t want to use it exactly the way it was intended. Other Lego sets come with a basic but thorough set of pieces that, with just a little effort, can be used to build exactly what you want without compromises or complexity. Sparrow is the latter.

Cool Features

Some of my favorite features of Sparrow are its elegant and simple DisplayObject hierarchy, the Juggler object which makes it easy to have groups of animated objects that can easily be stopped and started in groups, it’s straightforward eventing framework and its simple yet powerful Tween object making it easy to animate any property of any object. We also were able to take advantage of the Sparrow 1.3 feature of being able to publish a universal app for iPad using the same assets as the iPhone, which was a nice surprise just before we were about to release the app.

If there is any one feature I could request to add to Sparrow, it would be a quality scroll view with good inertial scrolling. This is probably the only thing that preventing us from making the game in 100% Sparrow and OpenGL. Instead we had to rely on some UIKit integration for this.

Conclusion

I can honestly say that developing with Sparrow was a joy. Based on many of the comments and reviews, people may get the mistaken impression that Sparrow Framework is only for beginners and non-programmers. This is not the case. It has the unique quality of being both easy to use, but also extremely powerful and lightweight. If you are a new programmer, you will find its APIs to be very straightforward. If you are an experienced developer, who actually enjoys writing code, then you will find its simple components very easy to use and extend. Sparrow has won me over, and is already my choice for my next project.

Thanks for your efforts, Paul! Gamua wishes “Ghost Catcher” the best of luck in the App Store.