Blacksite/docs/mission.md

2.8 KiB

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 boundariessim 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, ADR 0009).
  7. Composable actor model — Every saved level object carries a derived ActorKind display hint, while registered authoring components own behavior, requirements, conflicts, persistence, and hydration (ADR 0034).
  8. Sustainable extension seams — Pay architecture debt at the point of change: thin panel shells dispatch into bounded domain modules and shared services, with an automated no-growth ratchet for legacy modules (ADR 0048).
  9. Authored visual language — Build editor panels from semantic, responsive design-system primitives whose native output is accepted against the Penpot source of truth; unsupported mock controls do not ship (ADR 0049).

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, headless validation, and deterministic asset processing.
  • 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).