A flowing, breath-controlled, zero-HUD neon buoyancy music game built with Phaser and the Web Audio API.
ScubaFlow generates an immersive, glowing underwater cave system synchronized dynamically with any custom audio track you upload. Control your buoyancy, maintain your flow, and navigate the depths alongside your AI diving buddy.
- Procedural Cave Generation: Generates paths, obstacles, rhythm ripples, and collectible clusters directly from the rhythm and frequencies of any custom audio track (
.mp3,.wav,.ogg) uploaded by the player. - Buoyancy & Drag Physics: Simulated vertical motion using realistic lung volume dynamics and hydrodynamic drag. Hold the spacebar to inhale (increase lung volume and rise) and release to exhale (sink).
- Zero-HUD Design: No overlays or meters. All feedback is diegetic:
- Lung Volume: Indicated by the scale of your diver's chest and breathing synthesizer frequencies.
- Depth: Represented by ambient color shifts in the deep neon waters.
- Silt-Outs: Bumping into cave walls stirs up clouds of sediment, temporarily blinding you and resetting your flow multiplier.
- Diving Buddy AI: Your companion navigates safely alongside you using advanced terrain-clamping pathfinding, checking in with speech bubbles (
👌?,👌!) to help you recover your flow after silt-outs.
- Upload a Track: Click the uploader and select any audio file from your device.
- Control Buoyancy:
- Hold Spacebar to inhale and rise.
- Release Spacebar to exhale and sink.
- Collect Neon Debris: Guide your path precisely through glowing debris to increase your flow.
- Stay Centered: Avoid the ceiling and floor to prevent silt-outs.
To run the game locally on your machine:
- Open your terminal in the project directory.
- Start a simple static HTTP server (for example, using Python):
python3 -m http.server 8000
- Navigate to
http://localhost:8000in your web browser.
ScubaFlow is a 100% static client-side web application, making it ideal for hosting on GitHub Pages:
- Push this repository to your GitHub account:
git push origin main
- Navigate to your repository settings on GitHub.
- Under Settings -> Pages:
- Under Build and deployment -> Source, select Deploy from a branch.
- Under Branch, select
mainand click Save.
- Your game will be live at
https://<your-username>.github.io/scubaflow/.