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

Allow setting a command's timeout or inserting with a timeout

Open
#3,168 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

A command's timeout can be set in the `GiveOrder*` variants using `LuaUtils::ParseCommand` but only on plain commands. We cannot set it on commands packed into the parameters of a `CMD_INSERT`, so we would have to replace the entire queue to set a single timeout.

- I want to issue commands to the front of the queue by inserting them paired with their timeout.
- Barring that, setting and updating the command timeout seems useful from synced.

While command timeouts can be replicated game-side, the unit's current command has to be monitored and accurately removed. Widgets will struggle in multiplayer due to command delays. Command monitoring must detect similar/identical commands being reissued, assuming the timer should reset. This is overhead we might avoid.

Contributor guide

Open the contributing guide

Research direction

Start by tracing the GiveOrder* variants through LuaUtils::ParseCommand, then inspect how CMD_INSERT packs command parameters and how synced command queues represent timeouts. Clarify whether the goal is timeout support for inserted commands, a synced timeout update, or both. Done means the chosen behavior works for inserted commands and handles multiplayer queue updates without external widget-side monitoring.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
game-dev
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.