How plasma4/depthwell works
Depthwell is a browser-based procedural mining game. The player supplies keyboard and pointer input; the browser runtime runs the game loop and WebGPU presentation, while Zig/WASM implements game state and world behavior. The README documents mining, inventory, crafting and smelting, portal-driven depth changes, procedural worlds, debug controls, and saves. The excerpts show the browser/WASM setup and save-worker protocol, but most Zig implementation is unsampled, so internal gameplay links are omitted where their callers cannot be verified.
Main entry points: saveManager.ts Save Manager · engine.ts Browser Engine · engineMaker.ts Engine Setup · procedural.zig Procedural World
Components 21
Browser Runtime
- Game Loop
src/main.ts - Input Handling
src/inputManager.ts - Engine Setup
src/engineMaker.ts - Browser Engine
src/engine.ts - WASM Interface
src/enums.ts - WebGPU Rendering
src/engine.ts - Game Shader
src/shader.wgsl
World and Progression
- Seed Generation
src/seeding.ts - Procedural World
zig/state/procedural.zig - World State
zig/state/world.zig - Portal Depths
zig/state/portal.zig
Gameplay Systems
- Player State
zig/state/player.zig - Mining
zig/input/mining.zig - Inventory
zig/input/inventory.zig - Crafting and Smelting
zig/menus - Game Simulation
zig/state/tick.zig
Persistence
- Save Manager
src/saveManager.ts - Emergency Save Worker
src/saveWorker.ts - World Save State
zig/state/save.zig - Browser OPFS
Other components
- Player
Connections 21
- Player → Game Loop: plays
README.md - Game Loop → Browser Engine: runs ticks
src/main.ts - Engine Setup → Browser Engine: creates
src/engineMaker.ts - Engine Setup → Save Manager: initializes
src/engineMaker.ts - Browser Engine → WASM Interface: uses bindings
src/engine.ts - Engine Setup → Game Shader: loads shader
src/engineMaker.ts - Browser Engine → WebGPU Rendering: renders game
README.md - Player → Input Handling: provides keys
README.md - Player → Mining: mines blocks
README.md - Player → Inventory: selects items
README.md - Player → Crafting and Smelting: uses interactables
README.md - Procedural World → World State: generates world
- Seed Generation → Procedural World: seeds maps
- Player State → Portal Depths: changes depth
- Portal Depths → Procedural World: inherits materials
README.md - Game Simulation → Player State: advances state
- Player → Portal Depths: uses portals
README.md - Save Manager → World Save State: serializes state
- Save Manager → Emergency Save Worker: sends emergency saves
src/saveManager.ts - Emergency Save Worker → Browser OPFS: writes emergency slot
src/saveWorker.ts - Save Manager → Browser OPFS: stores saves
src/saveManager.ts