MetaCore/docs/architecture.md

957 B

MetaCore Architecture Notes

Runtime split

  • MetaEditor owns editor tooling and future Dear ImGui/ImGuizmo integration.
  • MetaPlayer owns runtime playback and future RmlUi integration.
  • MetaCore owns shared domain logic and backend abstractions.

Data split

  • Project data: MetaCore.project.json
  • Scene data: Scenes/*.mcscene.json
  • Asset metadata: Library/AssetDB.json and per-asset .meta
  • Editor layout data: Library/Layout/editor_layout.json

Backend split

  • platform/panda hides Panda-specific details.
  • engine/render owns renderer-facing types and shader library definitions.
  • engine/runtime_ui owns runtime UI-facing document abstractions.

Design rules

  • UI never mutates the domain directly.
  • Scene data never stores editor-only or runtime cache state.
  • Renderer configuration is driven by data objects, not by ad-hoc tag strings.
  • New engine modules should expose narrow service-oriented interfaces.