Playmaker Forum

PlayMaker News => User Showcase => Topic started by: smiffy on July 20, 2012, 01:02:26 PM

Title: Our game is out! Superstar Athlete on Android
Post by: smiffy on July 20, 2012, 01:02:26 PM
Hi guys, just wanted to let you know our game went live on Android today!

Done over a period of 3 months and entirely with Playmaker and NGUI.

I owe a debt of gratitude to this forum too as I probably wouldn't have finished it on time without the help of you guys.

So thankyou!!!

Title: Re: Our game is out! Superstar Athlete on Android
Post by: brendang on July 20, 2012, 02:08:00 PM
Congrats...  Very cool achievement.

You should post a bit about your observations and what you learned about doing an entire game with Playmaker.  Pros...cons, a bit of a post mortem.
Title: Re: Our game is out! Superstar Athlete on Android
Post by: smiffy on July 21, 2012, 12:33:46 PM
Cheers mate!

Post mortem huh, that's a great idea, ok lets see:

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:)

Title: Re: Our game is out! Superstar Athlete on Android
Post by: brendang on July 22, 2012, 10:08:10 AM
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.

Thanks again, and Look forward to checking out your game!
Title: Re: Our game is out! Superstar Athlete on Android
Post by: Uttpd on July 24, 2012, 07:06:41 PM
Thanks for the right up, and congrats on the release.
Title: Re: Our game is out! Superstar Athlete on Android
Post by: reedomatic on July 24, 2012, 11:04:52 PM
Nice job, I cannot wait to try it out.
Title: Re: Our game is out! Superstar Athlete on Android
Post by: smiffy on July 25, 2012, 09:24:11 AM
Thanks guys, its no masterpiece but I had fun doing it. On to my next game now:)
Title: Re: Our game is out! Superstar Athlete on Android
Post by: emilyjmortn on September 07, 2012, 01:16:52 AM
Whats the plan for Your next game? Hoping it would also bring out something new just like You did last time bringing superstar athletes.

Funniest Professional Athletes (
Title: Re: Our game is out! Superstar Athlete on Android
Post by: MABManZ on September 21, 2012, 12:40:39 AM
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?
Title: Re: Our game is out! Superstar Athlete on Android
Post by: smiffy on October 09, 2012, 11:20:14 AM
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:)
Title: Re: Our game is out! Superstar Athlete on Android
Post by: shinodan on November 26, 2012, 10:23:44 AM
Have you profited well? Well for 3 months of work did you feel you made enough back for the time you worked on it?
Title: Re: Our game is out! Superstar Athlete on Android
Post by: smiffy on November 27, 2012, 11:30:31 AM
Don't have the figures yet for Europe/China, will have to wait till next year for them but so far in the UK it's made about 5k which will cover the wages:)
Title: Re: Our game is out! Superstar Athlete on Android
Post by: Sjones on November 27, 2012, 03:30:14 PM
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?
Title: Re: Our game is out! Superstar Athlete on Android
Post by: smiffy on November 27, 2012, 04:49:48 PM
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.
Title: Re: Our game is out! Superstar Athlete on Android
Post by: Sjones on November 27, 2012, 07:10:24 PM
this is realy good info actually!

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
Title: Re: Our game is out! Superstar Athlete on Android
Post by: smiffy on November 27, 2012, 08:03:06 PM
I think I covered most things in the post mortem earlier in this thread. The main thing I found on Android was that because every manufacturer has their own version of Android the time it takes to get it working on every system is just crazy and just really eats into time that would be better spent polishing.

Id probably look at doing multiple versions with stripped down graphics for less powerful handsets next time and factor in an extra month for the added effort.

Debugging was pretty painless, there were no major issues. The whole thing was done in Playmaker so no scripts apart from a one to run at 30fps and couldn't afford external help, I'm not a programmer either:)

They have Android exclusivity, I have iOS and own the IP and all assets.

Oh and the music was done in a day by a mate of mine who I really can't thank enough but can't name as his current employer wouldn't be too happy:) Originally though I had the theme to Superstars in there. It worked really well so I mailed EMI and asked them how much their library music costs and they said £100 per 30 seconds for a mobile licence which covers iPhone/iPad & Android versions. Couldn't afford the £300 it would have cost me but definitely next time. All their music is on the site or on Spotify under KPM.

Thanks for the questions:)
Title: Re: Our game is out! Superstar Athlete on Android
Post by: Sjones on December 05, 2012, 09:52:24 PM
When they localized your game for android, can you then use that localisation for other OS's like the iOS? or do they have exclusivity on their translation?
Title: Re: Our game is out! Superstar Athlete on Android
Post by: smiffy on December 06, 2012, 08:35:29 AM
Hmm good question, Don't think ownership of that aspect is mentioned in the contract but I was given the ok to release exactly the same version to iOS so I don't think it's really an issue.
Title: Re: Our game is out! Superstar Athlete on Android
Post by: Sjones on January 27, 2013, 06:20:46 AM
hay smiffy, just wondering if your able to sahre any more information on the sales of your game, you said you would have a better idea in the new year on how well it has sold.

I am also wondering at what stage of development did you get in contact with your publishers?

just had another thought / question, how did you find your publishers?
Title: Re: Our game is out! Superstar Athlete on Android
Post by: smiffy on February 02, 2013, 08:32:03 AM
Hi SJones, so it didn't do too badly, but not as well as they expected. Still don't have proper figures but I meet on Wednesday with them so maybe I'll have something then but not holding my breath. But cash wise It's done ok, basically paid for the development time I spent on it and enough to create the next game. They did another promotion for it over xmas in foreign territories where it did best so that's something to look forward to later in the year.

I was in contact with the publishers more or less from the start. A few of us started a company mainly to get into iptv and apps, and one of us already had close ties with the publishers so we had an easy in.

And to answer your pm about pausing, when the phone rings or otherwise interrupts your game it takes priority. Your game needs pause quickly with minimal fuss, and you may wish to look at saving when you pause that way as the user may just close your app. It's less hassle to just pause everything, music and all.

You could create two types of pause I guess, one for the user with animation and music, one for if the device calls onApplicationPause that stops everything.
I use pause controller from the unity store, it's pretty good.