Skip to content
game · bevy · rust · wasm

Multiplayer isometric world inRust + Bevy

KBVE's flagship multiplayer browser experience — an isometric 3D world built entirely in Rust with Bevy 0.18, networked via lightyear, rendered through WebGPU in the browser, and shipped as a Tauri 2 native desktop app.

Client + authoritative server

The game runs as a client connecting to an authoritative headless Bevy server inside axum-kbve — WebTransport (QUIC/UDP) when available, falling back to WebSocket (TCP/TLS) automatically.

  • Primary — WebSocket at wss://kbve.com/ws, all browsers.
  • Low-latency — WebTransport on Chrome/Edge.
Bevy 0.18Engine
lightyearNetworking
avian3dPhysics
117+Items

What it ships

Features

Procedural terrain

Procedural isometric terrain with tile-based collision.

Day/night cycle

Dynamic lighting and fireflies driving a full day/night cycle.

Resource gathering

Harvest trees, rocks, ores, flowers, and mushrooms across the world.

Proto-driven inventory

A 16-slot inventory backed by 117+ proto-driven item definitions.

Creature AI

A creature system (frogs, fireflies) driven by behavioral AI.

Server-authoritative

Server-authoritative physics and entity replication.

Supabase auth

JWT authentication with Supabase.

Pixel-art shader

A pixel-art post-processing shader over the 3D scene.

What it is

Overview

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

Client / server

Architecture

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

Local dev

Running Locally

  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

Questions

Frequently asked

What is the KBVE Isometric game?

Isometric is KBVE's flagship multiplayer browser game — an isometric 3D world built entirely in Rust with Bevy 0.18, networked via lightyear, and rendered through WebGPU in the browser. It also ships as a Tauri 2 native desktop app.

How does Isometric handle networking?

The game runs as a client that connects to an authoritative headless Bevy server hosted inside axum-kbve. Transport is WebTransport (QUIC/UDP) when available, falling back to WebSocket (TCP/TLS at wss://kbve.com/ws) on Safari and older browsers.

How are items defined in Isometric?

Items are authored as MDX files in the itemdb collection and baked into the game binary at compile time. Run the sync-itemdb script to regenerate after adding items; the build currently ships 117+ proto-driven item definitions.