SaBR: Shoot, Block, Reload
Playable prototypeA real-time duel with three rules: shoot punishes reload, block reflects shoot, and reload banks the next shot.
At a glance
- Outcome: Builds a duel where shoot punishes reload, block reflects shoot, and reload banks the next shot. KnownBetter Studios publishes SaBR; the repo, screenshots, and earlier copy use SBR.
- Status: Runs playable Solo Drill against three AI tiers with full games and sets, verified headlessly with screenshots. No playtest is documented. The engineering roadmap targets iOS; an August 2026 studio document plans desktop first and leaves a mobile SKU undecided, with no export preset for either.
- Role: Solo.
- Stack & libraries: Godot 4.6, GDScript, ENet for LAN.
- Validation: Runs 43 headless scripts frame by frame against the real duel controller. Check code exceeds game code; a pure combat module avoids the scene tree.
- Limitations: Records no release evidence. The signoff has 60 blank fields, all 36 checklist boxes are unticked, the playtest report is empty, and the never-used known-issues log provides no clean bill of health. The LAN matrix was deferred, not passed, so parity remains unproven.
Combat rules
Runs combat temporally, not by turns. Shoot commits for one-third of a second; reload commits longer and pays out at the end. Damage during reload removes the stack; one frame later does not. Block raises a shield immediately; arrival during its active window, down to the final millisecond, determines conversion.
Replaced paired combat resolution with independent, overlapping timers. Attacks finish out of order; later commitments can land first. Movement now changes where a duellist is when a projectile arrives.
Depth and match structure
Defines four constraints: symmetry, full readability, committal actions, and no parallel resources. Six of eight depth flags are off. Perfect block awaits a parry rewrite; reload feint was cut, while clash cancellation and post-hit momentum were never enabled. Reload stacks are the only resource: no meter, cooldown, ultimate, or second currency.
Treats Overload as shoot, not a fourth action. It spends the whole magazine, deals double damage when open, and single damage through block. The documented exception neither reflects Overload nor gives the blocker a stack.
Uses cover to restrict edge responses and sudden death to prevent stalling. Runs games and sets instead of rounds under the tagline, “commit the read, then run it back.”
AI and touch input
Charges every telegraph against the rival’s initiative. Rookie gives nearly half a second of warning; Ace gives one-fifth as much. The rival uses the player’s aim assist, receives no hidden information, and cannot plan unseen bank shots.
Changes abilities, not speed. Rookie cannot juke or overload and never lies. Duelist adds one committed sidestep without frame-by-frame re-evaluation. Ace adds Overload and lies about roughly one-quarter of its tells. Each tier draws from its own seeded randomness, reset per round only in its counters, so the rival doesn’t replay the same opening every time.
Gives touch more attention than the rules because commitment windows require clear input. Provides symmetric aim, editable layouts, and twin-stick routing through modals. The HUD defines lane colours: yellow reaches the rival, red hits cover, gray means empty.
LAN and release evidence
Provides lobby entries for Host Duel and Join Duel plus a networking layer. The test rig and deployed device have an artifact digest and deploy log. The matrix would run two full sets, force timeouts on each peer, and check state divergence; its rows remain blank.
A documented decision cleared a solo-feel pass before the matrix, named the risk, and reattached it to the next release barrier. Set and match replication remains unproven on real LAN. Release-candidate signoff has not started.
Commits and headless checks cannot establish device feel, thermal behavior, LAN parity, or player understanding. The status remains playable, not multiplayer; only Solo Drill has been exercised.
From the current build







