How it works

ProAim is written in Rust on the Fyrox engine, client and server both. These are the decisions underneath it that you can feel while playing.

Rust
Client and server
192 Hz
Tick and snapshot rate
UDP
Transport
~127k
Lines of game code
01Netcode

Authoritative server, predicting client.

The server simulates the match and is the only thing allowed to decide what happened. Your client predicts your own movement immediately and reconciles when the server's answer arrives, which is why moving feels instant while nobody can move somewhere the server did not agree to.

Everything runs at 192 ticks a second, and a snapshot goes out on every one of them. Where a behaviour could sensibly go either way, it goes the way CS2 does it - that is a deliberate rule, not a coincidence.

02Visuals

Every effect is triangles.

There is not a single sprite sheet or billboarded particle in the game. Muzzle flashes, sparks, blood, smoke, fire, tracers, bullet holes and the crosshair are all generated geometry. It costs more to build than a flipbook and it never falls apart when you walk up to it, view it from the side, or look at it on a screen larger than the one it was authored for.

03Sound

The map is part of the mix.

Sources are mono and spatialised with HRTF, so direction is carried by the same cues your ears use in a room. What is between you and a sound is measured against the real geometry: each wall in the way takes off level and rolls off the treble, and the reverb you hear is the room you are actually standing in. Every sound in the game is level-matched by measured loudness rather than by ear.

04Testing

The test is the game.

There is no mocked test suite. Every test launches the real client and the real server, opens real windows, renders real frames and talks over a real socket - the only difference from a human playing is that the input comes from a script instead of a mouse, through the exact same struct.

Those runs go through a network conditioner that rolls a different profile each time: LAN, home internet, wifi, mobile, and a deliberately bad one. A feature that only works on a perfect connection fails its own test.

05Failure

It crashes instead of limping.

If a map, a texture, a sound or the network cannot be loaded, the game stops and says which file and why. It never quietly carries on with the collision missing or the spawns unknown, because a match played in a half-loaded world wastes more of your evening than a crash on startup does.