Parcel Dogs Game For iOS - Development Process
Hi everyone, Ray here. With just over 4 months of development time, around 500 hours of learning game programming, learning vector drawing, and geometry and physic based head scratching, our first iOS game is complete!
Parcel Dogs for iPhone/iPod and Parcel Dogs HD for iPad were submitted to Apple for inclusion to the App Store a few days ago.
NEW UPDATE:- The iPhone/iPod version of the game has just been approved (March 10th 2012) and should soon be available at the App Store - Click here to go to the App Store
UPDATE:- The iPad version of the game has just been approved (March 7th 2012) and should soon be available at the App Store - Click here to go to the App Store
This ‘top-down’ racing game involves the player taking the role of Jim, our Speedy Parcel delivery dog. Now Jim has to go around his picking up parcels with the help of his map but has a hard time of it thanks to his nemesis Crazy Dave.
Crazy Dave will steal his parcels, leave Booby traps and just plain get in Jim’s way.
The player takes control of Jim’s van, driving through each level, getting the most points and picking up bone achievements. If you get 3 bones on a level, you unlock the achievement on Apple’s Game Center.
30 Levels of fun, providing 4 different missions of increasing difficulty, from parcel collection to taxi destruction to destroying Dave’s vans. In the later levels you are introduced to Scary Trevor who has the ability to damage your van causing you to drop your parcels and allowing Dave to steal them off you.
You have extra jeopardy in the form of speed cameras, which are dotted around your routes with speed limits you must adhere to. If you get more than one ticket, your driving license is marked as suspended and the police will be on your tail (no pun intended). Cops have fast cars and if they chase you and get a direct impact, you lose your wheels and you fail. But, if you can avoid the police for more than 30 seconds, they will call off the chase! At least until you break the speed limit again...!
Not a fan of traffic, neither am I, so if you get stuck behind a group of vehicles, just use your finger to swipe them out of your way.
5 levels plus the tutorial level are provided in the free download, with an In App Purchase allowing you to unlock all levels and remove all advertising from the game. I set the In App Purchase Price at 99 cents / £0.69.
The game was designed to be a casual ‘pick up and play’ style game, with no overtly complex commands to learn or objectives to figure out.
This post won’t really go into detail about the specifics of development but rather an overview of the process of making Parcel Dogs.
I started putting together the storyboard for the game back in November 2011 - (this actually spawned the eventual intro cartoon you see when you run the game) - from there work began on figuring out the game framework to use, as this work significantly speed up development time.
I settled on the Cocos2D framework - (here). This is entirely written in native Objective-C code, is fast due to using OpenGL ES, and allows me to link to a physics library from its template. More on this later.
Cocos2D is quite easy to pick up as it takes care of some of the more difficult coding practices for you, such as OpenGL and memory management. For example, you can create a sprite and add it to your current layer, now the sprite would be autoreleased but the layer itself would retain it, but as the layer is also autoreleased, it is retained by its scene container which is also autoreleased. Going up through the chain the director, (the class that manages the scenes within cocos2d), will retain the scene until it no longer needs it. Overall this simplifies the process somewhat.
I used the Box2D library to simulate the physics environment for me, from the way the vehicles move to the road borders, parcels and forces applied when you hit bombs or water pipes!
Artwork was produced using a combination of Adobe Illustrator and Adobe Photoshop to draw the vans, Jim, Crazy Dave, props and the tiles for the tilemaps. I used Zwoptex to create spritesheets from these which are then imported into the game via code as and when needed.
The tracks were put together using Tiled, a TMX tile editor. A fantastic program which cuts down the time taken to produce tracks.
Sound effects and game music were purchased from royalty free sources online such as - (SoundSnap) - the voices of Crazy Dave, Jim and the depot manager were provided by yours truly!
One of the biggest challenges, and something that forms the basis of the game, was how to tackle the artificial intelligence for not only traffic but also for Crazy Dave, the Police and Scary Trevor. Dave must find all the parcels, plot routes to them and then drive - (drive using the same controls the player has) - to them.
I settled upon using the A star pathfinding algorithm to generate waypoints to find to the AI. Initially this led to long loading times as the game would create nodes (A star works on a grid system) at initialisation time. It would then remove any nodes that work in collision zones or not in track sections.
To improve this implementation, I decided to create an object layer within each track where I would manually create nodes of a certain distance apart. These would be placed on the track, only where the vehicle could travel without getting blocked/trapped. Then in runtime, I would traverse these objects to create nodes and set positions, then traverse each node, find other nodes that are within a certain rectangular distance and set each other as neighbours (a require of A Star). Even with the traversing of node arrays, this is quick as I only create a small number of objects in the exact position when designing my tracks.
The A Star algorithm is then implemented to use these nodes to create a waypoint array for the AI to use to feed to whichever vehicle it is controlling.
This is quite processor intensive and it was a challenge to optimise in order to get the continous pathfinding to work smoothly without affecting framerate heavily. On dual core devices, such as the iPhone 4S and iPad 2 using a background thread to generate waypoint eradicated the problem. However, on a single core iPod Touch 4G the game runs at 45-55 fps, which I deemed acceptable overall.
I included the Facebook SDK for iOS and the Twitter Engine to provide a social aspect to the game. Players can directly share a link to the game on the App Store to their Facebook wall/timeline and to their Twitter profile. Each share provides the player with a 15% boost to Jim’s van, so sharing the game with your friends nets you a 30% power boost.
To monetise the game, I integrated the iAds classes as well as the Greystripe SDK - Greystripe provides a fullscreen banner for iPhone, and I created a fullscreen popup MPU ad view for the iPad version. As I didn’t want iAds to be displayed during actual gameplay, I used the Greystripe popup to display the banner just before you enter a level. Using the In App Purchase system, the player can unlock all levels and disable these ads.
Game Center was integrated to track bone achievements as well as the total amount of points gained in the game. These are aggregated from the best points for each completed level.
Finally, I created a trailer by using the AirPlay mirroring to Mac facility provided by the Reflection App for Mac.
The trailer has been added below.
For more information about Parcel Dogs, please visit the Parcel Dogs Website.
I hope you like the game! Let me know your thoughts.