FPS Demo

Simulation and Discussion from a FPS lover

Exploring Key Features in FPS Games

The basic logic of FPS is extermely simple, but it's the game-specific features that made them different and interesting

Bullet Spread

Thebullet spread feature introduces realistic inaccuracy by applying a bivariate normal distribution to the bullet's direction. Using the Box-Muller transform, two independent random values are generated to model horizontal and vertical spread, scaled by a spreadIntensity factor. This ensures that bullets deviate naturally around the center, with most shots clustering near the target point while a few spread further out. The result is a balanced and realistic shooting experience that mimics natural dispersion patterns.

Movement and Precision

This movement code requires counter-strafing for precision by tying player motion directly to input and maintaining momentum-based mechanics. Stopping immediately requires intentional counter-input to nullify movement. This design introduces a skill-based element where players must actively "counter-strafe" — applying movement in the opposite direction — to stabilize their position for accurate aiming or shooting. By rewarding precise control and timing, this mechanic adds depth to gameplay, ensuring that stationary shooting is more accurate, while movement introduces natural imprecision, encouraging players to balance mobility and precision strategically.

Link to Github: