[quote]Not if you time your application for the lower frame rate. This is why publishing minimum system spec for your app is important - if the system meets the system specs, then you can expect it to hit the render timing consistently.
[/quote]
true, min. system specs do serve a purpose, though more often than not, it is so people don’t take games back to the shop saying ‘this game is unplayable blah blah blah’ (and if they do, the shop has something to fall back on, like ‘you read the requirements… etc etc’)
Also, due to the abstractness (is that a word? ^_^) of Java, it is obviously far harder to give accurate min. requirments.
[quote]I should point out that Alien Flux has an option for toggling 60/30fps render speeds, which is quite an intelligent option, given what a wide range of machines that game runs on.
[/quote]
yep, and as cas and others have argued in many previous Threads, for 2D animation to appear smooth, it has to be done at a constant FPS.
However, take the vast number of 3d shooters/flight sims/rpgs etc etc out there.
None use fixed ‘multiple of refreshrate’ framerates, simply because it isn’t necessary for 3D games.
[quote]Besides “scalability” is something we all ought to do when writing games - every major game does it nowadays (i.e. being able to turn on/off certain effect that directly affect the user’s framerate). It IS possible to have smooth animation, AND zero tearing. They’re not mutually exclusive.
[/quote]
true, it is.
However, Unless you have dynamic detail alteration (very very few games do), or you have levels/maps that have been expertly crafted for consistent processing load, you will always get fluctuations in framerate.
Running with Vsync off, your rendering will always be more tollerant to load flucuation.
for example :-
VSync ON, Your machine is running at 90%, and attaining the max. 60fps.
You then have an event that causes an increase in load to 110% (lets say, an explosion occurs very close to the camera, and the fillrate takes a hammering)
While you are running at 110%, all your frames are taking 2 vsyncs to render, so your framerate has dropped from 60fps to 30fps.
Ofcourse, in a real-life example the 110% load would be for only a few frames. However, in many ways this is far worse, as your framerate will be 1-2-1-1-2-2-2-1 (vsyncs) aka stuttering.
Now, the VSync OFF scenario as you can imagine will not suffer from the same problems, the framerate will be directly proportional to the cpu load.
So, a 110% load will cause the framerate to drop to 1/1.1 * 60 = 54fps.
So, as i see it vsync off gives more stable framerates, at the expense of tearing.
And tearing in 3D games is not [very] noticable.