How to Make a Game Like RimWorld with AI

Use two workers and three jobs to see why a finished repair can still miss its deadline.

Seele Editorial TeamUpdated November 11, 2026

Build an original colony sim around a work queue and one deadline. At the fictional Tern Ridge Relay, two crew members need to repair a storm shutter, change an air filter and carry a crate to storage. Only one crew member can repair the shutter. If a lower-risk job takes that person first, the station can miss the deadline even when every job eventually finishes.

Use three fixed ticks to expose that choice. A readable schedule tells you what each crew member did, which job had to wait and whether the repair finished on time.

Start with one shared bottleneck

A fictional ridge relay has a storm shutter and a crate by its loading platform
Build one small station with a short list of visible tasks. A shared worker makes the order consequential.

Ludeon Studios describes RimWorld as a science-fiction colony simulation in which players manage colonists and their needs. The studio's own tutorial materials also describe configurable work priorities. For an original prototype, borrow the broad idea of competing work and define exactly how your crew takes a job.

At Tern Ridge Relay, Mira and Sol start free. Only Mira can Repair or Filter. Either can Haul. All jobs are available when tick one begins. The shutter must be repaired by the end of tick two. The station starts with 5 Air, an abstract game counter, and uses 1 Air at the end of each tick.

Make the dispatch rule visible

JobEligible crewDurationCompletion effect
Repair shutterMira2 ticksShutter complete. Deadline is the end of tick 2.
Change filterMira1 tickAdd 2 Air.
Haul crateMira or Sol1 tickMark the crate delivered.
A fictional workbench shows separate job markers for the shutter, filter and crate
Keep job rank, eligibility and current assignment readable in text. The workbench illustrates the three competing tasks.

At each tick, keep active jobs with their assigned crew. Sort pending jobs by ascending numeric rank, then by job ID alphabetically if ranks tie. Take the first free eligible worker in order Mira, Sol. If a job has no eligible worker free, log the reason and continue scanning. One waiting job should never prevent an eligible worker from taking a different job.

At the end of a tick, advance all active jobs by one step. Apply completion effects, subtract the Air cost, then check any deadline. A job finishing on tick two counts as on time. A job finishing on tick three cannot erase a missed tick-two deadline.

Replay two schedules from reset

Begin with ranks Repair 1, Filter 2 and Haul 3. Then reset and change only Filter to rank 0. This small scheduler accepts 0 as a rank above 1. Keep the same worker eligibility, job durations and starting Air in both runs.

TickBaseline assignmentsBaseline AirFilter firstVariant Air
1Mira Repair, Sol Haul4Mira Filter, Sol Haul6
2Mira completes Repair on time. Sol idle.3Mira starts Repair. Sol idle. Deadline missed.5
3Mira completes Filter. Sol idle.4Mira completes Repair late. Sol idle.4
A closed mustard shutter with a small green light at the fictional relay
The completed shutter is a visual cue. Show a separate deadline result because a closed shutter can also be late.

Both schedules end at 4 Air. The baseline protects the deadline and the variant misses it. To diagnose the miss, look at the job start tick and the first assignment to Mira. Keep the deadline result and current job status separate so a late completion remains visible.

Give AI the scheduler and acceptance traces

Ask for a single-step control first. Advancing one tick at a time makes it easy to match the log with the fixture.

Build an original browser colony sim called Tern Ridge Relay.
Use two crew members in order Mira then Sol. Begin with both free and 5 Air.
At tick 1 make three jobs available: Repair rank 1 (Mira only, 2 ticks, due end of tick 2), Filter rank 2 (Mira only, 1 tick, adds 2 Air) and Haul rank 3 (either crew member, 1 tick, marks crate delivered).
Keep active jobs and occupy one worker per job until completion. Each worker holds at most one job.
Sort pending jobs by ascending rank, then alphabetical job ID. Choose the first free eligible worker. Skip unavailable jobs and keep scanning.
At tick end advance work, apply completion effects, subtract 1 Air, then check deadlines.
Track completion tick and deadline result separately. Preserve a missed deadline when a job finishes late.
Show a step button, job ranks, crew assignments, eligibility and a chronological log. Allow Filter rank 0 before the run.
Stop after 3 ticks. Reset restores base ranks, Air, both crew and all pending jobs.
Baseline Air after each tick: 4, 3, 4. Repair finishes on tick 2.
With only Filter changed to 0: Air 6, 5, 4. Repair misses tick 2 and finishes on tick 3.
Use original relay-station visuals and keyboard-accessible controls.

Check the first baseline tick carefully. Sol must take Haul even though Filter was scanned earlier. If Sol stays idle, inspect the rule that handles an ineligible job. If the baseline misses the deadline despite completing Repair on tick two, check whether completion effects are applied before the deadline check.

Use the first-build guide to adapt the fixture to another setting. Build the Tern Ridge Relay scheduler in SEELE AI Game Maker and replay both schedules before adding events or new jobs.

Frequently asked questions

How many workers and jobs should I start with?

Start with two workers and three jobs, including two jobs that require the same worker. That lets you test both a genuine bottleneck and a parallel assignment. In this example, Sol can haul the crate while Mira handles whichever specialist job ranks highest.

What if a worker cannot take the highest-ranked job?

Evaluate whether anyone free is qualified for that job. If no one is, keep scanning and record why it was skipped. A flexible crew member can still pick up other eligible work, which prevents the pending list from idling the whole station.

Why record completion and deadline status separately?

A job may finish after its due tick. Its completion state can be true while its deadline result remains missed. Preserve both values and their tick numbers so a player can understand a late repair even when the finished station looks identical.

How should I test a change in job priorities?

Reset the station, change only one rank and repeat the exact tick sequence. Compare who starts each job, when it completes and which deadlines change. Also check the final Air value, but use the full schedule to explain cases that finish with the same amount.

SEELE AI

Turn this guide into a playable build.

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

Start creating