jgengine-api
JGengine — API Reference
The engine ships verbs and primitives; your game ships nouns (catalogs) and thin handlers. Read this before writing game.config.ts or any game content. Companion skills: jgengine-newgame (master blueprint + phased build to completion) and jgengine-verify (browserless scene gate) — read them before building. The UI quality bar lives in reference/ui-react.md; asset sourcing lives in the Assets section below. Don't hesitate to file issues for gaps or improvements — a missing primitive, a shell that hardcodes a choice a game should own, a doc that's wrong (Hit a snag? below); reporting them proactively is how the engine surface grows.
The heaviest domains live in on-demand reference modules under reference/ — load one only when you're building in that domain: reference/combat.md (effects, projectiles, death, feel, abilities), reference/world.md (terrain, environment, physics, vehicles, spawn), reference/multiplayer.md (transport, host, persistence, presence), reference/ui-react.md (@jgengine/react hooks, headless + styled UI kits, the registry install path, and the UI quality bar), reference/cartridge.md (the declarative cartridge layer — a whole game as one validated config). Each domain's section below is a one-line pointer to its module.
Packages
All published on npm, source at github.com/Noisemaker111/jgengine (AGPL-3.0):
| Package | Role | May import |
|---|---|---|
@jgengine/core |
Everything below: defineGame, GameContext, scene, combat, game systems, movement, input, world features, runtime/transport contracts | nothing platform-specific — no React, Convex, three.js, browser |
@jgengine/react |
GameProvider, hooks, headless UI primitives |
react + core |
@jgengine/shell |
GamePlayerShell — R3F canvas, camera rig library (orbit, first-person, top-down/iso, RTS, over-the-shoulder, lock-on, chase, cinematic + shake channel), input tracking, HUD mounting, GameUiPreview, demo game; you supply a GameRegistry |
react + three + core |
@jgengine/ws |
Browser-safe GameBackend over a pluggable string-pipe transport (WebSocket/socket.io/WebRTC/loopback), protocol codec, HTTP reads, browser-safe authoritative host + router (host/hostRouter), and P2P (peer) |
core |
@jgengine/node |
Node process bindings over @jgengine/ws's host/router: ws-package server, socket.io server attach, file persistence (re-exports createGameHost/memoryPersistence unchanged) |
node + ws + core |
@jgengine/sql |
HostPersistence on Postgres (structural pool, no hard pg dep) |
core |
@jgengine/convex |
The Convex adapter behind the GameBackend seam |
react + convex + core |