
Use this page when you need the truthful answer to:
2d-adventure and 3d-adventure as the
canonical starter picks?AuraJS has two starter tiers now.
Canonical first-pick starters:
2d-adventure3d-adventureSpecialized supported starters:
2d-shooter2d-survivor3d-platformer3d-collectathonlocal-multiplayer (also aliased as multiplayer)deckbuilder-2dblankThe canonical first-pick starters teach the clearest current authored scaffold path. The supported specialized starters still ship, stay tested, and are valid starting points when their genre fits your game better.
Pick the canonical starters when you want the shortest paved road:
auramaxx create my-game
auramaxx create my-game --template 3d-adventure
When you omit --template, AuraMaxx opens the starter prompt. Pick
2d-adventure or 3d-adventure there when you want the main paved road.
Use them when you want:
config/, content/, scenes/, prefabs/, ui/,
src/runtime/ storyChoose a specialized supported starter when your loop already matches it:
2d-shooter: wave-based arcade action with pause/settings flow and the current native-2d-action helper lane2d-survivor: top-down survival loop with auto-fire, spawn pressure, and the same native-2d-action helper lane3d-platformer: checkpoint-driven 3D route play3d-collectathon: collectible-driven 3D route playlocal-multiplayer: fastest room-code loop, local-first by default and one aura.config.json -> multiplayer.relay field away from internet-backed hostingdeckbuilder-2d: starter-owned content registries and turn-based card flowblank: minimal authored scaffold without genre opinionFor the heaviest current native 2D action proof, see
examples/sector-surge-2d/src/main.js.
Supported means:
Supported does not mean:
For example:
2d and 3d normalize to the canonical adventure starterslocal-multiplayer is supported, but it stays local-first and native-first by default even though setting aura.config.json -> multiplayer.relay or AURA_MULTIPLAYER_RELAY_HOST promotes the same room-code flow to internet-backed hostingAcross both canonical and specialized starters, keep the same rules:
appState.sessionappState.uiappState.runtimesceneStateconfig/ and content/prefabs/ui/If a file exists because the starter needs it, it should live in the starter.
Use Creating a New Game when you want the quick install-to-first-playable path.