Well I'm not the best coder (I'm an artist), but I have been using playmaker for a while now and felt confident enough to be able to design a small sports game based on what I knew it could do and what I could do quickly.

I spent the first month, 2 days to art & animation and the rest to building the main menu and the hurdles game and polishing it to the point we could put it in front of people.

I used NGUI for all the gui using 2 atlases, one for the game, one for the menus. Very easy to set up using get/set properties but Playmaker did have problems changing the properties in game, i.e changing the selected event name when you press a button. So with deadlines looking I set up multiple labels and used Playmaker to hide their parent folder then unhide the one I wanted to see. Messy but it works.

Used the pixel popped look to mask the fact that anti aliasing kind of looks crappy when scaling graphics.

I used Unity animations for the menu sliding in/out transitions, controlled by an FSM that just handles those transitions. So click play and it sends an event called menuToPlay which starts the anim, waits a second then brings in the events panel. It works well but creating those animations is time consuming, I'll just use iTween next time.

There is an FSM that runs at the very first screen, when the publishers name comes up. It checks for screen res and in combination with NGUI's anchors resizes elements to fit better on 4:3 screens, iPad etc.

One major problem I did not foresee was that some devices have a vertical res of 240, experia mini for example. I started my game with a minimum size of 320 and scaled up from there. Elements would overlap or be partially off screen and it was just too big a job to sort in time so those handsets were dropped.

During testing it became clear that fragmentation between devices on Android is a nightmare. Publishers demand that the game runs on certain handsets and mostly old ones. Framerate is hit hard on these devices so we ended up stripping down the game somewhat to improve the framerate.

Getting the drawcalls down is key. Use profiler on the gpu to see how many drawcalls you have. I had 50-60 initially but was still getting 60fps on my tablet. Low end devices were so choppy that events that took 20 seconds to finish were taking a minute.

The standard skybox had 6 drawcalls, so that got binned. Either use a single dome map or ambient colour which is what I decided on.Skinned meshes have extra drawcalls, don't use too many.Optimise your lighting, ideally bake them.Make sure that cameras that are not seen are turned off.

Got down to 16-20 drawcalls after optimisation which allows it to run on most handsets.

I limited the max framerate to 30fps as faster devices running at 60fps made the game almost impossible to beat as the call everyframe to reduce speed was double.

I made a waypoint system for making players run in a curve. Initially it was a whole bunch of colliders each of which set the player to iTween rotate to the next then Destroy Self. I ended up redoing it with one collider and one FSM. The player hits the collider which looks up the next location from a table and moves it to the next point, the player then rotates towards it. Much faster.

I used Pause controller from the asset store to pause, works great and integrates well with playmaker.The publisher did request that the back button paused as well. And eventually stipulated that if theres an interrupt then the game needs to resume to a pause screen. Gets a bit complicated when you're already paused or if you use back to pause the pause button is still active. Bear in mind that you need to create a pause FSM that allows for multiple ways to pause that don't conflict with each other.

Another publisher request was to have the game under 10mb else it would require an installer to split. Mine came in lower than that once I'd optimized the art but it's something to bear in mind.

Another request was to create different build for carriers. So France Orange wanted a version with French as default language and Player outfit. Very easy to do by having an int switch at the start to do the set up for this then changing the number before you build.

Player prefs were a breeze with playmaker, also very easy to set up a first run fsm to set language etc. Just have an FSM that checks a bool for firstrun = true to show anything once the first time, then set it to false and save it to a Pref.

I have it so that selecting an event sets an int variable, hurdles = 1, long jump = 2 etc. Makes it very easy to reset a scene or reload one using int switches. Select an event then start the game.Load a scene that has an int switch that sets the correct tutorial and tells the ready button which game to load.When I want to reset a scene I fade to black, load an empty scene with 1 FSM that reloads the event scene from another int switch instantly.And when you return to the menu another int switch to tell the panel which event details you want to show first (i.e the one the player played last).

Disabling FSMs on an NGUI object seems to stop them from working sometimes. I never found a solution to this and time constraints meant that I cobbled a solution together for disabling buttons. Just have a dummy button that sits behind it and move the real one off screen with set transform.

The events have a lot of FSMs to set up a scene, handle speed animations etc but once the event starts a lot of them are no longer necessary. I set up one FSM that managed the others and turned them on and off as required.

The action DeviceVibrate.cs caused unity to add the vibrate line to the android manifest even though it was never used. This got us refused from the Nook and Kindle stores originally. Just deleted it and all was good.

There's loads more, maybe I'll do a blog post sometime, any questions just fire away. I did though get a mail from our publishers yesterday though that praised us on our ability to get a product out in a short timescale and on time and that they were very impressed at how quickly we were able to implement changes. A lot of that is down to Playmaker and just how easy it is to quickly build up content from an idea, but I'm not telling them that just yet:)

Hey that was terrific, and I know I"m not the only one who appreciates the effort it takes to put together a post like that. I think here, there are a lot of us Artists who will benefit from a good look under the hood of games created with Playmaker.

If you don't mind revealing, I'd like to know how the game has sold thus far and if you met/exceeded any expectations on that end. I'm sure the release timing helped (during Olympics) but have you been getting any steady purchases since the Olympic games ended? Did you release anywhere other than Google Play?

Well the iOS version was released with no marketing at all so numbers havent been great there. But apparently we're in the top 50 in the sports category in Europe, don't have any figures to back that up yet though just going with what the publishers told us. Should have a better idea of its success in the new year.It was released on Google Play in the UK but went out to individual carriers as different versions branded for their own stores, so we put their logos on the arena banners etc.

Also got it sold on to a Chinese carrier, they sent me the art & localized text over and I got it turned around in less than a day! Again props to Playmaker & NGUI combo for that one:)

If I may ask, what publishers did you go with and any information on how they operate (their cut, negotiations, helpfulness etc) and also do you think that it was worth publishing through a 3rd party publisher or do you think you could of got the same income by self publishing on the play store etc?

The publisher is 365 Games, you can get to their page via the 1st link I posted. They took 30% on top of Googles cut and for that supplied the following:

QA for all handsets which was extensive and very professional, learned a hell of a lot about Android (and mobile dev in general) in those last weeks of debugging.Localized all my files for me into languages required.Pushed it through their existing network of service providers, probably the biggest plus as that got it across Europe and Hong Kong. The marketing guys passed over their art and I put it on the billboards in game so they had customized versions for their own stores.

I had no time at all for my own marketing due to other commitments, if that were the case again I'd likely return to them with my next Android game. I released the iOS version myself with zero marketing and it's made just over £200($300) so far globally which is better than I ever expected to be honest.

My next game though will be iOS only (for now). It's about 90% finished and I'm going to promote it myself as a test to see how that goes. Android was a bit of a nightmare to develop for really, there are so many handsets all with their unique quirks. I may go back to it if I get an iOS success:)

It's been a pretty good experience all in all. I definitely don't regret doing it, I learned a hell of a lot and made a bit of cash to boot.

have a couple more questions, is there anything specific about some android phones that us developers should look out for, as you can imagine, half of us here are not programmers, how was debuging and fixing your game with playmaker or did you have to get some external programming outside of playmaker to complete it?

also do they demand exclusivity or could you distribute your game too? im guessing with all the extra stuff they would of as to get their costs back