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