Head Venture: a management sim on a colony-sim engine
A Godot management sim where every person on the site is simulated minute by minute, and every venture, rule and look comes from swappable data packs.
Overview
Head Venture is a management sim built on a colony-sim engine. You play the Head of a company: you lease or buy lots in a generated city, open ventures on them (a café, a hotel, a school, shops, homes to let) and run one or several at once. Time runs continuously, and everyone on the site is simulated: needs, wants, friendships, deliveries, and builders putting up what you draw in build mode. You walk the site in first person and sit at a PC to run the company from a plan view, in 3D or a lighter 2D top-down mode.
Status: early access. The first public demo (0.9.0) is close and will be on itch.io for Linux, Windows, macOS and the web. Until 1.0, saves are not guaranteed to load across updates.




Engineering specs
| Area | Implementation | Purpose |
|---|---|---|
| Simulation | Plain RefCounted classes, no scene or autoload dependencies |
Runs headless and is covered by tests |
| Content packs | JSON packs merged into one content database | Ventures, settings, text and numbers are data, not code |
| People | One Agent mechanism for staff, residents and visitors |
Behaviour comes from roles and ties, never from a person’s “type” |
| Pathfinding | Region graph with doorway and stairwell portals over AStar3D | Multi-floor walking with fine cells only where furniture or doors need them |
| Balance tooling | An autopilot that plays years and flags figures outside targets | Tuning against stated goals instead of by feel |
Technical deep dive
The code is split into strict layers. Packs feed a merged ContentDB; the simulation
(scripts/sim, scripts/dialogue) holds all game logic; a single Game autoload owns the
state, runs the week and autosaves; and the UI changes state only through Game, listening for
EventBus signals to refresh. Several actions at once (a dragged row of desks, an undo) run inside
Game.batch, so the sync, save and refresh happen once, and the save itself waits for the end of
the frame so it always matches the last action. Every visible string goes through the pack’s
lexicon and every colour through its theme, and a test fails if code uses a key the base pack
doesn’t define.
The central design rule is that no code asks what kind of person someone is. A teacher, a
hotel guest and the player character all run on the same Agent over a Person; what differs is
data: which roles they hold, whose week claims which hour, which rooms list them as users. Each
agent decides in a fixed priority order (critical need, illness, an order, their role’s hour,
urgent need, bed, then their own time), and needs are one rule for everyone. This is what lets a
“school”, a “hotel” or, in a genre pack, a ship run on the same engine without engine changes.
The game’s art is generated in code from simple forms, and any slot can be replaced by a pack’s
own images or 3D models one piece at a time.
The repo has over 5,000 commits since late September 2026 and around 440 test files, run headless through Godot’s CLI. CI builds all four platforms and is set up to publish them to itch.io.
Key challenge: simulating more than one site at once without paying full price for each. The clock is game minutes since the first Monday and never winds back, so any stored time (a cooldown, an illness, a scheduled moment) stays valid across week boundaries. Each site has its own simulation: the watched one runs live, and every other one is stepped in fast 15-minute steps to catch up as the watched clock passes its marks, with their days and weeks merged into the company’s single night and week and their events routed to one in-tray. Getting a fast-stepped day to come out the same as a watched one is what makes “skip to morning” and off-screen ventures trustworthy.