1.8 KiB
ADR 0001: Roadmap Architecture
Status
Accepted
Context
The project is a Bevy FPS foundation with a runtime game, shared authoring data, and an in-process editor. The long-term goal is a server-authoritative multiplayer FPS that can also serve as a reusable Bevy engine/editor toolkit.
The architecture needs to keep early editor work productive while avoiding choices that would make later deterministic simulation, networking, and web support expensive.
Decision
Keep the current game, shared, and editor crates for M0/M1, but treat them as stepping stones toward a stricter split:
sharedowns reflectable authoring types and scene hydration until it can be renamed or split into a scene-focused crate.gameowns native client presentation, player input, rendering, audio, UI, and glue.editorowns native editor tooling and editor-only dependencies.- Future deterministic gameplay moves out of
gameinto a simulation crate that can be reused by the native client, a headless server, and tests. - Future network protocol types move into a protocol crate shared by client and server.
- Runtime app startup/windowing stays narrow and reusable so both the game and editor launch consistently.
Consequences
This preserves the current M1 editor velocity while setting boundaries for later milestones. Gameplay code should avoid depending on editor systems, and reusable authoring/simulation code should avoid native-only editor dependencies.
The project will add CI and focused local verification now, then expand tests around determinism, scene migration, and networking as those crates appear.
Follow-Ups
- M2 extracts deterministic simulation and input-as-intent systems.
- M3 adds the server-authoritative networking spike and chooses the production netcode stack.
- M5 formalizes scene schema versioning and migrations.