Page 1 of 1
Posted: 21 May 2017, 02:26
Eliasvan
See video for evidence of the problem:
[youtube]WYIg_qTHx2w[/youtube]

Observations:
- Physics engine of cars and projectiles (rigid bodies) runs at ~125Hz,
and there is no interpolation between these physic steps, resulting in stuttering
- Particle system simulation is only limited to the refresh rate, and thus runs at 1000Hz in this case
- Rendering also runs at the refresh rate, 1000Hz, check the race timer at the right for evidence

Suggestions:
- Add interpolation between the physics states, e.g., linear interpolation; this will make this video much smoother

Info:
- RVGL version: 17.0327a 64-bit on Linux
- See description of above linked video for more info

Feel free to ask any question if something is not clear

Posted: 21 May 2017, 08:23
Abc
Hi, this is pretty well known but thanks!

The game is not supposed to be ran on such high speeds!

Please look other threads about this.

Posted: 21 May 2017, 16:00
speedwagon
Abc @ 21 May 2017, 03:53 AM wrote: Hi, this is pretty well known but thanks!

The game is not supposed to be ran on such high speeds!

Please look other threads about this.
It's kinda funny since it's hard to not run it at high speeds even with 10 year old computers that use onboard graphics.

Posted: 21 May 2017, 22:23
Abc
Again, its a very old game
in argentina for example, it was acceptable at 10-30-60 fps at the time
remember the engine is designed and runs at 125fps
plus it was shipped with bugs

Posted: 22 May 2017, 00:22
Eliasvan
Abc @ 21 May 2017, 05:53 PM wrote: Again, its a very old game
in argentina for example, it was acceptable at 10-30-60 fps at the time
remember the engine is designed and runs at 125fps
plus it was shipped with bugs
Hi Abc,

I do agree that 1000fps is a special use case and it might be tolerable that this doesn't work perfect.

However...
This video is interesting in the sense that it works a bit like a magnifying glass for the time domain, making it easy do to observations by, e.g., counting time (the "Race" timer advances by exactly 1 millisecond for each frame).
These observations, together with some background info from this post, revealed that RVGL suffers from temporal aliasing (perceived by humans as visually unpleasant stuttering).

I prefer 30fps with perfect frame-times (no stuttering) over 60fps with jitter/stuttering.
In fact, the reason most movies still play at 24fps without people complaining, is because there's no jitter (and because a shutter time of half a frame is used, creating some motion blur, but let's not take that into account now).

Long story short, when this bug is fixed (by linearly interpolating between physics states):
- one will be able to record smooth slow motion videos @ 1000fps (I'll redo the video once the fix is released ;) ), AND
- the temporal aliasing will be gone, so no stuttering anymore

Posted: 26 May 2017, 17:57
Abc
Are the original game and 1.2 also affected by this?

Posted: 28 May 2017, 21:11
Eliasvan
Abc @ 26 May 2017, 01:27 PM wrote: Are the original game and 1.2 also affected by this?
I cannot answer that question right now since my speedhack (using LD_PRELOAD) doesn't work on Wine yet (I'm using Linux);
I also tried with CheatEngine's speedhack, but that one also doesn't work on Wine.

Feel free to test for yourself if you've got RV1.2 running on Windows, using e.g. CheatEngine's speedhack:
simply slow down with a factor 20 (verify the "fps" counter is over 1000fps) and see whether there's more than one "Race" timer tick per movement of the car, if yes, it's also affected.

Edit: I modified my speedhack such that I can now run it on Wine as well,
and I saw that both the original (demo from: https://www.revoltrace.net/downloads.php) and a later version (from: https://archive.org/details/Re-Volt) are affected by this:
physics step is 8ms (125Hz) without interpolation between steps.