So the latest game project I have been caught up in for the past few months hit the app store a few days ago. It’s been a bit of a whirlwind launch with a few last minute kinks . Overall it has been a successful launch. No.1 on iTunes and No.4 overall app (beating youtube!) for the Australian markets.The game was built for McDonalds, so as one can imagine, the scrutiny an app of this nature gets from both the commercial client and audience was at times stressful for myself as the lead developer. with that said I’m super pleased with how it turned out. A commercially targeted game for a big brand – with an indie heart! Read on to get more info on the game mechanics and technology used.
This is actually the 2nd time I have made a game for the McDonald’s brand – I feel very privileged to have had the opportunitie, and had such great people around me during the process. It makes all the difference.
Game Overview
The game is an ‘Endless Drop’ game, where the character Carl, jumps out of a cargo plane , collects coins and power-ups, avoids crazy animals and obstacles, and eventually lands in a McDonald’s Store.
If the player beats a daily target score, they can win food prizes which are redeemable with the phone over the counter at McDonald’s stores.
The main portal for the app is https://mcdonalds.com.au/drop-into-maccas . Currently the app is available for iOS and Android, however it is restricted to the Australian markets.
Mechanic
The game uses the accelerometer to control the player, much like Ridiculous Fishing. I spent a fair amount of time refining this functionality until it felt fluid and intuitive, the player also rotates based on accelerometer velocity to give it a more responsive feel. The player has the ability to boost by holding the screen, this sends Carl into a dive which allows him to smash through obstacles, with a fuel meter HUD representing the players remaining boost power.
There are several different power-ups to collect which temporarily give the player an ability Vac Pac (coin magnet), Piggy Bank (coin multiplier), Horse Head (protective shield), and Sloth Mode (slows down the player)
Each item can be upgraded up to 5 times which give a different cosmetic appearance and extend the duration/strength of the power-ups.
These power-up types combined with clever level design, really created a nicely balanced experience which is challenging yet fun.
When the player loses, the character’s parachute opens, the player must then carefully navigate to the target to obtain bonus points (accelorometer offsets change making it harder to navigate through the air).
Unlockable Items
Collecting coins in the game can be used to purchase power-ups and cosmetic items from the boutique, this allows the player to extends the fall distance and rack up some serious points.
Some of the obtainable suit upgrades currently available:
Technology
Apart from the ‘game’ aspect of the app, there is rather large ‘business’ app running in parallel, powered by a robust back-end Infrastructure – churning on multiple Amazon server nodes.
A competition system is in place which awards McDonalds food prizes to players based on a complex back-end algorithm, which is determined by prize pool availability, player performance, geo-location and other factors.
Users geo-location is accessed and cross-checked against the Mcdonald’s master store list to determine a users distance from the nearest McDonalds store.
Due to the heavy UI, fast game-play , server and multi-platform requirements (iOS and Android), the right tools needed to be selected early on.
To give you an idea how how many screens are found in the app, check out some of the many faces of the Drop Into Macca’s app:
So what exactly was used?
Adobe AIR with Starling Framework was used for both game play and UI. Dynamic Texture Atlasing was used to create a responsive system that attempts to accurately adjust screen layouts to any resolution thrown at it. The game itself uses a combination of dynamic and fixed sprite sheets.
Adobe AIR also offered powerful desktop testing tools for rapid testing and debugging. So for those of you that think AIR is dead or not useful – think again.
The app utilises some powerful ANE’s from Milkman Games. Including CoreMobile which gives AIR access to vibration control among many other cool things.
A big Thanks to BenLeffler who was responsible for the Dynamic Texture Atlasing system which converts vector graphics into raster at runtime.
And to the Back-End engineer Dean Collins who put together an amazing server infrastructure for this project – fast, secure, scalable – capable of handing 1000’s of simultaneous users.
Follow those dudes on twitz, they are legit.
(We all work for 3rdsense! check us out)
So flat, much design, wow
Looking good! Is the dynamic texture atlas system you used available for others, or was it an in-house job?
Hi Murray, the system used in the app was in fact in-house, however I have also used and can recommend Gil Amran’s DTM lib, it’s pretty awesome https://github.com/gilamran/HelloDMT
Very cool! I reciently downloaded the New Zealand version of the app to my new phone and have been having a blast with it (which is a rare feat considering I don’t play that many mobile games and am usually a retro console gamer or pc gamer). The humor is spot on, the game is fun and that music is just… WOW. Really awesome to be seeing indie devs climbing in the ranks! I didn’t know that adobe air could actually be used for building mobile apps until I read this! Also the fact that you decided to not have IAP’s in the game just makes it all the nicer! Keep up the awesome indie developed work!
One final question I have though is will this game still be playable after the promotion ends?
Hey Nathan, I’m glad you have enjoyed it! Yeah the game should continue working after the promo ends 🙂 Yeah man, AIR is one of the best cross platform game tools when used with frameworks like Starling.
The game looks relly good John. I was wondering what you are doing about smoothening the accelerometer input. I’ve tried using a low pass filter, but it is still pretty jittery. Any tips on this?
how are you managing the low pass? if you like send me a snippet of your code and i can take a look at it for you. johnstejskal@gmail.com
Does anyone have any codes?
My game seems to glitch in the middle of a game johnstejskal can u plz fix.