Roadmap

Stretch goals. Not this cycle. Play the game

The live game is official maps, one Stock class, ranked boards, Trefoil races. Everything below is how that grows without mixing homemade fields into those boards, without mixing classes on one grid, and without selling a faster engine.

Community maps (MAKE)

Player editor plus a public community library. Completely separate from official maps.

A map is already a Course: wells, a start pad, an optional goal. Shipped maps are functions in course.rs. Community maps are the same struct, saved as player blobs. They never become a Mission. They never share SCORE / TIME / FUEL lists with Orion, Snake, Trio, or Trefoil.

Home has two shelves:

ShelfWhat
OfficialStudio maps. Ranked boards. Everyone.
CommunityPlayer-authored Course blobs. Browse, fly, favourite. Boards for those races are unofficial.

MAKE and Community are their own mode, not a card jammed into the official grid. Do not add a community row to course.rs. Do not give a homemade map a Mission code.

Who

MAKE (editor)Same $10 supporter flag as the trident / glitter / gold name. Publish is supporters only.
Community (shelf)Public. Anyone can open it and fly a published map.

What the player does

  1. Home → MAKE (supporters) or Community (everyone). Official maps stay on the other shelf.
  2. Editor: empty field. Click to drop a gravity well. Drag to move it. Click a well and delete it.
  3. Set start: click where the ship is, drag the arrow for velocity. Click near a well to snap a circular orbit.
  4. PLAY. Same gravity, same trajectory line, same Stock ship. Crash or restart returns to their pad.
  5. EDIT goes back. The wells stay.
  6. Publish (supporters) puts the Course on the community shelf. It does not appear under official maps.

v1 defaults

One well preset, same as Orion’s start well: mu = 960_000, core = 90. Optional pull / push (negative mu). Cap 32 wells (Course::is_playable).

No moons, no rails, no race track in v1. Goal ring is optional: capture, or leave it off and fly sandbox.

The editor lives in the client. It writes a Course. PLAY feeds that course into SimState. Gameplay math stays in shared.

The server stores community blobs as untrusted Course data. People may download and fly them. The server does not re-sim a homemade course onto an official board. Ranked tape auth stays course_for(mission) on today’s stock maps.

Keep one local draft so refresh does not wipe it.

Later than v1

Moving bodies, rails, hold-for-N-seconds, ranked leaderboards on homemade maps.

Ship classes

Motorsport spec, not a garage mix. Formula 1 and GT3 do not share a grid: different cars, different rules, different championships. Same here.

Stock is the only class today. Its numbers live in RACE_STANDARD.md. Later classes get their own hull and their own handling sheet (mass, thrust, Δv, attitude). They look different and they fly different. Names TBD.

Never mixed, for equity. A Stock ship does not race another class in the same Trefoil round. SCORE / TIME / FUEL lists and race boards are per class. A skin from one class does not sit on another class’s hull.

Everyone in a class flies the same free ruleset. Pay is cosmetics on that hull, never a faster engine. Community maps keep Stock until a class picker exists.

Each class publishes its own sheet. Stock stays this sheet; a new class does not retune it.

Cosmetics

Look only. No gameplay pay-to-win. A skin does not change mass, thrust, Δv, or the trajectory line’s physics. Handling is the class sheet above, the same for everyone in that class.

The first set is the $10 alpha support bundle (trident hull, rainbow glitter trail, sparkling gold name). Later shop / season looks use the same slots. None of them is a new class.

SlotWhat the player sees
ShipOne body per class. Supporter hull is a trident. Same Stock numbers.
Thrust effectEngine plume / trail on MAIN, RCS, afterburn. Supporter trail is rainbow glitter.
Trajectory lineThe coast ribbon’s *look*, not a second physics.
HUDChrome around the play card / readouts.
Board nameSupporter names are sparkling gold, animated, on the same list as free names.
Race emojisSit over the ship in a live room so others can see them.

Those slots land on a season pass and/or a shop. Seasonal looks can stay on the account as a souvenir when the season ends. They do not become a new engine.

Season 0 is the first named window: its own SCORE / TIME / FUEL (and race) lists beside all-time. Achievements and a season pass may start there.

Monetization

One product first: a $10 alpha support bundle. One contribution, one access flag. Not a shop of separate SKUs. That is how we keep free and supporter play apart.

In the pack (MAKE, then the looks on top):

Disclaimer. This is the alpha support bundle. Cosmetics you receive stay on the account as best we can if the game’s look updates.

Access. The server holds one bit: supporter. Every perk above checks that bit. Free clients cannot open MAKE, cannot publish, cannot equip the trident or glitter, cannot paint a gold name. A forged client still fails the server check. Supporters and free pilots share official maps, races, and boards; only MAKE and the look differ. You can tell them apart in a room (trident, glitter) and on the list (gold name next to plain names).

Everyone else still plays every official map, every race, and every community map for free.

Checkout. Sign in with Google/Apple, no password. Play anonymously, pay in one tap, unlock perks live, save the account via email.

  1. In-game $10 Supporter Pack passes the player’s temporary guest_id to the server.
  2. Stripe Express Checkout (Apple Pay, Google Pay, or Link).
  3. checkout.session.completed carries guest_id and verified email; perks push over WebSockets immediately.
  4. Convert guest_id to a permanent user on that email. Optional “Link Google Sign-In.” Magic link in the Stripe receipt for cache-cleared recovery.

Never block payment with sign-up. Instant visual feedback. Frictionless recovery.

Weekly challenges

A rotating weekly objective on official maps. Separate from all-time SCORE / TIME / Δv (and Trefoil). Same Stock ship, same physics. One challenge at a time; it resets each week. Does not wipe the all-time boards.

Examples: fastest Orion this week, least Δv on Snake, a Trefoil race of the week.

Not this cycle.

Championship

The first orbital racing game championship. Official maps, Stock class, its own grid — not mixed with weekly challenges or all-time boards. Detail later.

Not this cycle.