Skip to content

Isometric

The Isometric game is KBVE’s flagship multiplayer browser experience — an isometric 3D world built entirely in Rust with Bevy 0.18, networked via lightyear, and rendered through WebGPU in the browser.

Bevy 0.18

Full ECS game engine compiled to WASM with WebGPU rendering

Multiplayer

lightyear networking with WebSocket and WebTransport (QUIC)

Physics

avian3d rigid-body physics with isometric collision

Cross-platform

WASM web app + Tauri 2 native desktop

The game runs as a client that connects to an authoritative server hosted inside axum-kbve. The server runs a headless Bevy app with lightyear server plugins and avian3d physics.

TransportProtocolPathUse Case
WebSocketTCP/TLSwss://kbve.com/wsPrimary (all browsers)
WebTransportQUIC/UDPhttps://wt.kbve.com:5001Low-latency (Chrome/Edge)

WebTransport is preferred when available. Safari and older browsers fall back to WebSocket automatically.

CratePurpose
bevy_inventorySlot-based inventory with auto-stacking
bevy_itemsProto-driven item database from Astro itemdb
bevy_camIsometric camera controller
bevy_kbve_netProtocol types shared between client and server
bevy_taskerAsync task bridge for WASM/native
  • Procedural isometric terrain with tile-based collision
  • Day/night cycle with dynamic lighting and fireflies
  • Resource gathering (trees, rocks, ores, flowers, mushrooms)
  • 16-slot inventory backed by 117+ proto-driven item definitions
  • Creature system (frogs, fireflies) with behavioral AI
  • Server-authoritative physics and entity replication
  • JWT authentication with Supabase
  • Pixel-art post-processing shader
  1. Full local stack (game + server):

    Terminal window
    nx run isometric:quick
  2. WASM dev only (no server):

    Terminal window
    nx run isometric:dev
  3. Desktop build (Tauri):

    Terminal window
    nx run isometric:build:tauri
  4. Connect desktop to production:

    Terminal window
    GAME_SERVER_URL=wss://kbve.com/ws cargo run -p isometric-game

Items are defined as MDX files in the itemdb collection and baked into the game binary at compile time. To regenerate after adding items:

Terminal window
node apps/kbve/isometric/scripts/sync-itemdb.mjs