I am working on a game called SuperNinjaBall.
And i am developing it for Iphone 5, using cocoonjs.
My game is running at 40 fps which is perfectly smooth.
It has all the graphics and sounds it "needs".
Multiple sounds playing at the same time.
Particle effects, that i can tweek to do all kinds of things.
Great texts popping up everywhere in different collors for score's.
I can tell u from experience that i was lucky this game runs smooth.
That is because i had the basics for this game laying around on my hard drive.
At first i build a version on the pc which "when i ported it to my laptop" ran really slow.
Then i rebuild the whole thing on the laptop making it become fast again.
After that i ported it back to the pc and the fps was really fast.
This is where my "luck" came in.
Because i did it this way, the resources i used for the game where based on a "slow" laptop.
So anything above that standart would speed up the game significantly.
Then after a few months i got my Iphone5 and downloaded cocoonjs.
Now at this point it is good to know that i was testing a bunch of my games on cocoonjs before i tested SuperNinjaBall.
I simply forgot i had it!
These other games where all build on my pc, not counting in for performance, because my pc is powerfull enough.
These other games where giving a fps rate of aprox 5 to 10.
That, is not do-able even on a Iphone5.
So remembered SuperNinjaBall and loaded it up into cocoonjs, and instantly got a big smile on my face.
Not only did the fps show a great 40, the game seemed perfect for the responsive touch of this Iphone.
Everything was just in place.
So i started to recap on what made this different with all other games i had build.
The simpel answer is, build something fast, on a slow computer.
That slow computer forces u to learn the magic of minimalistic game designing.
Then when u go to a faster device, u have some "overhead".
This overhead is what u can use for some "graphics" magic.
For my next game, i would start building it using cocoonjs.
Only testing it with that.
This would enshure me to get an even faster fps.
Because i would learn to understand the max potential i can get on the device i am building for.
And "That" is what its all about.
Using Cocoonjs from step 1, i can constantly monitor the fps and tweak the game design.
So as for SuperNinjaBall, i was lucky: But i learned allot about the minimal side of developing.
From this moment, fast games will not be build on luck, but wisdom.
I hope this post give's u some inspiration.
The short rule is: Learn the boundaries of the "space" u are workinig in.
Only then u can tweak that "space" to its max!
But always keep some overhead for "peaks" in the system!!
Thinking, that all "Spaces" u are working in should be the same "is" understandable, but look around u in every day life.
The "diversity" is what makes performance better each day.
A rule of thumb that can be applied to everything, thus being html5/devices/cars/phones, or even your tasty sandwich ;-)