In Falling Birds, your aim is to collect items and keep falling for as long as possible. The game is over if you hit a platform or a bomb explodes while you’re carrying it. When the game ends, the leaderboard gets updated, and the score is posted on Twitter.
Although it seems quite simple, it’s quite complicated to get everything joined up and talking to each other!
Tom started the development of Falling Birds as a fun side project from work. Christian chipped in some of his design time and his graphics helped bring the game to life.
The current version of the game is more or less the earliest playable version. We have many plans to improve it and eventually release it on the App store (possibly for Android too).
The game has been developed in XCode on Mac, using the Cocos2D game engine
When the game ends, the iPad sends the information to our website. It includes details about the game, such as the player’s score, name, and Twitter account. It also tells us what items you collected and how far you fell so that we can produce some interesting statistics.
One of the biggest challenges with sending information is to ensure there is no delay in the game - it would be really annoying if the game froze while it sent the data.
So, the information is sent asynchronously - it’s held in a queue and then sent when the iPad has some spare processing time available and access to an internet connection.
It’s a bit like sending a letter in the post: you don’t wait at the postbox to get a reply - instead, you get on with other things and the postman brings you a reply later. In this case, the iPad doesn’t need a reply so it can just “fire and forget” the information and move on with the rest of the game.
When the information is received at the website, it needs to be handled very quickly to ensure that lots of incoming connections can be dealt with. This means we do as little work as possible, and so again, the information is put into a queue for processing later.
Another part of the website looks in the queue for any new scores that have arrived. It decodes the score, updates the main leaderboard database, and sends a Tweet using the Twitter API.
Every minute, anybody viewing the website leaderboard will see it refresh - the website asks the database for the latest leaderboard and updates the page.
We’re using a REST API to handle the receipt of scores, and a MySQL database to host the queue, which Cron processes once per minute. For production-quality speed and scalability we would put the messages into an AWS SQS queue, and use AWS Lambda to update the database and generate the Tweet in near real-time.
For businesses, apps are an opportunity to engage with customers and improve productivity - especially for companies that have a mobile or distributed workforce.
Although Falling Birds is a game, it follows the same model that business apps use - it collects information and reports back to a database for processing later.
If you answered “yes” to any of the above, then get in touch with us today and find out more about how apps can transform your business.
Fill out our contact form and Garry or Sarah will get back to you.
When contacting us via this form, we'll only use your details to reply to your message. For more info please see our privacy policy