GAME · TRUE 3D · THREE.JS + WEBGL_
A complete first-person shooter in a single self-contained HTML file. Real 3D via Three.js / WebGL: a maze with collision and gravity, hitscan shooting, five escalating waves, a projectile-lobbing boss, collectibles and a live minimap — wrapped in a tongue-in-cheek Jak & Daxter-style story. No build step, no assets: every texture is drawn on a <canvas> and every sound is synthesised with WebAudio.
The whole game runs right here in the page — click the frame, then CLICK TO PLAY to lock the mouse. Press Esc to release it. Loads Three.js from a CDN on first run, so it needs an internet connection — after that it's cached. Best in a desktop browser with a mouse; pointer-lock and audio start on your first click.
MURKFALL is a from-scratch FPS that fits in one file. There's no engine and no asset pipeline — Three.js handles the WebGL plumbing, and everything else (level, collision, AI, combat, particles, HUD, sound) is hand-written. The maze is an InstancedMesh built from a tile-string map; movement uses circle-vs-AABB collision so you slide along walls, with gravity and jumping on top. Shooting is hitscan via a raycaster from the crosshair, and enemies are simple steering agents that path toward you and deal contact damage.
Raycast shooting with a muzzle-flash point light, recoil, impact sparks, a reload cycle and a hurt vignette — plus a low-poly gun viewmodel that sways and kicks.
A tile-map level rendered as one instanced mesh; circle-vs-AABB resolution slides you along walls, with jump and gravity and pointer-lock mouse-look.
A hand-tuned spawn plan escalates each "corridor": red grunts, fast fragile wisps that swarm, and slow tanky brutes that hit hard. Clear one to earn a Power Cell; charge all five to unseal the Heart of the Silo.
The Heart (wave 6) is a giant Murk-drone with its own health bar and a heavy guard detail. It lobs Murk projectiles from range on top of melee, and enrages below a third HP — faster, with a three-shot spread. Dodge, strafe and break line of sight.
Earn a Power Cell per corridor and vacuum up 22 glowing collectibles scattered through the maze; grab them all for a score bonus.
A canvas minimap plots walls, your facing, enemies, the boss and orbs in real time; your best run persists in localStorage with a NEW BEST flag.
Gunshots, reloads, hits, orb chimes and the boss roar are all synthesised live with WebAudio — no audio files ship at all.
A silent hero and his sidekick Rax — mutated by a vat of Murk — quip over a radio bar through every wave, with the classic "still not cured" ending gag.
<canvas> at runtime; all sound effects are generated with WebAudio oscillators and noise bursts.THREE.Raycaster from screen-centre does hitscan damage; enemies carry per-unit speed, reach and size so the boss collides and bobs correctly at scale.requestAnimationFrame loop.Want to tinker? Every knob — move speed, gravity, gun damage, mag size, wave scaling — lives in a CFG object at the top of the file, and the maze is just an editable string array. Open the game fullscreen →