Web Engine Docs
Preparing documentation
Use the search bar to quickly find any topic
Preparing documentation
Use the search bar to quickly find any topic
The official guide to Web Engine — a production-grade web game engine built for WebGPU/WebGL. Learn the editor, embed the runtime in ten lines, and ship responsive multiplayer worlds without wrestling low-level boilerplate.
import { createEngine } from "@web-engine-dev/core";import { createSceneEntity } from "@web-engine-dev/core/ecs";import { Transform } from "@web-engine-dev/core/engine/ecs/components";import { addComponent } from "bitecs";const engine = createEngine({ autoStart: true });const { world } = engine;const eid = createSceneEntity(world);addComponent(world, Transform, eid);Transform.position.y[eid] = 1;
New to Web Engine? Start here to learn the fundamentals, launch the Studio, or embed the runtime library without the editor. Each path is distilled to the fewest possible steps so you can see results immediately.
Get up and running with Web Engine in under 5 minutes.
Embed the engine as a lightweight runtime with a 10-line bootstrap, zero-GC defaults, and explicit control over render and physics backends.
Install Web Engine locally for development.
Create your first game project step by step.
Learn the editor interface and navigation.
Recommended
Want to integrate the engine like a library? Start with the Runtime Library guide — it covers the 10-line bootstrap, renderer selection, physics bridges, and headless/server flows.
Understand the fundamental architecture that powers Web Engine. Built on the Entity-Component-System (ECS) pattern for maximum performance.
Data-oriented design for optimal performance.
50+ built-in components for game logic.
Game loop phases and system execution.
Performance Tip
Web Engine uses bitECS under the hood, achieving 60-120 FPS with 10,000+ entities. The zero-GC architecture ensures smooth gameplay without stutters.
Write game logic in JavaScript or TypeScript. The scripting API provides intuitive access to transforms, physics, input, and more.
export default (api: ScriptApi) => {const speed = 5.0;return (dt: number, time: number) => {// Read inputconst { move, jumpDown } = api.input;// Move playerif (move.x !== 0 || move.y !== 0) {api.controller.move({x: move.x * speed * dt,y: 0,z: move.y * speed * dt});}// Jumpif (jumpDown && api.controller.isGrounded) {api.applyImpulse({ x: 0, y: 10, z: 0 });}};};
Explore the powerful features that make Web Engine a complete game development solution.
Dive deeper into specific topics and explore advanced features.
Deep dive into engine internals and registry-first design.
Tips for achieving optimal frame rates and memory usage.
Complete documentation for all built-in components.
Customize the engine for your brand and requirements.
Need Help?
Join our Discord community for support, share your projects, and connect with other developers. Check out the GitHub repository for bug reports and feature requests.