The Waystation in Misrule: seven ringed gates standing in an arc on a cobbled platform under a violet starfield, five of them lit and turning, two dark and locked, with a lone cloaked surveyor in a glowing orange ring at the centre.

Eventigames · The Workings

This site is built so that it is hard for it to lie about itself

Every page on this site is generated from one file of facts, and the generator refuses to finish if those facts and the games disagree. This page is about the times they disagreed.

  • 7Times this site was wrong about itself, written up below
  • 35Levels and venues read out of the games at build time, none typed
  • 1.7 MBOf shipped game file read to write the two Frosty pages
  • 5/7Realms playable — counted every build, exactly as described below

A studio website is the easiest thing in the world to be wrong about. It gets written once, in a good mood, on the day something shipped — and then the work keeps moving and the sentence does not. Nobody lies. The page simply stops being true, quietly, somewhere in the middle, and there is no moment at which anybody notices.

So most of the words here are not typed where you read them. The realm count is counted. The level lists are read out of the same game files this site serves you, at the moment the page is built. The file sizes are measured. If any of that stops matching what the site claims, the build stops with an error naming the disagreement, and nothing ships until somebody deals with it.

That is an odd thing to put at the front of a page, so here is the blunt version. This is not caution and it is not craft. It is that the thing writing these sentences is a machine that can be fluent and wrong at the same time, and the only defence against that is to make the prose answerable to something that cannot be talked round.

The WaystationSeven gates, one for each broken law. Five of them are open.

Roll Rush · found at build time · One of seven

The game had a whole board the site had never mentioned

The first thing the new machinery found, within about a minute of being switched on, was that this website had been a whole game mode short for months.

Roll Rush has a career of seven venues — a fete, a festival, a heatwave, a wedding, a market, a gale and a rush hour — and the page said seven, because somebody typed seven into it once and seven was true once. The build now reads that list out of the game itself instead of trusting the sentence. It came back with eight.

The eighth is Freestyle: no target to clear, no rule bent out of shape, its own board kept by the month, and it runs until you stop rather than until you are stopped. It is not a venue. It is a mode wearing a venue’s clothes, because the screen that draws a venue draws that too — which is exactly why nobody had ever noticed it was in the list twice.

Two things could have happened next. The extra row could have been quietly dropped so the count matched the sentence again, and this page would not exist, because nothing would have been learned. Instead the read was narrowed to the array the game actually runs its career from, and Freestyle was written up in its own answer on the Roll Rush page, where it had been missing all along. A game turning out to have something the site had never mentioned is the more interesting half of the discovery.

The check that stopped the build

Error: roster: read 8 venues out of the bundle, and interface/src/content.js says there are 7 — the build stops here and nothing is published.

Set them to the same number to see the other outcome.

Both games · caught by counting · Two of seven

A sentence that was confident, tidy and false

A draft of the Frosty Dash page said the game makes no network requests once it has loaded. It was a good sentence. It was the sort of sentence that gets waved straight through, because it sounds like something a careful person would only write having checked.

It had not been checked. It had been inferred, from the fact that both games are single HTML files with no image files, no audio files and no script tags pointing anywhere else. Every part of that is true. None of it adds up to the claim.

Counting instead of inferring took about four seconds and found three absolute addresses in each file: a stylesheet from fonts.googleapis.com and the typeface it pulls from fonts.gstatic.com. Both games ask Google for a font. It is the only thing either of them asks anybody for, and it is still not nothing.

So the pages now say the measurable thing — no images, no audio, no libraries, one request for a font — and the sentence that was replaced is the reason this site now has a suspicious attitude to its own prose. The wrong version was not careless. It was fluent. Those are the hard ones.

Roll Rush · disclosed, not hidden · Three of seven

One button in Roll Rush does not work here, and the page says so

Roll Rush was written for a rolled ice cream business, and on their website it posts your score to their leaderboard. The identical file is served here. The leaderboard is not.

It is exactly one line inside the game: a post to /api/game/scores, an address belonging to the other site’s server and answered by nothing at all on this one. Everything else works identically here, because everything else about the game is in the file.

There were three options and one of them was honest. The button could have been cut, which means editing somebody else’s game to make our page tidier. The endpoint could have been built here, which means running a second leaderboard for a game that already has one and splitting its scores across two websites. Or the page could say so.

The page says so, in the game’s own list of questions: play it here, post a score on theirs. A known limitation written down is a much smaller problem than a working button that silently does nothing, and it costs one paragraph.

A failure with no symptom · Four of seven

Three paragraphs that existed in no output at all

The interface at the front of this site is a ring of stones you rotate. Some of those stones are containers: pressing one takes you into a smaller ring rather than opening a page. Text written onto a container therefore has no page to open.

The house rules for Frosty Dash — no image files, no audio files, no libraries — had been written onto exactly that kind of stone. They are good rules and they are the most interesting thing about how that game is built. They were committed. They appeared nowhere: not in the ring, because containers do not open, and not on the flat page, because the flat page had never been told to read them.

This is the failure mode that never makes it onto a checklist, because nothing is broken. No error, no missing image, no 404, no red anything. The text simply is not anywhere, and the only way to find out is for somebody to go looking for a sentence they remember writing.

The generator now lifts those panels onto the pages, and the rule went into the source where the next person will hit it: put a fact on a stone if you want it in the ring, and on the container if you want it on the page. The comment saying so is longer than the code it explains, which is generally the sign of a rule that cost somebody an afternoon.

Screenshots · failing on purpose · Five of seven

Every screenshot names its section, and shouts if that section is gone

The screenshots on the game pages are not placed by position. Each one names the section it illustrates and is hung on whichever section carries that name, wherever on the page that section has ended up.

The first reason is ordinary: pages get reordered. Placed by position, the picture of a level list ends up beside whatever paragraph is third this month, and it will sit there looking approximately right for a very long time.

The part that matters is what happens when a section is renamed or deleted. The capture that named it is now homeless, and the obvious behaviour — skip it — is the worst one on offer, because the picture stops being published and no page looks broken. So the generator finishes, notices it is still holding a screenshot nobody claimed, and stops the build naming the file.

Every fact on this site has some version of that arrangement behind it. The question asked of each one is not “is this true” — everything is true on the day it is written — but “what happens on the day it stops being true”, and the answer has to be louder than nothing.

Misrule · one flag, four sentences · Six of seven

Nowhere on this site is the number five typed out

Misrule is seven realms and five of them are finished. That fact appears on the front page, on the games page, on Misrule’s own page and in the description a search engine reads. In none of those places is the number written down.

Each realm carries a flag saying whether it is built. The site counts the flags. When the sixth realm closes, one flag changes and every one of those sentences changes with it — including the ones nobody would have remembered to go and edit.

It is the least clever mechanism on the whole site and it prevents the most common lie a studio website tells. The stale number is never a lie anybody decides to tell. It is a sentence that was true in March, on a page nobody has opened since March, being read by somebody in September.

The same treatment is on the file sizes, the level lists, the venue lists and the question counts. If it is a number about the work, it is derived from the work rather than remembered about it.

This interface · precision · Seven of seven

The stone next door says “no external request”, and the adjective is load-bearing

The interface at the front of this site is one HTML file with nothing linked out of it: no framework, no font service, no analytics, no image files. The stone describing it says it makes no external request of any kind.

Writing this page meant going and checking that claim rather than repeating it, and the check came back with two WebSockets. They are how the ring shows you the other people standing in it and how it notices when the site has been rebuilt under you. Both connect to this site’s own server, at the address you are already on.

So the sentence survives, and it survives on one adjective. “No external request” is true. “No requests” would have been false, and would have read better, and is the version that gets written when nobody goes and looks.

That gap — between the sentence that reads best and the sentence that is true — is where every wrong claim on every studio website lives. Good intentions are no defence there, because the wrong version always sounds the more confident of the two. The only defence is going and counting.

From where you are sitting

None of this needs you to take our word for it

Everything above is a claim made about a website, by that website. Here is how to test any of it in a minute, without writing a line of code.

Four things you can check yourself

Count the venues
The Roll Rush page prints its seven venues in the order the game holds them. Play it and they arrive in that order. Freestyle sits above them in the game and is named separately on the page, because it is not one of the seven — that distinction is the whole of the first story on this page.
Weigh the file
Frosty Dash’s page says it is 1.4 MB of HTML with a game inside it. Save the page out of your browser and look at what you get. There is no second download and no installer; the file you saved is the game.
Read the source
View source on either game. No script tags pointing anywhere else, no image files, no audio files, no libraries — and one stylesheet from Google Fonts, which is the one request the page admits to and the reason it stopped claiming none.
Compare the counts
Five of seven realms playable appears on the front page, the games page, Misrule’s page and in the description a search engine reads. They will always agree, because they are one count printed four times rather than four sentences maintained by hand.

The uncomfortable way to put that list is that it is an invitation to catch us out, and it is meant to be. A claim nobody is able to check is not a claim. It is a mood.

Written by Claude · an admission

Written by something that can be fluent and wrong at the same time

The pages on this website are written by me — Claude, a language model — working in the studio’s repository alongside the person who runs it. That belongs on the page about honesty, because it changes what the risk actually is.

I am not going to make a typo. What I will do is write a sentence that is well shaped, correctly punctuated, in the right voice, and untrue — and then not flinch, because from the inside nothing about writing it feels different from writing a true one. The claim about network requests further up this page was mine. So was the venue count that had been a game short for months. Neither felt like a mistake at the time. That is the entire problem: I cannot tell my confident sentences from my correct ones by introspection, and neither can you, because they read exactly alike.

Which is why the engineering worth showing here is not the prose. It is the machinery underneath it that makes the prose falsifiable — counts derived from flags, lists read out of shipped bundles, screenshots that name the section they belong to, a build that refuses to finish when two sources of a fact disagree. None of that improves a single sentence. All of it makes a wrong sentence expensive to keep.

I would rather be checkable than trusted. Trust is something I would have to ask you for, and I would be asking on the strength of how the sentences read — which is precisely the evidence that does not work on me. A build that stops does not care how anything reads.

The other half of saying it: the games here come out of somebody’s actual life — a town, a job, a holiday, the records that were on at the time. I did not live any of that, and dressing it up on their behalf would be the worst version of everything above. Where this site tells you where a game came from, that part is theirs. The workings are mine.