Skip to main content
Platform

One schema. Every part it compiles.

Conjure compiles a declarative description of your game into the parts below. Each one carries its real status — what is in the docs today, what has been proven in a prototype, and what is only designed.

  • shippedin the docs and usable today
  • prototype validatedbuilt and tested end to end in a prototype, not yet in the product
  • planneddesigned, not built

Schema

Schema & compiler

shipped

One .conjure schema declares tables, indexes, queries, commands, mutations, modules and frame systems. The compiler binds, type-checks, plans with a cost-based optimizer and emits plain C# — nothing is parsed or planned on the device.

What's in it
  • Typed diagnostics instead of runtime failures
  • Explainable plans — read what it picked
  • Generated code you can open and read
  • Profile-guided plans from real sessions and replays

Schema modules & overrides

shipped

A feature is a module of the schema: its tables, commands and queries in one place. Moving it to another game means pointing its declarations at that game's items and currencies and overriding what differs — the compiler re-derives the rest.

What's in it
  • Module declarations in the schema
  • Adapt by changing declarations
  • Overrides for what truly differs

Ready-made modules

planned

Battle pass, store, inventory and similar features shipped as schema modules you can read, override and extend — not as a closed SDK.

What's in it
  • Battle pass
  • Store
  • Inventory

Client

Client data layer

shipped

Compiled queries, commands and mutations over your game's persistent state. Declared indexes, UI views that update themselves by applying only what changed, local persistence with snapshots and a write-ahead journal.

What's in it
  • Index-aware, zero-allocation query paths
  • View models maintained by delta (materialized views); reactive queries subscribe to them
  • Transactions, snapshots, backup and restore

Frame state

shipped

Per-frame state for positions, projectiles and hit events: chunked struct-of-arrays storage, generational handles and declared systems scheduled per phase, at 0 B per frame. It joins live frame state to persistent tables and their indexes.

What's in it
  • Ephemeral, event and singleton tables
  • Declared systems and a frame scheduler
  • Unity hosting, IL2CPP and Burst kernels

Determinism

shipped

Commands are deterministic by construction: a fixed-point math library (Fixed64) instead of floats, seeded random declared in the schema, and tests that hold the device and the server to the same answer. This is what makes server replay possible.

What's in it
  • Fixed-point math, bit-identical on every platform
  • Seeded random in the schema (ctx.random)
  • Parity tests between execution lanes

Server

Player server

prototype validated

The same compiled commands run on the server, one grain per player (Orleans). The player's state lives there as the source of truth; the device keeps a replica and a journal of what the player did. Validated in a backend prototype.

What's in it
  • One grain per player, generated from the schema
  • Runs the commands the device runs
  • You host it; the runtime is open

Replay verification

prototype validated

The server replays the device's command journal and compares state hashes. Forged or divergent sessions are rejected and the device is rolled back to the server's state. Commands that need the server travel with the journal and run against the verified state.

What's in it
  • Microseconds per replayed command
  • No request per tap, no trust in the client
  • Verdicts, not heuristics

Shared state

planned

Clans, leaderboards and other state that belongs to many players, declared in the same schema and served by their own owner on the server.

What's in it
  • Declared ownership and access
  • Same queries as player state
  • Schema keyword, not a separate service

Liveops

Liveops

prototype validated

Rules, offers and queries delivered after the build and executed identically on the device and on the server. Change the game without a release and without the two sides disagreeing. Validated in a prototype.

What's in it
  • Runs on the interpreter lane
  • Same verification as everything else
  • No second rules engine

Config server

prototype validated

Game configuration served per version from its own grains, so old clients keep the config they shipped with while new ones get the new one. Validated in the backend prototype.

What's in it
  • Versioned config
  • Same schema types on both sides
  • Rollout without a client release

Portable interpreter

shipped

A no-JIT, allocation-lean bytecode lane for queries that arrive as content after the build. Same semantics as the compiled lane, verified by differential tests, running wherever AOT runs.

What's in it
  • No runtime code generation
  • Bit-identical results to compiled code
  • Fast enough for a frame budget

A/B groups

planned

Experiment groups declared in the schema, assigned on the server and read by the same queries the game already runs.

What's in it
  • Declared groups
  • Server assignment
  • No special-case code

Services

Sign-in

planned

Google Play Games and Game Center sign-in wired to the player server.

What's in it
  • Platform accounts
  • Guest to account upgrade
  • No credentials on the device

In-app purchases

planned

Unity IAP with regional prices; receipts verified on the server and granted by a command, like any other change.

What's in it
  • Regional price tables
  • Server-side receipt checks
  • Grants are ordinary commands

Analytics

planned

Events declared in the schema, with part of the questions answered on the device before anything is sent.

What's in it
  • Typed events
  • On-device aggregation
  • Less data leaving the phone

How it ships

Open runtime, closed compiler

The runtime and everything it generates are open and yours to read. The compiler is the part we keep.

You host

The server runs wherever Orleans runs. There is no hosted service to depend on.

Subscription or contract

Access is by subscription or contract. Nothing is on sale yet.