Fighting Game · Guides & deep dives

V2 Combat Frame-Budget Gate

A guides & deep dives document in the Fighting Game library.

0sections1 minread

On this page

V2/ue/Tools/check-frame-budget.py enforces the P0 combat frame budget for Unreal profiling exports. The PR gate runs it after V2 automation tests on the Win64 reference runner and fails when any combat frame is greater than 16.6 ms.

Run the tool from the repository root:

bash
python3 V2/ue/Tools/check-frame-budget.py --self-test
python3 V2/ue/Tools/check-frame-budget.py V2/ue/Saved/Profiling/FrameBudget --required

The checker accepts .json and .csv files. A row or object is considered a combat frame when it is under a combat-labeled JSON collection or carries a combat marker such as phase: Combat, category: Combat, combatFrame: true, or a scope / stat / name containing V2Combat. It reads millisecond values from columns or fields such as frameTimeMs, durationMs, totalMs, gameThreadMs, and combatFrameMs.

The CI workflow also executes --self-test, which verifies that the included good fixture passes and the included over-budget fixture fails.