Known Limitations & Roadmap
Honest accounting of what works, what’s missing, and what’s planned.
v0.1 (Current)
What works:
- 2D sprites, tilemaps, animation, collision, projectiles, health/damage, AI behaviors
- 3D voxel worlds with 43 block types, 20 biomes, procedural terrain, caves, ores
- FPS controller with WASD, mouse look, jump, fly, sprint, swim
- DDA raycasting for block breaking/placing
- WebGPU with automatic WebGL2 fallback
- Procedural shader textures (no texture files needed)
- 3.4MB WASM binary, 39 unit tests
What’s limited:
- Fixed world size — Worlds are a flat array in memory (max ~256x64x256). No infinite/chunk-streaming worlds yet.
- No block lighting — Only vertex ambient occlusion and a fixed sun direction. No torches, no dynamic lighting.
- No audio — The audio subsystem is scaffolded but not wired to the game loop.
- No mobile touch input — FPS controller requires keyboard + mouse.
- No frustum culling — All chunks are drawn every frame regardless of camera direction.
- No texture atlases — Procedural textures only. No way to load custom block textures.
- No vegetation geometry — Flowers, grass, mushrooms render as full cubes, not cross-billboards.
- No water flow — Water is a static block type, not a fluid simulation.
v0.2 (Next)
- Audio system (sound effects, music, spatial audio)
- Texture atlas loading for custom block textures
- Mobile touch input
- Chunk-based infinite worlds
- Frustum culling
- Per-block lighting (torches, propagation)
v0.3
- Multiplayer (WebSocket/WebRTC)
- Entity networking and state sync
v0.4
- Platform polish: dashboard analytics, game thumbnails, game homepages
- CDN-hosted asset library (sprites, sounds)
v0.5
- Marketplace for user-created assets
- Mod system
- Custom shaders via user-provided WGSL snippets