Blacksite/docs/mission.md
Rbanh 0798aa5d57 Build renderer and material component foundations
Add dedicated skinned rendering, pose restoration, shared Material and Material Instance slots, registry-driven components, Surface/Solari integration, transactional schema upgrades, navigation authoring, documentation, and evaluation evidence.
2026-07-12 00:24:06 -04:00

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

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