See if we can get rid of that one step worth of jank after
moving the player before their lookdir is set correctly, which
might be due to the delay involved in the work of moving the
player's position.
If no player is connected, just show random views around "spawn"
(the origin for now, not actually testing to find the real spawn
location or honoring static_spawn setting yet) every ~10s.
Make sure the camera is never placed inside a solid; if it is,
then it needs to be moved immediately.
This leads to uneven times between cycling to
a particular player; it's probably best to just use
the naive order and let players rotate through
deterministically.
This was especially noticeable when a player
was last in the queue and then first in the next
queue, so you'd see a "Watching: ..." HUD
announcement but no actual change in perspective
and the player would just run twice as long.
- Remember to clear cached IDs on exit
- Try to defer HUD creation a tiny amount to avoid slamming clients
with a ton of HUD creation packets all at once
Move player to target position first, then restore
inventory after so it doesn't get left behind where
it's restored (i.e. next to the /watch-ed player)
Before the times would add up to a little over 58 seconds (assuming
the dtime steps keep up well enough); now it should add up to a
little over 60 seconds, getting us closer to an exactly 1 minute
sliding sample window.
Set the max bar width to 50% of the total accumulated time, so
there is always one longest bar unless 2 bars have 50% each, and
all non-longest bars are linearly comparable.
Increase accounting granularity so we have smoother expiration
of old entries.