THE TECHNICAL BIT
The sim.
The editor.
These are two different projects. ChronosEngine works out what happens in the galaxy. ChronosEditor is where I build the scenes, UI, and presentation. ORION connects them into the game you play.
02 / THE SIMULATIONC# / .NET 10
ChronosEngine.
This is the simulation engine behind ORION. It owns the galaxy state, runs the game systems, and applies player and AI orders. It can run headless, so I can test a campaign without opening the editor or drawing a frame.
What's being simulated?
Economy, population, research, politics, diplomacy, logistics, AI, movement, and combat. They run through an ordered pipeline, with their results feeding into the next part of the world update.
Deterministic C# simulation
The core targets .NET 10 and uses fixed-point math, seeded random generators, and a defined system order. With matching builds, content, starting state, and ordered inputs, I can replay a campaign and compare the resulting state.
Two clocks, with pause & speed control
There's a canonical 20 Hz real-tick pipeline for commands and movement, alongside a game clock for the calendar and speed-dependent systems. That rate is the scheduling design; actual throughput depends on the workload.
One owner of the world state
A dedicated worker advances the simulation. Player and AI commands enter through queues and are applied at defined boundaries. The game reads completed snapshots for its UI and visuals, rather than poking around in a world that's being updated.
Saves, restores & repeatable tests
Versioned snapshots preserve campaign state, clocks, queued orders, and random-generator state. Headless tests can load a save, run the same inputs, restore partway through, and check whether the final state still matches.
How it connects to ORION
ChronosEngine is built as ChronosSimulationCore.dll. ORION sends it commands and uses its published state to update the interface and scene. Rendering and editor tools live outside the simulation core.
03 / THE EDITORDESKTOP TOOLS
ChronosEditor.
This is where I put ORION together. Scenes, assets, materials, interfaces, scripts, and a lot of pressing Play to see what broke. The editor and its runtime tools handle the visual side around the simulation.
Scenes, components & C# scripts
A searchable hierarchy, multi-selection, transform gizmos, snapping, and undo for working on scenes. The Inspector exposes component settings and public script fields, including references to objects and UI controls.
Assets, materials & shaders
Import glTF models, tune texture settings, and work with reusable scene and UI prefabs. Custom materials can use HLSL shaders or node graphs, with previews in the editor.
Rendering & the visual runtime
The editor's stack includes WebGPU rendering, physically based materials, Forward+ lighting, HDR effects, instancing, culling, and mesh LODs. Its runtime also provides Bepu physics, positional audio, input, and C# script callbacks.
A visual UI editor
I build Clay interfaces on a live canvas with layout controls, move and resize tools, resolution presets, and reusable UI prefabs. Inspector bindings connect the controls to gameplay code.
Play, pause, inspect, repeat
Compile scripts, enter Play mode, pause, or advance a step to inspect behavior. Stopping Play restores the authored scene and UI, ready for the next change.
Profiling & standalone builds
The profiler shows CPU and script timings, allocations, GPU passes, renderer work, and resource use. Export tools package scenes, scripts, materials, and UI into a standalone GamePlayer, with macOS, Windows, and Linux build target options.
Three projects, one game.
ChronosEngine runs the simulation. ChronosEditor is where I build and test the scenes, interfaces, and presentation. ORION brings them together as the game.