@@ -15,14 +15,17 @@ use crate::{time::Time, virt::Virtual, FixedUpdate};
15
15
/// generic [`Time`] resource during [`FixedUpdate`](bevy_app::FixedUpdate)
16
16
/// schedule processing.
17
17
///
18
- /// The fixed timestep clock advances in fixed-size increments, which is extremely useful for
19
- /// writing logic (like physics) that should have consistent behavior, regardless of framerate.
18
+ /// The fixed timestep clock advances in fixed-size increments, which is
19
+ /// extremely useful for writing logic (like physics) that should have
20
+ /// consistent behavior, regardless of framerate.
20
21
///
21
22
/// The default [`timestep()`](Time::timestep) is 64 hertz, or 15625
22
- /// microseconds. This value was chosen for being a power of two,
23
- /// which losslessly convert into [`f32`] and [`f64`], while only being
24
- /// slightly above 60 hertz (a standard screen refresh rate that is
25
- /// the de-facto performance target for many games).
23
+ /// microseconds. This value was chosen because using 60 hertz has the potential
24
+ /// for a pathological interaction with the monitor refresh rate where the game
25
+ /// alternates between running two fixed timesteps and zero fixed timesteps per
26
+ /// frame (for example when running two fixed timesteps takes longer than a
27
+ /// frame). Additionally, the value is a power of two which losslessly converts
28
+ /// into [`f32`] and [`f64`].
26
29
///
27
30
/// To run a system on a fixed timestep, add it to the
28
31
/// [`FixedUpdate`](bevy_app::FixedUpdate) schedule. This schedule is run a
0 commit comments