beyond-all-reason / beyond-all-reason/RecoilEngine
Feature: Spectator delay
- Dominant language
- C++
- Stars
- 679
- Forks
- 290
- Avg merge
- 3d 2h
- Merged PRs (30d)
- 40
Description
Add some sort of parameter that shows spectators the game delayed by some number of seconds. It's a useful feature that exists in many other games for things like tournaments. It's a bit MTR, but now the engine development is active and more approachable, perhaps someone will pick up the project. Having the idea written down somewhere seems good.
I don't know how exactly it would be configured. It could be in host configuration, or an engine option, or even something set locally when spectators join by unsynced luarules. The basic version of the feature itself seems simple enough given the way rejoin works ("just" stop "rejoining" spectators 30s behind the game, rather than when its live), but there are a bunch of annoying things to deal with to polish it. Chat doesn't work on a delay so the engine would need some sort of "unsynced chat" for spectators to use when delayed. There is also the question of what to do when a player becomes a spectator, or a spectator turns into a player.
Contributor guide
Research direction
The issue names no files, tests, or entry points; start by tracing the spectator rejoin flow and identifying how host configuration, engine options, and unsynced Lua rules could affect it. Before implementation, clarify delayed spectator chat and transitions between players and spectators; the issue does not define a complete done condition beyond delayed viewing.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- game-dev, networking
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100