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

Expand unit coverage in the every-commit fightertest sync testing

Open
#2,928 1 comment 0 reactions 0 assignees View on GitHub
area: devops/gitops
Dominant language
C++
Stars
679
Forks
290
Avg merge
3d 2h
Merged PRs (30d)
40

Description

### Task

Expand the variety of units utilized in the every-commit `fightertest` sync testing. The goal is to improve test coverage of the underlying engine API by including units with fundamentally different mechanics and behaviors, rather than just the currently tested basic bots, tanks, and aircraft.

### Context

Currently, the `fightertest` sync testing that runs on every commit only tests a very limited subset of units (specifically, one type of bot, tank, and aircraft). While this provides a baseline, it leaves gaps in our sync testing coverage because different unit types utilize different underlying engine APIs and mechanics.

To maximize the effectiveness of these sync tests, we need to increase the variety of units tested. However, we do not need to test *every* single unit in the game. As discussed by the engine team, many units (e.g., T1 Arm fighters vs. T2 Arm fighters, or Arm vs. Core variants) only differ by numerical stats and function identically under the hood.

The focus should instead be on adding units with distinct behaviors and API interactions—for example, adding bombers, hovercraft, submarines, or units with special abilities. This ensures broader coverage of the engine's simulation code and catches potential desyncs in specialized unit logic without unnecessarily bloating the test execution time.

### Acceptance Criteria

* Identify unit types with distinct engine mechanics/API usage that are currently missing from the `fightertest` sync tests (e.g., bombers, submarines, hovercraft, spiders, etc.).
* Update the `fightertest` sync test configuration to spawn and test these newly identified unit types.
* Ensure the additions focus on mechanical variety rather than purely statistical variants (e.g., avoid adding both T1 and T2 versions of the same mechanical unit type).
* Verify that the expanded tests run successfully in the CI pipeline and properly validate sync without introducing excessive execution time overhead.

------
Author: Bruno D
Discord: https://discord.com/channels/549281623154229250/724924957074915358/1492928242431299857
Model: gemini-3.1-pro-preview

Contributor guide

Open the contributing guide

Research direction

Start with the existing every-commit fightertest sync test configuration and review which unit types it currently spawns. Identify mechanically distinct units, add representative units without redundant statistical variants, then run the sync tests and verify the CI pipeline passes without excessive execution-time overhead.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
game-dev, testing
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.