# Mission — Bevy FPS Foundation & Editor Framework ## What we are building An **in-process Bevy editor and game foundation** for a server-authoritative multiplayer FPS. The editor is a **reusable framework**: the same `GamePlugin`, deterministic `sim`, and rendering stack run in the editor binary and in shipped game builds. ## Principles 1. **One world, one sim** — Play-in-editor runs real gameplay code, not a preview stub. 2. **WYSIWYG rendering** — the unified viewport uses the project rendering profile (target: `assets/project.ron`) for both editor and player cameras. 3. **Authoring over runtime** — Levels serialize reflectable components from `shared`; hydration builds runtime meshes, colliders, and lights. 4. **Input as intent** — Gameplay consumes `protocol` intent in `FixedUpdate`, enabling determinism, replays, and networking. 5. **Strict crate boundaries** — `sim` and `protocol` stay rendering-free; native-only deps stay in `editor`. 6. **BRP-aligned tooling** — Custom egui UX plus Bevy Remote Protocol for automation and future interop with the official Bevy editor. BRP mutates **authoring** components only ([editor/brp.md](editor/brp.md), [ADR 0009](adr/0009-authoring-vs-hydrated.md)). 7. **Actor model** — Every saved level object has `ActorKind`; hydration is derived ([ADR 0010](adr/0010-actor-kind-and-inspector.md)). ## Audience - **Level authors** — Iterate on scenes, tuning, and feel via PIE and project settings. - **Engine extenders** — Reuse or embed `editor` patterns (viewport, history, PIE) in other Bevy projects. - **Automation / CI** — BRP and headless validation (planned). - **Multiplayer development** — Same editor shell exercises deterministic sim and protocol types. ## Non-goals - Full DCC modeling (import-focused workflow). - Shipping the editor to players (dev tool only). ## Related docs - [Documentation index](README.md) - [ADR 0001: Roadmap Architecture](adr/0001-roadmap-architecture.md) - [ADR 0003: Editor Framework Mission](adr/0003-editor-framework-mission.md) - [Root README — controls & checklist](../README.md) - [Editor docs index](editor/README.md)