Skip to Content
OverviewWhat is Gnosis Engine?

What is Gnosis Engine?

Gnosis Engine is a Unity runtime package that gives you:

  • A single shared state tree split into Persistent (settings, unlocks, configuration) and Ephemeral (per-run roguelike state).
  • Services with stable string ids (e.g. Money, Shop, UserInterface) that own slices of that state and expose named functions (InvokeFunction).
  • An event bus plus data-driven rules (JSON under Persistent.configuration.rules) that can intercept events, observe facts, or trigger side effects.
  • Unity adapters (UnityGnosisAdapter subclasses) that bind engine services to UI Toolkit, audio, input, etc., without putting Unity APIs inside core services.

It is aimed at games that want JSON-tunable balance and content (boons, consumables, shops, scaling) while keeping game-specific simulation (board, world, combat loop, etc.) in your own code that talks to the engine through events and/or a dedicated service.

When it is a good fit

  • You want one place for save-shaped data and run-shaped data, with clear lifecycle (new run vs continue).
  • Designers or tools edit JSON (rules, definitions, invocations) more than C#.
  • You are OK reading C# for behavior that is not expressible in data (new service, new adapter, new event types).

When to look elsewhere or keep code minimal

  • You need no shared service layer—only a small game might not justify the indirection.
  • You dislike stringly-typed service ids and event ids; the engine leans on conventions and JSON.

Key types (for navigation)

ConceptCode entry
Unity entry pointUnityGnosisEngine
Pure C# orchestratorGnosisEngine
State + branchesGnosisState, Persistent / Ephemeral under root
Dynamic JSON-like valuesGnosisNode, GnosisStore, GnosisValue
Cross-service callsGnosisEngine.CallFunction, RunInvocationList
Events + rulesIGnosisEventBus / GnosisEventBus, GnosisRule, GnosisRuleService

Next: Unity host & runs for how lifetimes map to Play Mode.

Last updated on