How to Make a Game Like Oxygen Not Included with AI

Route a shared supply to two bays and trace which operations each dispatch serves.

Seele Editorial TeamUpdated November 11, 2026

Give your first colony simulation one shared supply and two places that need it at different times. In the fictional Reedhouse Station, a compressor can send one abstract air credit to either of two machine bays each beat. A station-wide total can look adequate while the bay that needs a credit has none.

Show the reserves and the next demand side by side. Let the player decide where to send the credit, then report which operation the delivery served. Three beats are enough to show the difference between producing enough and delivering it in time.

Give one source two destinations

Two machine bays sit on either side of a central compressor buffer in a greenhouse station
Give the source and each destination a visible place. The station can have credits available while an individual bay is empty.

Klei’s official game page describes Oxygen Not Included as a colony simulation where scarce oxygen, warmth and sustenance affect survival. Start from the broad idea that a resource can make an everyday management decision matter. Reedhouse Station uses its own layout, rules and abstract credits.

Workshop starts with two credits in reserve. Nursery starts empty. The compressor is separate from both reserves and can store two credits. Workshop needs one credit on every beat. Nursery needs one on beats two and three. Show this forecast before the player chooses a route.

Resolve production, transfer and demand in order

Accept one of three commands per beat. The player can send to Workshop, send to Nursery or idle. Advance the beat once, then apply the following steps.

  1. Generate one credit if the compressor buffer has room. If it is full, skip generation for this beat.
  2. For a send, remove one credit from the buffer and add it to the selected bay. An idle keeps the credits in the buffer. The bays never trade with one another.
  3. Resolve the current demands from the bay reserves after the transfer. Spend one credit for each served operation. If the relevant bay is empty, log a shortfall and skip its operation.
The compressor junction shows a lit branch toward one bay
Use the branch cue to show where the current delivery goes. The bay reserve and forecast explain whether it can serve an operation.

Keep the log separate from the reserves. A delivery on a later beat can serve that beat's demand or be stored. It does not make a missed operation happen retroactively. Neither reserve can go below zero.

Replay two dispatch schedules

Both plans use all three produced credits. The difference is where the second one goes. In the table, W means Workshop and N means Nursery. Reserve values are taken after demand.

BeatW → N → NW → W → N
1Send W. Reserve W2, N0. One served.Send W. Reserve W2, N0. One served.
2Send N. Reserve W1, N0. Three served in total.Send W. Reserve W2, N0. Nursery misses. Two served, one miss.
3Send N. Reserve W0, N0. Five served, zero missed.Send N. Reserve W1, N0. Four served, one miss.
Separate Workshop and Nursery machines show steady status indicators
Indicate the operations that completed. The successful schedule ends with both bay reserves at zero.

Both runs end after beat three. The first passes because it serves all five scheduled operations. The second falls short despite having one credit left in Workshop. That spare credit is in the wrong place to help Nursery on beat two.

Give AI a three-beat fixture

Ask for the forecast, reserve values and an event ledger. Put the actual order of operations in the prompt so you can verify a generated draft against the table.

Build an original three-beat resource-routing game.
Start Workshop at 2 credits, Nursery at 0, buffer at 0.
The buffer can hold 2 credits. The bays keep separate reserves.
Show the forecast and let the player choose Send W, Send N or Idle.

For each accepted command, advance one beat. Generate 1 if the
buffer has room, then move 1 to the selected bay if sending.
Idle retains the buffer. Resolve demand after transfer.
Workshop needs 1 each beat. Nursery needs 1 on beats 2 and 3.
Spend 1 to serve each demand, or record a miss if its bay is empty.
Never go below 0 or repay a past miss.

After beat 3, finish. Pass only with 5 served and 0 missed.
Show before and after reserves and this beat's delivery and result.
Reject unknown commands and later dispatches without changes.
Allow free forecast inspection. Reset restores initial values
and the ledger while keeping the chosen demand schedule.

Verify that an invalid command leaves the beat at zero. Try three idles from reset. The buffer reaches one, then two, then stays at two. Replay both dispatch plans and confirm that no credit appears in Nursery until it is sent there. Test Reset after both a pass and a shortfall.

Move one demand and keep the supply fixed

Move the first Nursery demand from beat two to beat one. Keep its last demand on beat three and change no other rules. The old W → N → N route now misses Nursery on beat one. Nursery stores the second beat’s delivery and consumes one of its two credits on beat three. Four operations are served and one missed. Workshop finishes empty and Nursery retains one credit.

From reset, send N → W → N. The first delivery serves Nursery while Workshop spends one of its starting credits. The second delivery covers Workshop, and the third goes to Nursery. Both finish empty with all five operations served. Use SEELE’s first-build guide to isolate that forecast change in a replay.

Start with one source and one forecast

Start your original colony routing game with SEELE’s AI Game Maker. Enter the starting reserves and the three-phase rule, then compare the draft's event ledger with both schedules before adding another bay.

Frequently asked questions

How is a reserve different from the compressor buffer?

A reserve belongs to one bay and can serve its demand. The buffer belongs to the source and holds credits that have yet to be sent. Display them separately so the player can see why a full buffer does not automatically serve an empty bay.

What should the demand forecast show?

Show the current and upcoming demands for each bay before the player selects a destination. Keep forecast, stock and result in distinct fields. In this fixture, moving the Nursery demand earlier changes the first dispatch in the tested plan even though the total demand stays the same.

Why keep a missed operation in the ledger?

The demand belonged to a particular beat. Later delivery can serve a future operation, but it cannot change what happened earlier. Keep the missed entry visible and report it in the final result, including when the station has spare stock at the end.

When should I add a third bay?

Add it after the first two bays produce the expected reserves and shortfall log. Give the third bay a demand pattern with a specific planning consequence. Replay the first two schedules to check whether the new demand creates the choice you intended to add.

SEELE AI

Turn this guide into a playable build.

Start with a focused brief, then iterate in the Seele AI Workspace.

Start creating