v0.4.2 — Impulse-based physics engine

Build games with
React

A 2D game engine that feels like building a website. Drag-and-drop in the editor or write real TypeScript — then publish to the web and share with the world.

$npx create-cubeforge-game my-game

Code that reads like a scene

Entities are React components. Physics, sprites, and behavior compose naturally — just like building a UI.

Player.tsx
1function Player({ x, y }) {
2 return (
3 <Entity id="player" tags={['player']}>
4 <Transform x={x} y={y} />
5 <Sprite width={32} height={48} color="#4fc3f7" />
6 <RigidBody />
7 <BoxCollider width={28} height={44} />
8 <Script update={movement} />
9 </Entity>
10 )
11}

Everything you need

A complete game engine in a single npm package. No configuration, no boilerplate.

60 Hz Fixed Timestep

Deterministic physics with fixed-step integration. Same behavior at 30 FPS or 144 FPS — no frame-rate dependent bugs.

ECS Architecture

Archetype-based Entity Component System with cached queries and selective invalidation. Fast iteration over thousands of entities.

Impulse Physics

Sequential impulse constraint solver with warm starting, Coulomb friction, CCD, joints, and contact manifolds. Rapier-grade quality.

10+ Collider Shapes

Box, circle, capsule, convex polygon, triangle, segment, height field, half-space, and tri-mesh. Plus compound colliders.

Zero Dependencies

No Three.js, no Pixi, no Rapier WASM. Just React and a Canvas2D renderer. Under 60 KB gzipped total.

Plugin System

Extend the engine with custom systems via definePlugin(). Register systems, hook lifecycle events, declare dependencies.

Publish Anywhere

Static HTML + JS output. Deploy to S3, Netlify, Vercel, or GitHub Pages. Share games with a URL.

Built for Learning

Declarative API that reads like English. Perfect for kids and beginners — if you can build a React app, you can build a game.

Start building in seconds

Use the drag-and-drop editor or scaffold with code. Hot reload, TypeScript, and a playable template out of the box.

1Create
npx create-cubeforge-game my-game
2Develop
cd my-game && pnpm dev
3Ship
pnpm build && deploy