05ee9d5aa27982ed1ba2b5a004941dd2bdaf8537
Stellar Conflicts
A 2D multiplayer space combat game — think bullet hell meets persistent universe. Originally a Flash game, now rebuilt from scratch in Rust.
Where to Start
reforged is the main repo. It contains the Godot project, workspace configuration, and pulls in all the crates below. Clone this one.
Architecture
The game is split into independent crates, each in its own repo. Everything is Rust — there is no GDScript.
| Repo | What it does |
|---|---|
sc-core |
Stateless game simulation — types, defs, tick functions, wire protocol. The heart of the game. No engine dependency. |
sc-client |
Client session state — message handling, auth flow, account/hangar data. Pure Rust, no engine dependency. |
sc-godot |
Godot rendering shell. Thin bridge between sc-client and the engine — spawns nodes, updates transforms, reads input. |
sc-ui |
All UI — HUD, menus, radar, chat, docking screens. Godot nodes backed by sc-client state. |
sc-zoned |
Zone server. Runs the authoritative sim, relays messages between clients. |
sc-authd |
Auth server. Accounts, squads, leaderboards, zone tokens. |
sc-overlord |
AI team commander. Spawns and directs NPC fleets, manages base capture strategy. |
sc-replicate |
Trait-based state replication runtime. Diff/apply over postcard batches; replaces hand-written Tracker*/Position messages. |
sc-replicate-derive |
Proc-macro crate for sc-replicate — provides #[derive(Replicate)] and #[replicate(epsilon = ...)] field attributes. |
sc-dashboard |
Admin dashboard. |
sc-decode |
Packet decoder tool for debugging the wire protocol. |
sc-xtask |
Dev task runner (cargo xtask serve, cargo xtask build, etc). |
How it Fits Together
┌──────────┐
│ sc-core │ stateless sim, shared types
└────┬─────┘
┌─────────┼──────────┬──────────────┐
▼ ▼ ▼ ▼
┌──────────┐ ┌────────┐ ┌──────────┐ ┌───────────┐
│sc-client │ │sc-zoned│ │sc-authd │ │sc-overlord│
└────┬─────┘ └────────┘ └──────────┘ └───────────┘
┌────┴─────┐
▼ ▼
┌──────────┐┌─────┐
│sc-godot ││sc-ui│ ← Godot lives here
└──────────┘└─────┘
Running Locally
git clone https://git.oat.im/sc/reforged.git
cd reforged
cargo xtask serve # starts authd + zoned + overlord
# then open godot/ in Godot 4.5
Description