Portfolio case study
BF42Lite
A LAN-focused multiplayer FPS with a Rust-authoritative match simulation, shared Rust/WebAssembly infantry movement, and server-driven Conquest, squad, and vehicle systems.
Project status
BF42Lite is in development. No public playable build is linked yet.
Problem and design goal
The project explores how a LAN shooter can keep movement responsive while maintaining a consistent, server-owned match state. Its design prioritizes gameplay stability and immediate input feedback over graphical fidelity.
My role
I created and developed BF42Lite end to end, including its game architecture, client, authoritative Rust simulation, multiplayer protocol, and gameplay systems.
Implementation
- A Tauri and Three.js client sends sequenced input to a Rust host simulation that advances at a fixed 20 Hz and returns versioned MessagePack snapshots.
- The Rust infantry movement core is also compiled to WebAssembly for local prediction. Acknowledged snapshots reconcile that prediction, while remote-player interpolation stays in a renderer-only buffer.
- The authoritative match loop includes Conquest flag capture and ticket bleed, weapon combat and damage, rockets and grenades, bot behavior, spotting, squad objectives, and spawn and lobby flow.
- Vehicles have typed controllers for wheeled, tracked, helicopter, fixed-wing, and static-weapon roles, with configurable seats and weapon stations plus repair and ammunition logistics.
- Maps use a versioned JSON format with validation for combat zones and gameplay entities alongside terrain, environment, roads, assets, and collision metadata.
Engineering trade-off
Only infantry movement is shared across the Rust host and the WebAssembly client; combat, objectives, bots, and vehicle state remain in the authoritative host simulation. This gives local movement a prediction path while making snapshot reconciliation and protocol compatibility central parts of the design.
Engineering outcome
I've got the core architecture in place: clients send input, the Rust host advances the match, and snapshots bring clients back in sync. Infantry movement can be predicted locally, while combat, Conquest, squads, bots, and vehicles stay on the host.
Current scope
I'm building BF42Lite as a LAN-focused multiplayer FPS. The current code brings together the Rust match host, client-side infantry prediction, and the combat, squad, bot, and vehicle systems. There's no public build to try yet.
Public access
The source repository is private, and no public demo or product link is available yet.
Back to projects