Terminus is a cozy programming puzzle game about railway signalling. You write short scripts in a simple, Python-like language, and your code sets the points, clears the signals and sends every train to the right platform. It is 30 December 1999. The metro must run itself before the year 2000, and you are the contractor who writes the code.

▶ The free demo plays right here in your browser. Click "Run game", then click the screen once to start the sound.

The night shift

Kettleford is a small, rainy river town. Its metro still runs on old relays, and they must hand over to a second-hand console, WS-01, before the millennium bug arrives. The vendor is gone. The Board is in a panic. The agency calls you. Clause 9 of your contract: you stay until every system is certified.

So you go seven flights down to Metro Control, a concrete room called Box 7, with a bag and a thermos. A cat sleeps on the relays. Mags, the night supervisor, sends you notes down the brass tube. Dez chats on the radio. Midnight is coming. The tea is in the cupboard.

How it plays

Each level is a job on the Board's list. You read the goal, write a few lines of code, press Run and watch the trains go.

  • Start with one if statement. Finish with functions that run a busy line through faults.
  • When a train goes to the wrong platform, you see it on the map, in the log and on the time chart. Pause, step one tick at a time, rewind, fix one line, run again.
  • Then things go wrong on purpose: a failed track circuit, a set of stuck points, a broken-down train, a driver who passes a red signal. Good code does not crash. It holds the trains and keeps everyone safe.
  • Every clean run goes to the Board check: your script runs on other timetables too. Code that only works by luck does not get the SAFE star.

Features

  • Real code, not blocks. A small Python-like language with a manual, error help and a guided first level. New commands unlock as you go.
  • A real control-room display. Occupied track turns red, train numbers like 2B07 move from block to block, every command goes into a time-stamped system log, and a string chart draws each train's path.
  • 30 levels in four districts of the Kettleford Metro, plus bonus challenges for later.
  • Stars, par and REP. Clear a level for one star. Make it safe and short for more. Reputation unlocks small things for your desk.
  • 64 achievements, some of them hidden.
  • A story told in notes. Shift notes, tube notes, radio chatter and log lines. Cozy on the surface. Read everything.
  • Four display modes: MODERN, COZY, CRT GREEN and AMBER, with an optional CRT effect.
  • Stand up and look around the room between jobs.
  • Calm pace. No timer. Pause, step and rewind whenever you like.

Early Access

This is the Early Access version. The whole story, from the first job to the end of the shift, is in it. It is a small game made by one person, and it will get better with your help.

  • In this version: 30 levels in 4 districts, bonus challenges, the full story with more than one ending, achievements, 4 display modes, Windows, macOS and a browser demo.
  • Planned: more levels and districts, more polish, more sound, fixes from your reports.
  • Buy once, get every Early Access update on this page. The price may go up as the game grows; if you buy now, you never pay again.
  • The demo has the first two districts (11 levels), up to the last hour before midnight. Your progress is saved separately in the browser and in the download.
  • Steam: if Terminus comes to Steam, everyone who bought it here gets a free Steam key.
  • Version: Early Access 0.9.

Please tell me where you got stuck, what was confusing and what you liked: post in the comments below. A screenshot helps a lot.

Do I need to know how to code?

No. The first level shows you every step, and the manual starts at one if. If you know a little Python, you will feel at home quickly. Junction Script is Python-like, not Python: it is a small language made for this game. If you love Zachtronics-style puzzles, the later levels and the par scores are for you.

Controls

Browser demo: Ctrl+Enter runs your script, Ctrl+Shift+Enter stops it, Ctrl+M opens the manual. Click the sides of the monitor to stand up and look around. Use the fullscreen button at the bottom right. Use a computer with a keyboard; phones and tablets are not supported.

Download: F5 or Ctrl+Enter runs, Shift+F5 stops, F1 opens the manual, F2 changes the display mode, F3 turns the CRT effect on or off, F10 opens the settings, Tab stands you up. Space pauses, Right steps one tick, Left rewinds one second, 1 / 2 / 4 change the speed. Esc opens the level menu.

Stuck? Esc → SOLUTION puts a working script in the editor (no stars for that level).

Accessibility

  • MORE CONTRAST setting. Each track state has a shape or a letter as well as a color.
  • Less motion setting (F6).
  • Code text size from 12 to 32 px (Ctrl+= and Ctrl+-).
  • Radio lines show as text in the log.
  • No timer, no reaction tests. Pause at any time.

System requirements

  • Windows: 64-bit Windows 10 or 11. A graphics card with OpenGL 3.3.
  • macOS: macOS 10.13 or later on Intel, macOS 11 or later on Apple Silicon (one universal app).
  • Browser demo: a desktop browser with WebGL 2 (Chrome, Edge, Firefox, Safari), a keyboard and a mouse.
  • Keyboard and mouse. English only.

Windows: unzip the whole folder, then run Terminus.exe. Windows may warn about an unknown app: click More info → Run anyway. Saves: %APPDATA%\Godot\app_userdata\Terminus\

macOS: the app is not signed by Apple yet, so macOS stops it the first time. Unzip it and move Terminus.app to Applications. Open it once and click Done. Then open System Settings → Privacy & Security, scroll down and click "Open Anyway" next to Terminus. If macOS says the app is damaged, open Terminal and run xattr -cr /Applications/Terminus.app, then open it again. On a laptop, use fn+F5 to run a script. Saves: ~/Library/Application Support/Godot/app_userdata/Terminus/

Browser: your progress is saved in this browser. If you clear the site data, or play in a private window, the progress is lost.

Credits

Game, art and the voice of Dez: Asher the Alchemist.
Made with Godot Engine (godotengine.org).
Music and sound effects licensed from Envato Elements, cut and mixed for this game.
Fonts: JetBrains Mono, Departure Mono (Helena Zhang) and Caveat, under the SIL Open Font License 1.1.
Extra pixel art: home interiors by Segart, room tiles by Brysia, cat by ToffeeCraft, cursors by Kenney.
Full licenses are in the credits screen in the game.

No AI-generated art or audio. The art is drawn by hand or made in code, plus the licensed pixel art packs above. The sound is licensed recordings and a real voice.

Updated 7 days ago
Published 8 days ago
StatusIn development
PlatformsHTML5, Windows, macOS
AuthorTerminus
GenrePuzzle
Made withGodot
TagsAutomation, coding, Cozy, Pixel Art, Programming, Retro, Trains, y2k, zach-like
AI DisclosureAI Assisted, Code
Please note AI was used to assist with code development. All artwork, music, and sounds are exclusively handmade and/or human generated.

Purchase

Buy Now$3.99 USD or more

In order to download this game you must purchase it at or above the minimum price of $3.99 USD. You will get access to the following files:

terminus-windows.zip 56 MB
Version 0.9.1
terminus-mac.zip 78 MB
Version 0.9.1
terminus-web.zip 28 MB
Version 0.9.1

Download demo

Download
terminus-windows-demo.zip 56 MB
Version 0.9.1

Development log

Leave a comment

Log in with itch.io to leave a comment.