ABOUT THE PROJECT

What Signal Loss is, and why it's built the way it is.

The premise

You're a data officer aboard the ISV Halcyon, investigating outposts and ships across a remote colonial system that have gone dark. There's no away-team, no dialogue tree, no combat. The only thing you have is the last known database each site was running — crew manifests, access logs, sensor telemetry, cargo records. Every mystery is solved the same way: you write the query, the truth comes back as rows.

Why real SQL, not a simulation

Every case runs on an actual embedded SQLite database, server-side. When you write a query, it executes for real — a typo produces a real SQLite syntax error, not a scripted hint pretending to be one. The goal was to make a game that respects players who already know how to code, instead of dumbing the language down for the sake of the story.

Two seasons

Season one (Cases 1–10) is investigation-only: SELECT, WHERE, JOIN, aggregates, subqueries — building up from a single clean join to genuinely tricky multi-table reasoning, ending in a season-long conspiracy that ties every case together.

Season two (Cases 11–20), "Restoration Directive," picks up right after — someone has to actually repair the database the conspiracy corrupted. These cases are write-enabled: real UPDATE, INSERT, and DELETE statements, used to fix tampered records, file missing entries, and clean up fabricated data. Each player's database is their own private, disposable copy, so there's no way to break anything real — RESET DATABASE always restores a case to its original state if a correction goes wrong.

What's under the hood

The game data — schemas, seed data, hints, and answer keys — lives entirely server-side and is never sent to the browser as-is. The client only ever receives briefing text, table and column names, the actual results of queries you legitimately ran, one hint at a time, and pass/fail verdicts. There's no way to "view source" your way to an answer.

Accounts, progress, and the leaderboard are real and persistent. Query history is private by default — a personal record of your own path through a case — but unlocks for comparison with another player once you've both independently solved the same case, so it's for comparing notes, not looking up answers.

Who this is for

Built originally as a classroom tool, then opened up as a general SQL-learning project for anyone — teens who already write some code, curious beginners with the field manual as a safety net, or anyone who'd rather learn a query language by solving something than by reading a syntax table.

ENTER TERMINAL →