This is just a collection of replay related issues and tasks. Some of these are engine issues. Help is appreciated. E.g., if someone wants to improve the UI, please do. Some of these issues are easy, but most are hard or medium difficulty.
This issue has some overlap with #26910
Bugs / issues:
[x] There are some "PVS" bugs when replaying client-side recordings. When jumping around in time some "pvs chunks" appear to be missing.
[ ] Replays need to do a better job of dealing with entering and leaving the lobby. Its currently handled by networked events, which doesn't work very well when jumping around in time.
[ ] Replays need some sort of fallback for when there is no valid location that a replay spectator ghost can be spawned.
[X] There is an appearance bug that shows up in the video in space-wizards/RobustToolbox/pull/4122. Though it might get fixed before that PR is merged.
[ ] Missing audio & popups. Some audio and popups are currently not recorded because they use obsoleted methods. All uses of the obsolete methods just need to be removed updated to use the new methods.
[ ] Replays cannot handle prototype or resource overwrites.
They also pre-load all prototypes. So if some client-side code enumerates over prototypes the results may be incorrect before it hits the point in time where the prototype actually gets uploaded.
This also means the prototype-reload events don't trigger at the "correct" time.
[ ] Skipping forward in time does currently add chat messages that were skipped over.
Features and minor issues
[x] Ability to toggle UI (#19956)
[ ] Round ID should be networked.
[ ] An easy way to tell what round number it is during a round as both a player and an admin, bonus points for it telling you round length too
[ ] 16:9 viewport in replays
[ ] Allow observers to override eye rotation & zoom while spectating entities.
[ ] Better time control widget
fast forward (toggle & hold).
Some editable field for jumping to a specific timestamp
Fancier slider with finer control for long replays.
"OldChat" layout.
[ ] Custom Chat UI.
Currently it is very hacky and just disables text-input.
Filter by distance.
Option to hide dead chat.
Interactive / teleport-to-source
[ ] Viewable BUIs (aka: refactor BUIs to use component states)
[ ] Record some server-side data and make it viewable in a replay (e.g. pipenet & powernet stats)
[ ] Better UI
Timeline viewer for players (e.g., make it easy to jump to a point where a player died).
Admin tattle/warning viewer.
Teleport-to menus. These cannot just use the existing tpto command, because if the player is currently spectating an entity they need to first detach them and span a new spectator ghost.
[ ] Initial replay data needs to be compressed (i.e., admin uploads)- [ ] Scrubbing is interrupted when UI states change. E.g., try spectating a player that uses /ghost at some point and try scrubbing around.
Automated recording & distribution
[x] Some kind of system that automatically starts & stops recordings as rounds start & stop,
[X] Add support for the launcher to launch local/offline single-player games.
[ ] Automated replay filtering/redaction tools
E.g., admin chats & ahelps should be recorded so that it can be seen in game during a replay while admins are reviewing a round, but they should not be viewable in replays made available to the general player base.
Even if we do decide to just make them all public, its probably still worth creating some tool that can read through and filter or pre-process replays (e.g., see all the code comments about checkpoint state generation.
[ ] Replays don't handle ghost visibility well (ghost are always visible, even when spectating a player, and cannot be toggled)
[ ] Better UI/time control
[ ] Skipping relative to an entity (Skip to the earliest or latest time an entity exists in the replay)
[ ] Tpto entity with searchable list
[ ] Map/grid traversal (just tpto?)
[ ] Status effects get stuck to the observer. For example, if you are spectating someone who goes into crit then stop spectating, you'll still have the crit overlay
[ ] Admins could use a way to exclude their entity from replays, primarily (exclusively?) to protect methods used to detect metacomms and ongoing investigations. Easiest way to do this is probably to exclude a designated layer from replays
[X] After clicking on the timeline to jump time-position a few times, it will bug out and start "following" the mouse, quickly spooling the footage trying to follow the motion of the mouse. This is rather undesired/unintuitive behavior, and does not perform well replaying it either. This continues until it registers a click OUTSIDE the timeline bar.
(turn on sound to hear emphasized sfx for when the mouse is clicking)
This is just a collection of replay related issues and tasks. Some of these are engine issues. Help is appreciated. E.g., if someone wants to improve the UI, please do. Some of these issues are easy, but most are hard or medium difficulty.
This issue has some overlap with #26910
Bugs / issues:
Features and minor issues
/ghost
at some point and try scrubbing around.Automated recording & distribution