ferravex
GitHub

Gameplay and reusable engine series

Forty changes, each delivered in its own branch and pull request. Runtime code uses workspace crates and std only. Simulation owns time, collision, rewards and accepted input; rendering is an adapter. GitHub Actions stays disabled for this series; validation is local. The APIs are available under ferravex_play::gameplay and ferravex_engine::gameplay.

Backlog

#FeatureDelivery
1Expiring, single-consumption command buffersPR 44, merged
2Timed score chainsPR 45, merged
3Bounded experience and level progressionPR 46, merged
4Seeded weighted reward tablesPR 47, merged
5Guaranteed pity rewardsPR 48, merged
6Distance-based pickup attractionPR 49, merged
7Fixed-capacity item inventoriesPR 50, merged
8Atomic crafting recipesPR 51, merged
9Capped upgrade ranks and offersPR 52, merged
10Magazine and reload cyclesPR 53, merged
11Charge-and-release actionsPR 54, merged
12Turn-limited homing steeringPR 55, merged
13Pierce and ricochet budgetsPR 56, merged
14Safe, deterministic spawn selectionPR 57, merged
15Authored wave sequencesPR 58, merged
16Interruptible interaction channelsPR 59, merged
17Stagger and poise recoveryPR 60, merged
18Delayed regenerating shieldsPR 61, merged
19Monotonic checkpoint statePR 62, merged
20Ordered trial splits and medalsPR 63, merged
21Neon Swarm kill-chain scoringPR 64, merged
22Neon Swarm earned weapon progressionPR 65, merged
23Neon Swarm magnetic health pickupsPR 66, merged
24Neon Swarm safe spawn admissionPR 67, merged
25Neon Swarm heavy-enemy staggerPR 68, merged
26Neon Swarm rechargeable player shieldPR 69, merged
27Neon Swarm magazine and reload rhythmPR 70, merged
28Neon Swarm buffered dash inputPR 71, merged
29Emberline collectible-chain scoringPR 72, merged
30Emberline checkpoint time trialsPR 73, merged
31Emberline earned air jumpPR 74, merged
32Emberline springboard routesPR 75, merged
33Emberline crumbling bonus platformsPR 76, merged
34Emberline ordered checkpoint recoveryPR 77, merged
35Orbit Breaker block-chain scoringPR 78, merged
36Orbit Breaker guaranteed reward dropsPR 79, merged
37Orbit Breaker paddle pickup attractionPR 80, merged
38Orbit Breaker opening ball-save windowPR 81, merged
39Orbit Breaker charged servesPR 82, merged
40Orbit Breaker precision return rewardsPR 83 (this change)

Each new module contains behavioral tests and its authoring contract. Game changes include real-input regressions and retain ordinary victory/loss tests. The delivery links above and validation record below track the completed work.

Composition guide

Game-loop recipes map every API to its authoring and authority contract. The runnable gameplay_recipe example composes waves, XP, upgrade offers, inventory, interaction and atomic crafting without a renderer.

Validation correction

PR 68's initial local check caught a Rust borrow error. It was merged before that failed result was handled. PR 69 corrects the borrow, and its local tests, strict Clippy and native/Wasm checks pass, including actual stagger and victory/loss regressions. Later feature publication always reruns the local check before push.

The initial Orbit browser input harness also lacked the existing host's performance clock. PR 78 repairs the mock and the routing regression passes.

Final local validation

Verified on 2026-10-16 with GitHub Actions disabled: all 38 local validation steps passed, including 630 Rust unit/integration/doc tests, workspace formatting, strict Clippy, the first-party dependency audit, and the runnable gameplay recipe.

Release native binaries and all fifteen release Wasm games built successfully. Native smoke runs produced validated PNGs for all fifteen examples at 180 frames, plus 1,800-frame runs for Neon Swarm, Emberline and Orbit Breaker. All web contract and real-Wasm suites, native multiplayer checks, both browser input harnesses, Rustdoc generation, the static site build and Python build-tool tests passed.

The renderer browser input mock now provides the runtime's performance clock and details settings export; the actual runtime input regression passes unchanged. Precision-return tests cover real paddle collision rewards, panel-hit eligibility, empty-bounce farming prevention, capped bonuses, invalid offsets and streak reset.

Live local browser checks confirmed Neon Swarm rendering, Emberline completing its route with a gold trial medal, and Orbit Breaker launching, scoring from panel hits and returning to ready after a lost life, with no warning/error console logs. Windows GNU and Apple ARM macOS targets passed compilation checks; this does not establish native runtime or physical-device support on those platforms.

Detailed local logs and machine-readable results are in target/gameplay40-validation/; PNGs are in target/gameplay40-smoke/ and target/gameplay40-changed-smoke/. These generated artifacts are not committed.