Yes, I haven’t updated Falling Balls in months. Bad me. But now I am doing it.
This next update will actually be a total rewrite. When I first created the game, it was done as something to practice my newly acquired Objective-C / Cocoa coding skills on. There was no concept that this would become the number one free game in the App Store. It was all written in UIKit, which is pretty horrible for doing anything requiring any amount of performance. It’s pretty amazing it performs as well as it does. That’s just due to how simple it is.
But now, six months later, I have learned a few things here and there. One thing is that I’ve gotten heavily into cocos2d for iPhone, a framework for writing 2d games. It’s based on OpenGL, which means it’s really fast, and is perfect for a game like Falling Balls.
So yes, I started from scratch and have now pretty much completed a full rewrite. One of the top requirements for the new version, however, was to have it look and feel exactly like the original version. So I actually brought over all the algorithms and values from the original version and used them when creating the new version. So the balls will come out of the same place with the same random speed ranges, at the same rate, and fall with the same gravity, and bounce with the same bounciness. The stickman will move according to the tilt the same way he originally did. All the game graphics (meaning the stickman and the circles and the blood) are essentially the same. If anything changed, it seems it’s overall more responsive. Actually easier to dodge the balls and get higher scores.
The UI is slightly spruced up, with a home screen / main menu, a settings screen, and an about screen, and some custom fonts and graphics thrown about. Ads are still the way they were, as well as the leaderboard from geocade. I think the only major things that were lost were the inverted color scheme and the ability to flip your phone upside down and have the game rotate to play right. I don’t think either of those were killer features, but I do plan to add some color theme support back in later.
So why rewrite it to make it look and feel exactly the same? Well again, the first version was never meant to be anything other than a quick experiment. I did start adding a few features to it after I realized how popular it was, but due to the architecture, or lack thereof, it got pretty painful. The new version of the code has been thought out in a lot more depth, and is infinitely more extendable. So I have several new features in mine, taken largely from suggestions, that will now be far easier to implement.
But of course, if I’m going to make you go through the pain of updating, I have to give you something solid, rather than a bit shinier new UI, right? Well, how about difficulty levels? Yes, now there are three levels of difficulty!
The first level should play exactly like the original game. If you like it how it is, you’re all set.
A big request I had from many people was to have the game start a bit quicker for those who are used to it. So the second difficulty level does that. It starts quicker, with more balls coming at you faster. The rate of increase is a bit faster, and tops off at a higher rate of ball throwing. This gets you into the action quick, and shows no mercy once you are there.
The final level is somewhere in between the first two in terms of speed, but adds a new twist – balls come at you from both directions! Trust me, once you’ve played these two new levels, the original will seem like a walk in the park.
Filed under: Game Development, Games, General | 3 Comments »