beyond-all-reason / beyond-all-reason/RecoilEngine

Feature: Spectator delay

Open
#706 5 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.