Poking around, it looks like construct 2 uses
requestAnimationFrame
and
setTimeout
Like Dalal said, this causes problems. Browsers can do only one thing at a time, and with javascript this eventually leads to this stuttering.
The solution? As far as I can tell is to use CSS for animations.
found this example online.
http://www.html5rocks.com/en/tutorials/ ... e-raf.html (The way it looks like Construct 2 animates using requestAnimationFrame)
http://www.html5rocks.com/en/tutorials/ ... imple.html (The same animation using css)
Edit:
Also reading about GSAP
http://greensock.com/gsap
Looks fairly promising.
As for if this necessarily will help with smooth animations I cant say. I feel a square box is rather different than an animated character/object changing frames.
Part of the issue also falls to device vertical sync and fps. I took the example from page 1, changed speed to always match fps. And obviously there was 0 jittering.
The problem is it moved slower than I like.
There could be an internal issue within construct and how it draws frames, because it does not match the refresh rate. (Everything takes place logically as if 60fps I believe?)
Digging around, it looked like this is due to that setTimeout code I was talking about. It looks like it is set to 16ms (60fps) which obviously is bad. Static frame rate/refresh/logic has these issues. A dynamic system would always look smooth. Able to adjust with fps drops and rises.
I could be wrong about how construct is animating things. But It would probably be better if it animated based on dt rather than using the timeout.
The people with high refresh devices don't see nearly as much jitter because they refresh so fast it compensates for any fps variance.
Ahhhhh screw it. Everything I know and keep reading about game/film/web animation and why it looks "jerky/jittery" all comes back to interpolation. If you interpolate between delta time and desired speed things should look smooth(er). I think the issue comes from while speed might be interpolated etc, the animation frames themselves are not. The draw calls themselves should interpolate what we see, I don't think it does.