Three.js Game Engine for Single & Multiplayer

MavonEngine is a Three.js game engine built for real-time browser games — the only one with server-authoritative physics built in. Build single-player or multiplayer 3D games with a unified server-client architecture, integrated physics, and real-time networking.

server.ts
import Server from '@mavonengine/core/Networking/Server/Server'
import Player from './Base/Player'

export default class GameServer extends Server<Player> {
  // A client connected: return its player, the server adds and syncs it
  protected onConnection(channel) {
    return new Player(channel.id)
  }

  // Inputs arrive in order and run on the authoritative tick
  protected onCommand(command) {
    const player = this.game.world.entities.items.get(command.playerId)
    player?.applyInput(command)
  }

  // Only sync entities within 200 units of each player
  getStateSyncDistance() {
    return 200
  }
}

Everything in one cohesive package

No more piecing together libraries. MavonEngine ships rendering, physics, networking, animation, particles, and debugging as a unified whole.

    Full-Stack Multiplayer Architecture

    Shared Entity System — write once, run on server and client. Automatic state synchronization with bandwidth optimization, distance-based culling for entity visibility, and hash-based change detection to minimize network traffic.

    Integrated 3D Physics with Rapier

    Kinematic character controller with slope climbing and sliding. Configurable parameters — 45° climb, 30° auto-slide. Full body & collider management and physics debug visualization in real-time.

    Advanced 3D Rendering with Three.js

    MavonEngine is a Three.js game engine at its core — giving you the full power of Three.js with custom GLSL shader support and debug rendering modes including wireframe, armature, and physics overlays.

    Real-Time Multiplayer Networking

    WebRTC-based communication for real-time data channels. Bandwidth tracking & monitoring, command buffering & processing across network latency, and server health monitoring with built-in HTTP endpoints.

    Skeletal Animation System

    Animation state management with logical organization. Smooth fade transitions with configurable duration, GLTF model support with Draco compression, and efficient skeleton cloning for instanced models.

    Particle Effects Framework

    Built-in effects — rain and smoke ready to use. Custom shader support for unique particle visuals.

    Scenes Shared by Client & Server

    One JSON scene file for both sides — the client builds what is rendered, the server builds colliders and game logic. Save in the editor and the server reloads the map for every connected player.

    Engine Plugins

    mavonengine install adds plugins with client, server and asset parts. Configure them in mavonengine.json; mavonengine build ships only the assets your game actually uses.

    Gamepad Support

    Xbox, PlayStation and generic controllers out of the box — radial deadzones, layout-aware button labels, analog triggers and rumble.

    Live Server Monitoring

    Tick time against the tick budget, CPU, bandwidth, players, logs and HTTP requests — in the terminal with mavonengine dashboard, or in the browser behind a login.

    AI Assistant Support (MCP)

    mavonengine mcp lets any AI coding assistant inspect your running game: server metrics, scenes and entities, renderer stats, console, screenshots and frame traces from the browser tab — and read these docs.

    Latency Simulation

    Test your netcode against artificial latency, jitter and packet loss before your players do.

Level Editor

Early WIP — a level editor that boots inside the running game and stays connected to the server. Edit the scene, press Ctrl+S, and the server reloads the map for every player. Dock your own tools as custom panels.

Live Server Monitoring

Watch your game server while it runs: tick time against the tick budget, CPU, bandwidth, world and physics stats, connected players, logs and HTTP requests. In the terminal with mavonengine dashboard, or in the browser with the @mavonengine/http-monitoring plugin.

MavonEngine server monitoring dashboard: CPU, network and tick charts, world stats, players and logs

Prefabs

Drop in ready-to-use prefabs built by the community — from environment assets to gameplay elements. Pull any prefab directly into the editor, tweak it, and ship. Anyone can publish prefabs to the community registry.

Grass — Lush, performant grass fields with wind simulation and LOD support. Drop it into your scene and configure density, sway, and color in seconds.

Water — Basic water shader. 3 LOD + Basic customizations — ready to use out of the box.

Built different

Most multiplayer browser games are held together with duct tape. MavonEngine is a Three.js game engine designed from the ground up as a unified system — so everything works together out of the box.

    Complete Solution

    Rendering, physics, networking, entity management, asset loading, animation, particles, and debugging tools in one cohesive package.

    Server + Client Unity

    Write game logic once and it works on both server and client. The shared entity system eliminates duplication and drift. The server runs a simplified hitbox scene alongside the client's full Three.js world — enabling authoritative hit detection, raycasting, and spatial queries without trusting the client.

    Networking Built In

    Distance-based culling, hash-based change detection, bandwidth monitoring, and automatic state synchronization — all built in, none bolted on.

    Developer Experience

    One command to create and run a project, a live server dashboard, Tweakpane debug panels, physics overlays, MCP support for AI assistants, and comprehensive TypeScript types. Catch bugs fast, ship faster.

    Extensible Architecture

    Abstract base classes let you customize servers, entities, and game logic without fighting the framework. Engine plugins add client, server and editor features as npm packages. Designed to grow with your project.

What can you build?

MavonEngine is a Three.js game engine purpose-built for browser games — single-player or multiplayer. Anything that needs players, physics, and a world in the browser.

    Action RPGs

    PvP Combat Games

    Open World Multiplayer

    Physics-Based Games

    Single-Player 3D Games

Frequently Asked Questions

Build Multiplayer 3D Games Faster

Server + Client + Physics + Networking + Rendering + Scenes + Animation + Particles + Plugins + Tooling. All in one package. All working together. All TypeScript.