Blacksite/docs/mission.md
Rbanh f29712d158
Some checks are pending
CI / Format, lint, test, build (push) Waiting to run
Initial project import
2026-06-05 21:44:45 -04:00

2.1 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. Actor model — Every saved level object has ActorKind; hydration is derived (ADR 0010).

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).