Grit is a VR tournament-paintball trainer that Deadbolt Custom Works released into Early Access in 2020. Speedball is played on a symmetric field of inflatable bunkers. Before an event, teams study that event’s layout: breakout lanes, blind shots, movement routes, and what each bunker exposes. Grit lets a player build the layout on a monitor and then walk and shoot it at human scale in VR.
The released trainer is single-player, with no AI or enemies. The field builder uses the 2022 NXL bunker set and saves layouts as small text files that players can exchange outside the game. A layout can include targets; the training controls cover firing mode and rate, paint breakage, ammunition, and controller or tracker position. In VR, one controller or a Vive Tracker supplies the gun, and the player can teleport around the field to inspect it. Steam lists SteamVR with standing or room-scale play.
The early releases
One week after release, the week-one update moved saved layouts into My Documents\Grit Paintball. Existing players had to move their files by hand. The same patch changed target indexing and warned that targets could move or disappear from existing layouts. Persistence was already part of the product, and the migration contract arrived after users had data.
The NXL update promoted a beta carrying the 2022 bunker set along with NXL and NXL Europe layouts from 2020 and 2021. A later patch was still correcting the rotation of the new wing bunkers. Changes to the physical bunker set had to fit both the model and players’ saved layouts.
The ownership boundary
The ownership announcement records the transfer. Deadbolt no longer owned the rights or intellectual property. I co-own Grit through Infima Labs, my small personal business, which I formed with the game’s original developer, Jason Gardiner. Steam lists the business as developer and publisher.
The single-player trainer and its early updates were already there. We took responsibility for development from December 2022 onward.
In August 2026, Steam still listed the game and warned that the last developer update was more than three years ago. Its multiplayer plans have not reached a public release.
The next version
The last official news post is the August 2023 development update. It described an archaeological first step: understand the inherited code, then compartmentalize it so later work did not have to keep crossing the same boundaries. It named an engine-independent “Arena Core” for input, file management, development tooling, cross-platform work, and multiplayer. It reported 40–70% polygon-count reductions on revised models and discussed additional modes, platforms, and networking work.
That gap is real. In roughly four years I have rewritten the next version three or four times and shipped none of those rewrites. I am drawn to the structural work, and I will readily restructure it again when I find a model that fits better. The last stretch of polish has been harder. AI has helped with that and also made another rewrite feel cheaper than it is.
I have kept Unity because no alternative has given me a compelling reason to migrate. Within it, the newer architecture uses an entity-component-system model. Multiplayer needs the same simulation to run in more than one place, and I want high-fidelity event data even during local practice. A tournament paintball moving at the 300-foot-per-second field limit travels about a metre between frames at 90 Hz. The useful record cannot begin and end with what the headset happened to draw each frame.
The stable target through all of that movement is fidelity: field layouts that can be tested at human scale, including narrow lanes and bounce shots, with a simulation precise enough that the practice means something. Recent work with AI and Spice has helped, but most of the current development is not ready to describe publicly.
The layout problem continued elsewhere
One thread did continue in public. I opened the layoutc repository around the same domain object: a speedball field layout. It converts layouts among JSON, PNG splatmap atlases, and TSV, and includes NXL event layouts. The package reached PyPI with converters and reference layouts.
