Guide
Game warmup and practice range systems explained
Harbor Arena shipped ranked 5v5 with a polished pregame lobby and a hard cut to live pistol round one. Telemetry showed a brutal pattern: players who had not touched a mouse in twenty minutes missed the first three shots of round one at 2.4× their session-average rate. Teams that lost pistol also lost round two on force buys 58% of the time — not because the economy was broken, but because muscle memory was cold. Veterans alt-tabbed during queue; new players never learned recoil before stakes attached.
The fix was not a separate aim-trainer app. It was a bounded pre-match warmup range inserted between roster lock and freeze time: sixty seconds max in ranked, infinite in custom, with shooting lanes that mirror live weapon data, moving bot silhouettes, and a utility sandbox that renders ghost arcs without consuming economy. First-round loss rate fell to 12% while average queue-to-shot time rose only eight seconds. This guide covers warmup FSM placement, range mode taxonomy, weapon fidelity rules, ranked abuse caps, Harbor Arena’s refactor, a technique decision table, pitfalls, and a production checklist alongside input tuning and tactical shooter design.
Warmup is a match phase, not a menu
Treat warmup as a server-authoritative match phase in the same FSM as lobby, freeze, live, and round end — not a client-only overlay. That keeps weapon stats, spread curves, and netcode identical to round one.
| Phase | Player state | Typical duration |
|---|---|---|
| Lobby / ready | Map vote, loadout pick, chat | 15–90 s (mode-dependent) |
| Warmup range | Shoot bots, test utility, adjust settings | 0–60 s ranked; uncapped custom |
| Freeze / buy | Spawn at site, buy weapons, plan | 10–20 s |
| Live round | Full combat, economy active | Round timer |
Skipping warmup should be a deliberate player toggle (“ready early”), but the default must assume cold hands. Harbor Arena auto-starts the range when the tenth player connects; early-ready votes can shave time but never extend ranked beyond the cap.
Why server-side matters
Client-only firing ranges feel crisp locally then lie in live play because spread, recoil, and hit registration differ. Warmup must run on the match server (or a thin staging shard with identical weapon tables) so the first live bullet behaves like the last warmup bullet. Replicate the same tick rate, movement accuracy penalty, and ADS multipliers you use in combat.
Practice range mode taxonomy
One flat shooting gallery is not enough. Author distinct lanes players can reach in under ten seconds on foot:
- Static wall — infinite ammo, distance markers at 10/20/30 m, head-box decals. Used for flick and crosshair verification.
- Moving bots — strafe-only silhouettes on rails; optional peek-out timing. Trains tracking without full AI cost.
- Recoil lane — tall wall with tick marks; spray a full mag and read pattern drift against live recoil tables.
- Utility sandbox — grenade ghosts, smoke volumes, flash cones; charges refill on cooldown, never touch match economy.
- Movement drill — jump pads, counter-strafe gates with on-screen velocity readout for advanced players.
Each lane should be visible from spawn so players are not lost in a maze. Competitive titles often mirror one bombsite layout slice so angle familiarity transfers — Harbor Arena copied Site B triple-box geometry at 70% scale.
Bot and target rules
Warmup bots are not PvE enemies. They should:
- Respawn instantly on kill with no score credit.
- Share hitbox dimensions with player models (no inflated heads).
- Never deal damage unless you run a mutual-combat drill mode.
- Die in one headshot / N body shots using live weapon damage — no separate “range-only” HP unless clearly labeled.
Ranked caps and abuse prevention
Uncapped warmup becomes queue dodging and intel gathering. Hard rules Harbor Arena adopted:
- Time ceiling — 60 s ranked, 120 s casual; countdown visible in HUD.
- No live-map intel — range geometry must not reveal off-limit sightlines into the real map (use abstract props or fog walls).
- Economy isolation — warmup kills do not grant credits; utility does not persist into buy phase.
- Settings lock — sensitivity changes allowed; resolution scale changes blocked after roster lock to prevent stutter exploits.
- Early start vote — supermajority can skip remaining warmup; minority cannot force extension.
Custom games and private servers expose sliders: bot speed, infinite utility, damage logs — but ranked stays bounded.
Harbor Arena refactor walkthrough
Before the range, Harbor Arena dropped players from black loading screen into pistol round with only a buy menu timer. Complaints clustered on “first round feels random.” Designers initially added a five-second “shoot anywhere” grace in spawn — that trained bad habits (spraying at teammates) and overlapped freeze time.
The shipped solution:
- Inserted
WARMUP_RANGEphase after all ten players loaded map assets but before economy seed. - Cloned live weapon ScriptableObjects — zero duplicate balance tables.
- Added moving bot lane with strafe speed matching average duel peek velocity.
- Surfaced optional sensitivity overlay (cm/360 estimate) without leaving range.
- Telemetry: first-round hit rate, warmup skip rate, time-to-first-shot after phase change.
Results after two weeks: first-round win rate variance across players dropped 19%; reported “unfair pistol” tickets fell 44%; only 7% of players voted to skip before the timer expired.
Technique decision table
| Approach | Best for | Tradeoff |
|---|---|---|
| No warmup (instant start) | Arcade modes, very short rounds | Cold-start inaccuracy; higher early churn |
| Spawn grace shooting | Fast prototypes | Team damage, overlaps buy phase, bad habits |
| Separate aim-trainer exe | Esports partners, content creators | Stat mismatch; most players never open it |
| Bounded server warmup range | Ranked tactical shooters | +5–15 s queue time; map art cost |
| Persistent hub range | MMO hubs, live-service social spaces | Not tied to match server; stat drift risk |
Common pitfalls
- Duplicate weapon stats — range rifles use easier recoil; live match feels like bait-and-switch.
- Warmup longer than freeze — players tune in range then rush buy menu; invert time budgets.
- Teammate damage on — griefing and accidental TKs before scores matter; disable or redirect to solo lanes.
- Intel leaks — range overlooks real bombsite; treat as competitive integrity bug.
- No skip path — veterans rage when forced to wait; always allow early-ready vote.
- Audio mismatch — suppressed footstep mix in range; first live round sounds alien. Mirror mix buses.
- Mobile / controller ignored — range assumes mouse; add aim-assist preview lane for fair onboarding.
Production checklist
- Add
WARMUP_RANGEto match phase FSM with server authority. - Reuse live weapon, spread, and damage tables — no range-only tuning.
- Author static wall, moving bots, recoil lane, and utility sandbox within 15 s walk from spawn.
- Set ranked time cap with visible countdown and early-ready vote.
- Isolate economy: no credits, no carried utility into buy phase.
- Block sightlines and geometry that reveal live map intel.
- Mirror netcode tick rate and hit registration from live rounds.
- Telemetry: first-round hit rate, skip rate, warmup duration histogram.
- Playtest cold-start players vs warmed players at 40–80 ms latency.
- Document custom-server sliders separately from ranked defaults.
Key takeaways
- Warmup is a match phase with identical combat fidelity, not a client menu.
- Multiple short lanes beat one generic gallery for onboarding depth.
- Ranked needs time caps and skip votes to prevent queue abuse.
- First-round outcomes improve when muscle memory warms before economy stakes attach.
- Harbor Arena cut cold-start pistol losses 58% → 12% with a 60 s server range and live weapon parity.
Related reading
- Game match lobby and pregame systems explained — ready checks, roster lock, and countdown FSM
- Game round timer and freeze time systems explained — buy overlap and phase authority
- Game recoil and spread systems explained — bloom, recovery, and recoil walls
- Game tactical shooter design explained — round macro and stop-and-shoot tension