AURA

JSGG

AuraJS
DOCSEXAMPLESGITHUB
Creating a New Game
Minimal create, scaffold, dev, and publish path for a new AuraJS game.
docs/external/game-dev-api/creating-a-new-game.md

Creating a New Game

This is the shortest path from install to first playable AuraJS scaffold.

TL;DR

npm install -g auramaxx
auramaxx create my-game
cd my-game
npm run dev

Fresh scaffolds now give you:

  • wrapper-driven local commands: npm run dev|play|state|inspect|action|publish
  • shared project layout across every scaffold: scenes/, prefabs/, ui/, config/, content/, docs/design/, src/runtime/
  • the interactive starter prompt when you omit --template
  • project growth through auramaxx make, auramaxx explain, and auramaxx check
  • auramaxx publish --dry-run / auramaxx publish as the canonical publish lane
  • multiplayer as the simplest room-code multiplayer starter alias, with one relay field or one env var when you want the same room-code flow to go internet-backed
  • one optional multiplayer.launcherBaseUrl field when you want the starter to surface a shareable AuraLauncher join page

Use auramaxx create when you are outside a project. Inside a scaffolded repo, auramaxx ... and the generated npm run ... scripts both target the same project.

If you are translating an existing Three.js mental model into Aura's lifecycle, camera, scene, and material surfaces, use Migrating from Three.js.

Templates

AuraJS currently ships these scaffold families:

  • 2d-adventure
  • 2d-shooter
  • 2d-survivor
  • deckbuilder-2d
  • 3d-adventure
  • 3d-platformer
  • 3d-collectathon
  • local-multiplayer (also aliased as multiplayer)
  • blank

Current create behavior:

  • auramaxx create <name> opens the starter prompt
  • auramaxx create <name> --template ... accepts the shipped template catalog directly
  • --template 2d and --template 3d normalize to 2d-adventure and 3d-adventure
  • the rest of the catalog remains supported, but the adventure starters are the canonical first-pick starters when you want the simplest 2D or 3D path

Examples:

auramaxx create starfall --template 2d-adventure
auramaxx create summit-run --template 3d-adventure
auramaxx create scratch-pad --template blank
auramaxx create room-brawl --template multiplayer

First 15 Minutes

  1. Run npm install if you created the project with --skip-install.
  2. Run npm run dev.
  3. Read src/main.js, src/runtime/, and scenes/ once before reorganizing anything.
  4. Rewrite the seed content in config/, content/, docs/design/, and assets/starter/ so it matches your actual game.
  5. Press F1 to inspect the live project inventory.
  6. Use auramaxx make instead of hand-creating folders and files.

Useful commands:

auramaxx make list
auramaxx make scene Scene1
auramaxx make ui-screen PauseMenu
auramaxx make config enemy-table
auramaxx make content spawn-table
auramaxx explain
auramaxx check

deckbuilder-2d adds starter-owned content generators too:

auramaxx make card StrikePlus
auramaxx make enemy JawWorm
auramaxx make relic BurningBlood
auramaxx make encounter Act1Hallway

If you want the full project layout, ownership model, and exact generator reference, use Working with an AuraJS Project.

If you want the truthful default-versus-supported starter boundary, use Supported Starter Catalog.

Multiplayer and Publish

Fastest local-first room-code multiplayer path:

auramaxx create my-room-game --template multiplayer
cd my-room-game
npm run dev

# second terminal
npm run join -- AURA2P

Internet-backed version of the same starter:

{
  "multiplayer": {
    "relay": "relay.aurajs.gg",
    "launcherBaseUrl": "https://auralauncher.gg"
  }
}

Then keep the same commands:

npm run dev
npm run join -- AURA2P

Or keep the project untouched and launch with:

AURA_MULTIPLAYER_RELAY_HOST=relay.aurajs.gg npm run dev
AURA_MULTIPLAYER_RELAY_HOST=relay.aurajs.gg npm run join -- AURA2P

If multiplayer.launcherBaseUrl is set, the starter HUD can advertise a join page like https://auralauncher.gg/join/AURA2P instead of only shell instructions.

If you want the easiest same-project proof before scaffolding your own game, open examples/multiplayer-party.

Publish path:

auramaxx publish --dry-run
auramaxx publish

If you are publishing outside @aurajs, rename package.json -> name before the first publish.

DOCUMENT REFERENCE
docs/external/game-dev-api/creating-a-new-game.md
AURAJS
Cmd/Ctrl+K
aurajsgg