This skyline is being generated in your tab by @jgengine/core

Make a game that with jgengine.

That sentence is the whole interface — a coding agent builds the rest on a pure-TypeScript SDK. Each pitch you see regrows the city below from one seed, live, using the same generators a shipped game runs.

seedneon-harbor-042

View source, honestly

That skyline is a function call.

The hero above isn't a render farm loop — it's the published npm package generating a city in your tab. Same code, same seed, same city in the editor, in a game, on a server. Everything on this site that moves is the engine moving.

what-you-just-watched.ts
import { generateCity } from "@jgengine/core/world/cityGenerator";
// The skyline on this page — streets, lots, loops — comes from this
// one call, running in your browser tab. No video, no mockup.
const city = generateCity(
{
seed: "neon-harbor-042", // the HUD shows the seed on screen now
streets: { gridness: 0.88, boulevards: 0.32, winding: 0.12 },
lots: { footprint: { w: 13, d: 11 }, setback: 3 },
},
230,
230,
);
// → identical city on every machine: deterministic by contract.

How it works

From prompt to playable in three moves

01

Open any coding agent

Claude Code, Cursor, Codex, Copilot — whatever you already use. No special install for you.

02

Say the line

Make a game that … with jgengine. That is the whole interface. The agent uses the CLI and skills underneath.

03

Play the result

A complete, verified game on the SDK — not a demo slice — built from the same skills this site documents.

your agent — chat

you

The SDK

Eight packages, one-directional layering

core imports nothing. Every layer above it earns its dependencies. Your game imports what it needs and nothing more.

Your next game is one prompt away.

Paste this into your agent. That is how people build with JGengine outside the monorepo.

Make a game that ... with jgengine
Star on GitHub