Playmaker Forum

Playmaker News => User Showcase => Topic started by: friendlydog on August 01, 2015, 12:39:29 AM

Title: Cubicle Cat Superstar! (IOS, Android)
Post by: friendlydog on August 01, 2015, 12:39:29 AM
Good morning, fellow game creators!
I finally finished my game and I am proud to share the power of PlayMaker.
I used about 250 to 300 hours on this (coding, art stuff, testing and tweaking). This includes wasting about 60hours with struggling to get Google Play Services to work.
I have posted the "master FSM" as well, so you can see how I set up the whole thing

STORYFLUFF:
In "Cubicle Cat Superstar" you are a fat, blue, Japanese office cat, working all night in your sweaty cubicle. However, the blissful prospect of a karaoke booth at 4:00 AM is ever further away, as there are millions of donuts and other unhealthy distractions preventing you from getting your work done.

gameplay trailer:
https://www.youtube.com/watch?v=ur3_5Gr5N1E

free for android:
https://play.google.com/store/apps/details?id=com.kabukikat.cubiclecat

free for IOS:
https://itunes.apple.com/app/cubicle-cat-superstar/id999742139

GAME MECHANICS:
The game is a fast paced reaction/defense/survival thing, where you shoot down fast approaching donuts, cookies and lumbering cup cakes by pressing fire buttons according to direction of attack. the whole thing is split into timer based survival rounds. should any donut hit your cubicle, you are obliged to eat it, and thus: game over.
In the end its all about multi tasking and attention focus.
There are power upgrades, buffs, online leaderboard and ever increasing difficulty levels.


DEVELOPMENT OBSERVATIONS SHARING:


The good:
- Playmaker performance is fantastic. granted, I only use 4 FSMs, but my game runs with only 13 drawcalls. And I never had any performance issues (ok, its not a 3D game :-))

The bad:
- Not having multidimensional arrays in playmaker is real real drawback. the workarounds for this are ridiculous.
- setting up basic conditional loops in playmaker, which would be 6 chars in a single C script, is terrible.
- some random "Audio Play" action bug which I just never could solve.

- version control:
This was the biggest bitch with this project. especially when there are 4 unity project folders (Android free, paid, IOS free, paid). I tried to keep it all in 1 project, as 9slice GUI scaling is the same for all devices and platforms. However, the multitude of plugins needed for Google Game Services, advertizing, iOS game center and such kept clashing when compiling.
I used Stans Assets for Android Native and IOS game center. While I can recommend the IOS plugin as fairly easy to use, the Android Native plugin is quite a headache.

this has more to do with the next beef I had:

Google Play Services:
my god, what a nightmare! just setting up a leaderboard requires 5 hours of creating a multitude of authentication keys and crosslinking to APIs so deeply buried in Google's muddled website, it is a legit reason to kill yourself.
A miracle Apple Game Center is such a breeze to set up. ironic, since the 3rd worst problem was:

Xcode hell:
developing in windows and compiling in xcode on a mac is not recommended I found out. Whether if its a filesystem incompatibility, or a bug in Unity, I don't know. But you can skip a multitude of bizarre problems if you move Unity to Mac. So I developed my game on a 11" Macbook Air, which due to the screen size is another fun story altogether. However, compilation in Xcode is much easier.

Unity 5 vs Unity 4.6:
I started in 4.6 and moved to 5. bad mistake. Unity 5 is still too buggy for mobile development. I had 489 xcode errors. I managed to fix 8. and then I had to throw the towel and go back to Unity 4.6.

Android vs IOS performance observations:

- Disc write lag.
I use Easy Save 2 (no encryption), and the slowdown on IOS is up to 0,5 seconds lag when writing 17 variables to disc.

- build file size: IOS ipa: 53MB, Android apk 16MB.
This is aparently a texture compression issue. ios uses PVRTC compression, which I found to be a terribly ugly quality loss. Android ETC1 compression is much, much better. Thus, IOS converts your carefully tweaked texture atlas into something uncompressed. And behold, your game just bloated 300%.

- Audio playback:
Android seems to have a delayed play lag for any audio (streamed, pooled etc), which seemingly cannot be fixed. This is really annoying for fast games.

I hope I shared some useful observations. I made another game in AS3 Flash before, and I found Playmaker a true vacation ride compared to coding from scratch. Albeit there are some efficiency drawbacks.

If any of you want to try out the game, feel free to give me feedback for improvement!
Title: Re: Cubicle Cat Superstar! (IOS, Android)
Post by: dudebxl on August 01, 2015, 02:28:45 AM
hi,

thx for the info.. I am a bit shocked with the quality of the trailer.. it looks really professional.. did you make your game + trailer in 250-300hours or just the game?

 :)
Title: Re: Cubicle Cat Superstar! (IOS, Android)
Post by: friendlydog on August 01, 2015, 02:53:17 AM
glad you like the trailer!
the 250 to 300h is for the game only.
the trailer took me about 50 to 60h. (considering the time cost/effect ratio, compared to the game dev process, the trailer is a pure inefficient waste of time, but it was so much fun making :-))


Title: Re: Cubicle Cat Superstar! (IOS, Android)
Post by: rik on August 02, 2015, 02:39:52 AM
dont maintain ios and android builds in same project make seperate for both projects it will save lot of time while dealing with conflicts etc

if you make change copy paste changes using template option in playmaker
Title: Re: Cubicle Cat Superstar! (IOS, Android)
Post by: friendlydog on August 03, 2015, 06:16:06 AM
yes, I found out too.
copy pasting everything 4x is a hell though. especially when dealing with hundreds of variables that ALL change when tweaking game balance over and over again.

a shared XML file would be the proper way I guess - but terribly old school that I am, I did all this with pencil and paper instead :-)

Title: Re: Cubicle Cat Superstar! (IOS, Android)
Post by: liyokikon on August 06, 2015, 04:23:20 AM
The trailer is seriously awesome! great job!
Title: Re: Cubicle Cat Superstar! (IOS, Android)
Post by: friendlydog on August 06, 2015, 06:18:24 AM
The trailer is seriously awesome! great job!

thank you! :-)
Title: Re: Cubicle Cat Superstar! (IOS, Android)
Post by: inyourbus on August 06, 2015, 08:06:20 AM
Well done!
Title: Re: Cubicle Cat Superstar! (IOS, Android)
Post by: djaydino on August 06, 2015, 11:53:39 AM
Hi,
very nice trailer indeed :)

but i have to say LoL that master fsm.. :)
Title: Re: Cubicle Cat Superstar! (IOS, Android)
Post by: friendlydog on August 07, 2015, 04:23:48 AM
but i have to say LoL that master fsm.. :)

hehe, you should have seen it before i "cleaned" it up. That was bad enough to make children cry!
fortunately I have purged the older builds from both my hard disk and my memory ;-)
Title: Re: Cubicle Cat Superstar! (IOS, Android)
Post by: rik on August 09, 2015, 03:39:39 AM
yes, I found out too.
copy pasting everything 4x is a hell though. especially when dealing with hundreds of variables that ALL change when tweaking game balance over and over again.

may be you should use version control instead.

a shared XML file would be the proper way I guess - but terribly old school that I am, I did all this with pencil and paper instead :-)

you surely took a lot of time instead you should have every thing in your mind.
if you want have some installs get it here https://www.fiverr.com/kieronhawke
Title: Re: Cubicle Cat Superstar! (IOS, Android)
Post by: friendlydog on August 11, 2015, 03:16:10 AM

if you want have some installs get it here https://www.fiverr.com/kieronhawke

unfortunately , paying for installs is not my thing. (and if I ever go down that sinister path, I would want at least 10 million fake installs! ;-)
Title: Re: Cubicle Cat Superstar! (IOS, Android)
Post by: rik on August 11, 2015, 12:51:38 PM
paid installs are noting wrong to give some exposure we have to promote app and it was not fake i think.

in these days their are millions of apps we have to had good user base or pay for app installs and let user play if interested .
Title: Re: Cubicle Cat Superstar! (IOS, Android)
Post by: thatnzguy on August 11, 2015, 03:18:35 PM
That trailer is seriously great.
Any chance you could post a higher res FSM screenshot? Or any other info from your FSMs? I love to see how other people do theirs.

Cheers!
Title: Re: Cubicle Cat Superstar! (IOS, Android)
Post by: friendlydog on August 12, 2015, 12:20:28 AM
That trailer is seriously great.
Any chance you could post a higher res FSM screenshot? Or any other info from your FSMs? I love to see how other people do theirs.

Cheers!

thanks! :-)
Here is the fsm in 2560x1440.

orange states have audio functions.
red = error catchers.
yellow = disk write/read function.
green = key points /milestones/primary functionality.
purple = demands attention because of some bug.

i stuffed as many actions as i could into each state for performance tweaking. not entirely recommendable, as you can see to the right in the screenshot. (losing overview when you have 40+ set property actions in one state :-)).

there are 4 more minor fsms handling simple stuff like flashing background or collision detection with the cat. Those have between 4 and 10 states or so.

/*apologies for the rude language in the state comments. Google Play Services did grind my gears massively ;-)*/

Title: Re: Cubicle Cat Superstar! (IOS, Android)
Post by: djaydino on August 12, 2015, 02:53:06 AM
Hi,
does (performance wise) it make a lot difference if you put all into 1 fsm or split it up into different fsm's and use send events to those fsm's ?

Title: Re: Cubicle Cat Superstar! (IOS, Android)
Post by: friendlydog on August 12, 2015, 06:42:50 AM
Hi,
does (performance wise) it make a lot difference if you put all into 1 fsm or split it up into different fsm's and use send events to those fsm's ?

I read somewhere on this forum that fewer fsms is better for performance.
For me, it helps keeping overview and control over what is going on in the game, if most things happen in only 1 (master) FSM.

There was some noticeable performance slump on an iphone 4 when sending events to another GO-FSM to start/stop audio playback!
Title: Re: Cubicle Cat Superstar! (IOS, Android)
Post by: thatnzguy on August 12, 2015, 02:07:32 PM
Thanks for the screenshot.

It's great to hear the pros/cons/problems a developer has faced when developing a game in PlayMaker. I encountered the multidimensional arrays issue recently. One lame method I used was (in PM 1.8.0 - it has native arrays) to have a separate array for each dimension with the indexes matched up.
Title: Re: Cubicle Cat Superstar! (IOS, Android)
Post by: friendlydog on August 12, 2015, 02:24:08 PM
I encountered the multidimensional arrays issue recently. One lame method I used was (in PM 1.8.0 - it has native arrays) to have a separate array for each dimension with the indexes matched up.

haha, yes, thats what I did too. ugly and unwieldy long components list in the property inspector. good to hear about the 1.8 thing! looking forward to that.

another major major major beef I had is the sorting layer issue with transparent textures (with a 3D cam). the unity free version just cannot display multiple, layered/ overlapping png sprites without messing up the overlapping. some z buffer pro version thing IIRC. in the end i had to manually set the sorting layer AND the sorting layer depth for each texture . and there are 155 in this game.
but at least it is possible to make it work, even if its a headache :-)
Title: Re: Cubicle Cat Superstar! (IOS, Android)
Post by: friendlydog on August 19, 2015, 06:58:05 AM
Here is some devLog stuff:

1. prototype: fully functional core game (cubes moving towards a center square, hit direction button to shoot down when within killzone range)
up and running in 2h!

2. first GUI sketch (more like a wireframe):

3. STILL in the game! Audio Play bug.  :( :( :(
just showed up for no reason - and refuses to be solved in a build that worked just fine 1 hour ago.