Sandline Tactical FPS (sandline-threejs-fps) is an open-source, high-performance 3D browser first-person shooter built on Three.js, TypeScript, Vite, and the Rapier3D physics engine. Supporting desktop keyboard/mouse and responsive mobile touch controls, Sandline features tactical 3v3–10v10 round-based combat across multiple iconic maps (Dust2, Assault, Desert Town, Snow Arena), smart tactical bot AI, weapon recoil ballistics, a buy-zone equipment economy, and competitive Bloodstrike bounty rounds.
How It Works
Sandline Tactical FPS operates through structured, deterministic execution stages:
Three.js & Rapier3D Physics Core: Simulates weapon ballistics, raycast projectile dispersion, rigid body collisions, and player movement inertia.
Multi-Map Tactical Round Architecture: Features competitive 3v3 to 10v10 rounds across Dust2, Assault, Desert Town, and Snow Arena environments.
Tactical Bot AI & Flanking Logic: Coordinates non-player bots with pathfinding, cover-seeking behavior, coordinated grenades, and sightline checks.
Supply Economy & Weapon Arsenal: Accumulates bounties per elimination to purchase rifles, submachine guns, snipers, and tactical equipment.
Sandline Tactical FPS desert rifle first-person view with bot squad
Key Technical Features & Capabilities
Three.js & Rapier3D Physics: Simulates responsive character kinematics, weapon recoil climb, rigid body physics, and raycast projectile dispersion at native refresh rates.
Round-Based Tactical Modes: Delivers classic Dust2 bomb planting/defusal, Assault hostage rescue, and multi-round Bloodstrike bounty tournaments with persistent credit balances.
Advanced Bot Team AI: Coordinates up to 20 computer-controlled bots with pathfinding, cover-seeking tactics, flanking maneuvers, and spatial grenade throws.
Dual Desktop & Mobile Control: Features WASD/mouse controls for desktop alongside smooth virtual touch joysticks, aim zones, and fire buttons on mobile.
git clone https://github.com/xilinnihao-afk/sandline-threejs-fps.git
cd sandline-threejs-fps
npm install
npm run test:core
npm run dev
Open http://localhost:5190 in your browser.
How to Use & Workflow
1
Select Game Mode & Map: Choose Bloodstrike, Classic Dust2, or Arena combat and configure bot team sizes (3v3 to 10v10).
2
Purchase Equipment in Buy Zone: Press B during initial buy time to spend earned bounties on rifles (AK-47, M4A1, AWP), armor, and grenades.
3
Execute Tactical Objectives: Advance with AI teammates, hold choke points, use cover to break enemy sightlines, and plant/defuse the bomb.
4
Win Round Matches: Eliminate the opposing squad or complete map objectives to secure round victories and accumulate team bonuses.
Troubleshooting & Common Issues
Issue: Pointer lock fails to capture mouse cursor.
*Cause*: Browser security requires a direct user click inside the canvas viewport before locking the cursor.
*Resolution*: Click anywhere inside the main 3D game screen to engage pointer lock; press Esc to release.
Issue: Mobile frame rate drops in 10v10 matches on older devices.
*Cause*: High bot counts increase CPU physics simulation overhead on low-power mobile chips.
*Resolution*: Select 3v3 or 5v5 team configurations for optimal 60fps performance on mobile devices.
How to Use & Getting Started
## Installation & Setup Guide
### Direct Browser Play (Zero Install)
Launch the game directly at [https://ihca.cn/sandline/](https://ihca.cn/sandline/) on desktop or mobile.
### Building & Running from Source
```bash
git clone https://github.com/xilinnihao-afk/sandline-threejs-fps.git
cd sandline-threejs-fps
npm install
npm run test:core
npm run dev
```
Open `http://localhost:5190` in your browser.
Ready to run Sandline Tactical FPS?
100% Free & Open-Source native desktop software. Star the repository to support development.