KStrike is a fast-paced browser FPS deathmatch built with Three.js and Colyseus.
Made by AltF4 Games — Pradyum Mistry.
- Multiplayer deathmatch with public matchmaking and private room codes
- D2 desert arena and a compact training arena
- First-person movement with sprinting, crouching, jumping, momentum, and collision
- AR-01 automatic rifle and switchable SG-12 shotgun
- Networked blocky player avatars with idle, movement, crouch, jump, fire, and reload animation
- Kill feed, scoreboard, end-of-match leaderboard, and kill-streak cards
- Remote-player firing effects, weapon audio, hit markers, bullet decals, and out-of-map recovery
| Action | Control |
|---|---|
| Move | WASD |
| Look / fire | Mouse / left click |
| Sprint | Shift |
| Crouch | Ctrl or C |
| Jump | Space |
| Reload | R |
| Switch weapons | 1 / 2 or mouse wheel |
| Leaderboard | Hold Tab |
| Pause menu | Esc |
Install dependencies once:
npm install
npm --prefix server installStart the client:
npm run devIn a second terminal, start the multiplayer server:
npm run dev:serverOpen the Vite URL shown in the client terminal. Use a normal window and an incognito window to test a local multiplayer match.
Create a production client build with:
npm run buildDeploy the frontend to Vercel. Set VITE_COLYSEUS_URL to the public WebSocket URL of the server, for example:
wss://kstrike-server.onrender.com
Deploy the Colyseus server as a persistent Node web service, such as Render, using render.yaml. The server exposes /health for host health checks.
After deploying the server, redeploy the Vercel frontend with the environment variable set.
The source is available on GitHub.
near_future_assault_rifle.glb— near future Assault rifle by Ahmed Abu Ajamiah, licensed under CC BY-SA 4.0.shotgun.glb— Low Poly Shotgun - Game ready by Koten, licensed under CC BY 4.0.- FN SCAR-Assault Rifle by CastleBravo, licensed under CC BY 4.0.
de_dust_2.glb— De_Dust 2 with real light by Neo_minigan, licensed under CC BY 4.0. The model page credits Valve for the original map.


