Field Access Patterns
Structured, deterministic patterns for reading and writing world state.
Field Access Patterns define how subsystems interact with the Field System.
These patterns ensure deterministic updates, avoid conflicts, and maintain clarity across the engine.
Although implementation is internal, the conceptual model presented here is essential for understanding the architecture.
Purpose
The purpose of field access patterns is to create predictable, consistent interaction between subsystems and world data — even when many systems are active simultaneously.
These patterns prevent race conditions, enforce ordering, and preserve determinism.
Core Principles
- Predictable Reads — systems read stable field values appropriate to their tick cadence.
- Structured Writes — updates follow clear ordering rules.
- Isolation of Concerns — subsystems modify only their owned fields.
- Deterministic State Evolution — the same updates always yield identical results.
- Inter-System Safety — no subsystem can corrupt another’s data.
System Model
Read Patterns
Subsystems may:
- read their own fields
- read fields from other systems
- sample tile or edge neighborhoods
- compute gradients
- generate derived quantities
Reads are always safe and deterministic.
Write Patterns
Subsystems write:
- to fields they own
- at their assigned tick cadence
- using a structured update model
- without altering other subsystems’ state
This preserves modularity.
Derived Fields
Some fields are computed from others:
- slope from elevation
- moisture from hydrology
- biome from climate
- flow from gradient
Derived fields follow strict evaluation rules to avoid circular dependencies.
How It Interacts With Other Systems
- Tick Engine determines when reads/writes occur.
- Subsystems declare field ownership and dependencies.
- Fields act as the interface between domains.
- Overlays visualize both owned and derived data.
- Application Layer reads fields for display.
What This Enables
- perfectly deterministic simulation
- modular subsystem extension
- stable multi-layer interaction
- clean domain boundaries
- transparent debugging via overlays
Visual Examples (Optional)
- field read/write dependency graphs
- derived-field visualization examples
Public Extensibility Notes
The future SDK will allow developers to:
- declare custom access patterns
- define new derived-field logic
- integrate new subsystems safely
Field access remains conceptually simple and robust.