# 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`](https://git.oat.im/sc/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`](https://git.oat.im/sc/core) | Stateless game simulation — types, defs, tick functions, wire protocol. The heart of the game. No engine dependency. | | [`sc-client`](https://git.oat.im/sc/client) | Client session state — message handling, auth flow, account/hangar data. Pure Rust, no engine dependency. | | [`sc-godot`](https://git.oat.im/sc/godot) | Godot rendering shell. Thin bridge between `sc-client` and the engine — spawns nodes, updates transforms, reads input. | | [`sc-ui`](https://git.oat.im/sc/ui) | All UI — HUD, menus, radar, chat, docking screens. Godot nodes backed by `sc-client` state. | | [`sc-zoned`](https://git.oat.im/sc/zoned) | Zone server. Runs the authoritative sim, relays messages between clients. | | [`sc-authd`](https://git.oat.im/sc/authd) | Auth server. Accounts, squads, leaderboards, zone tokens. | | [`sc-overlord`](https://git.oat.im/sc/overlord) | AI team commander. Spawns and directs NPC fleets, manages base capture strategy. | | [`sc-replicate`](https://git.oat.im/sc/replicate) | Trait-based state replication runtime. Diff/apply over postcard batches; replaces hand-written Tracker*/Position messages. | | [`sc-replicate-derive`](https://git.oat.im/sc/replicate-derive) | Proc-macro crate for `sc-replicate` — provides `#[derive(Replicate)]` and `#[replicate(epsilon = ...)]` field attributes. | | [`sc-dashboard`](https://git.oat.im/sc/dashboard) | Admin dashboard. | | [`sc-decode`](https://git.oat.im/sc/decode) | Packet decoder tool for debugging the wire protocol. | | [`sc-xtask`](https://git.oat.im/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 ```bash 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 ```