Contents
Engine-independent guidance
A bug you can't reproduce, you can't fix
On this page
The principle
Reproduction is the heart of fixing bugs: a defect you can reliably trigger you can diagnose and verify fixed; one you can't reproduce you can only guess at. Invest in the things that make bugs reproducible — clear repro steps, determinism where feasible, good logging, and captured state — so bugs become tractable instead of haunting.
Applies when
All bug-fixing and QA. Especially critical for intermittent, timing-dependent, or emergent bugs, and for anything that must be verified fixed.
Does not apply / Exceptions
Some bugs are genuinely rare/environmental and full determinism is impractical (network races, hardware-specific issues) — there you invest in observability (logging, crash dumps, telemetry) to reconstruct what happened, since you can't reproduce it directly. And chasing perfect reproducibility for a trivial cosmetic bug isn't worth it (risk-weight it, QA-0001).
Rationale
The debugging loop is reproduce → diagnose → fix → verify, and it stalls entirely at step one: if you can't make the bug happen on demand, you can't watch it, can't be sure of the cause, and can't confirm your fix actually worked [S-games-user-research]. So reproducibility is the single most valuable property for bug-fixing, and it doesn't happen by accident — it's enabled by disciplined repro steps in reports, determinism (same inputs → same behavior, which also aids automated testing, QA-0002, and reproducible builds, CONTENT-0005), comprehensive logging, and the ability to capture and replay state. Non-reproducible bugs ("it happened once") are the ones that ship and recur. Making bugs reproducible is upstream of fixing them.
Implementation
Require clear repro steps in bug reports. Build for determinism where feasible (fixed seeds, deterministic simulation) — it aids repro, automated testing (QA-0002), and reproducible builds (CONTENT-0005). Log richly and capture state/crash dumps so hard-to-repro bugs can be reconstructed (observability). Verify fixes by reproducing the original and confirming it's gone. Treat non-reproducible recurring bugs as a signal to improve observability.
Disagreement
Little on the principle; the nuance is how much to invest in determinism/observability infrastructure versus living with some irreproducible bugs. High-reliability and competitive/networked games invest heavily; smaller games lean on logging and accept some mystery bugs.
Notes
The debugging-foundation principle of QA; enabled by determinism (shared with QA-0002 and CONTENT-0005) and observability. Pairs with blameless problem-solving (TEAM-0003 — reproduce and fix the system, don't blame). Confidence 4.
Connected principles
Source trail
Evidence strength describes support for this guidance, not a probability that it is right for your situation.
Citation and record details
GDC-L1-QA-0003 · contextual guidance · canonical
Recorded verification date: 2026-07-14. This is not a claim of an engine test.