SteamTexx
Faultfinder

Endpaper · Endpaper

Faultfinder

gameAppID 5120320Demnächst
Release-Datum24.11.2026

Game Charts

Spielerstatistiken

Standard: letzte 7 Tage, stündlich. · Nicht gesampelt · Zeitraum: Noch nicht abgefragt - Noch nicht abgefragt

Aktuelle Spieler0
24h Peak0
All-Time Peak0
24h Player-Hours0 h

Noch keine Game-Charts-Historie vorhanden.

Spielerhistorie

PeriodeAvg. PlayersGain (total)Gain (%)Peak Players
Letzte 24 Stunden000%0
Letzte 7 Tage000%0
Letzte 30 Tage000%0
Letzte 12 Monate000%0

Details

EntwicklerEndpaper
PublisherEndpaper
KostenlosNo
AlterKeine

She kept the machine that holds the city up for eleven years, and last night it killed her. You have her program and a recording of everything it did. Work back through it until you can point at the line that did it, then prove it. You never write any code, you only read hers.

She was the only one who could read it. Now she's dead, and it's still running.A rune-tape program runs the pressure ward that keeps the Drifted City aloft. It ran correctly for eleven years. Last night it killed the engineer who maintained it. You have her listing. Her logs. Her stepper. Find the instruction that did it. You never write a line of code. You read one.Faultfinder is a deduction game with a debugger for a magnifying glass. Every case opens as three panes: her annotated listing on the left, the machine's live state in the middle, and on the right what the city actually observed. A pressure reading that held at zero for nine seconds. A door that reported closed while it stood open. Your tools are a debugger's, not a programmer's: Step one instruction and watch exactly one thing change. Break on a line, or on a condition: stop when PRESSURE drops below four. Watch a register and read its whole history as a strip beside the tape. Rewind. The entire trace is recorded. The scrub bar runs both ways. Inject a different reading from the outside world and re-run it. Some faults only wake for one input in a thousand. Then you commit. Name one line. Name one fault from a fixed vocabulary: off-by-one boundary, uninitialised register, wrong branch polarity, overwritten value, unit mismatch, missing bounds check. Then name the moment the harm was done. Get all three right and the report writes itself, one clause at a time. Every case has exactly one answer. That is not a promise. It is a proof.Faultfinder's cases aren't designed and playtested into fairness. They're machine-verified before they ship. Each one is built by taking a correct program, applying a single seeded fault, and then proving by exhaustive simulation across the whole input space that the faulty program fails, that reverting that one instruction fixes it, and that no other single change can. If a case has a second defensible answer, the pipeline rejects it and you never see it. No designer ever adjudicates whether your reasoning was fair. The machine already did. The program is a character document.M. VOSK kept this ward for eleven years. She annotated her own tape in pencil, translating each rune for herself in her first year, because nobody had taught her either. Her glosses thin as the cases go on. Her comments get terser. There is a line she commented out, years ago, with the note leave this. You are the first person in eleven years to read her carefully. You are eleven years late. For the specific pleasure almost no game has dramatisedIf you have ever written software, you know the feeling of a bug collapsing into obviousness. The moment a mess becomes a sentence. Faultfinder makes that collapse the win condition and puts a body underneath it. And if you haven't: you don't need to. Nothing here asks you to author anything. The blank page is the wall that keeps most players out of programming games, and this game does not have one. Her handwritten gloss sits beside every rune in the first case. Hover translates anything, always. No case is ever gated on remembering. In the demoSeven cases, 35 to 70 minutes, on one machine: the pressure ward on the city's underside A fourteen-instruction rune-tape, taught by using it Six classes of fault, each hiding in a different way Full rewind, conditional breakpoints, register watches and input injection Her story, told entirely in marginalia and log fragments Wishlist Faultfinder to hear when the full ward opens. From EndpaperA solo studio in Somerset. Built in Godot.

Genres und Kategorien

IndieSingle-playerSteam AchievementsAdjustable Text SizeCustom Volume Controls#category_playable_at_your_own_pacePlayable without Timed InputSave AnytimeSteam CloudFamily Sharing

Plattformen und Anforderungen

windows: yesmac: nolinux: no
PC
{
  "minimum": "<strong>Minimum:</strong><br><ul class=\"bb_ul\"><li>Requires a 64-bit processor and operating system<br></li><li><strong>OS:</strong> Windows 10<br></li><li><strong>Processor:</strong> Any dual-core processor (2 Ghz+)<br></li><li><strong>Memory:</strong> 2 GB RAM<br></li><li><strong>Graphics:</strong> Any GPU with OpenGL 3.3 support<br></li><li><strong>Storage:</strong> 500 MB available space</li></ul>",
  "recommended": "<strong>Recommended:</strong><br><ul class=\"bb_ul\"><li>Requires a 64-bit processor and operating system<br></li><li><strong>OS:</strong> Windows 10/11<br></li><li><strong>Processor:</strong> Any quad-core processor<br></li><li><strong>Memory:</strong> 4 GB RAM<br></li><li><strong>Graphics:</strong> Any GPU with Vulkan or D3D12 support<br></li><li><strong>Storage:</strong> 500 MB available space</li></ul>"
}
Mac
{
  "minimum": "<strong>Minimum:</strong><br><ul class=\"bb_ul\"></ul>",
  "recommended": "<strong>Recommended:</strong><br><ul class=\"bb_ul\"></ul>"
}
Linux
{
  "minimum": "<strong>Minimum:</strong><br><ul class=\"bb_ul\"></ul>",
  "recommended": "<strong>Recommended:</strong><br><ul class=\"bb_ul\"></ul>"
}

Altersfreigaben und Inhalte

dejus{"rating_generated":"1","rating":"l","required_age":"0","banned":"0","use_age_gate":"0","descriptors":""}
steam_germany{"rating_generated":"1","rating":"0","required_age":"0","banned":"0","use_age_gate":"0","descriptors":""}
igrs{"rating_generated":"1","rating":"3","required_age":"0","banned":"0","use_age_gate":"0","descriptors":""}

Ausgewählte Änderung

Über das Spiel · 12.11.2026, 09:30

Vorher
<h2 class="bb_tag" >She was the only one who could read it. Now she's dead, and it's still running.</h2><p class="bb_paragraph" >A rune-tape program runs the pressure ward that keeps the Drifted City aloft. It ran correctly for eleven years. Last night it killed the engineer who maintained it.</p><p class="bb_paragraph" >You have her listing. Her logs. Her stepper.</p><p class="bb_paragraph" ><strong>Find the instruction that did it.</strong></p><p class="bb_paragraph" ><span class="bb_img_ctn"><picture><source srcset="https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/5120320/extras/49675a5a5048910e1739370d38004e4c.webp?t=1787290181"><img src="https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/5120320/extras/49675a5a5048910e1739370d38004e4c.poster.avif?t=1787290181" class="bb_img" width=616 height=128 /></picture></span></p><h2 class="bb_tag" >You never write a line of code. You read one.</h2><p class="bb_paragraph" ><strong>Faultfinder</strong> is a deduction game with a debugger for a magnifying glass. Every case opens as three panes: her annotated listing on the left, the machine's live state in the middle, and on the right what the city actually observed. A pressure reading that held at zero for nine seconds. A door that reported <i>closed</i> while it stood open.</p><p class="bb_paragraph" >Your tools are a debugger's, not a programmer's:</p><ul class="bb_ul"><li><p class="bb_paragraph" ><strong>Step</strong> one instruction and watch exactly one thing change.</p></li><li><p class="bb_paragraph" ><strong>Break</strong> on a line, or on a condition: <i>stop when PRESSURE drops below four</i>.</p></li><li><p class="bb_paragraph" ><strong>Watch</strong> a register and read its whole history as a strip beside the tape.</p></li><li><p class="bb_paragraph" ><strong>Rewind.</strong> The entire trace is recorded. The scrub bar runs both ways.</p></li><li><p class="bb_paragraph" ><strong>Inject</strong> a different reading from the outside world and re-run it. Some faults only wake for one input in a thousand.</p></li></ul><p class="bb_paragraph" ></p><p class="bb_paragraph" >Then you commit. Name <strong>one line</strong>. Name <strong>one fault</strong> from a fixed vocabulary: off-by-one boundary, uninitialised register, wrong branch polarity, overwritten value, unit mismatch, missing bounds check. Then name <strong>the moment</strong> the harm was done. Get all three right and the report writes itself, one clause at a time.</p><p class="bb_paragraph" ><span class="bb_img_ctn"><picture><source srcset="https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/5120320/extras/38e8876178f327fa3bf28982a367ffd5.webp?t=1787290181"><img src="https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/5120320/extras/38e8876178f327fa3bf28982a367ffd5.poster.avif?t=1787290181" class="bb_img" width=616 height=128 /></picture></span></p><h2 class="bb_tag" >Every case has exactly one answer. That is not a promise. It is a proof.</h2><p class="bb_paragraph" >Faultfinder's cases aren't designed and playtested into fairness. They're <strong>machine-verified</strong> before they ship. Each one is built by taking a correct program, applying a single seeded fault, and then proving by exhaustive simulation across the whole input space that the faulty program fails, that reverting that one instruction fixes it, and that <strong>no other single change can</strong>.</p><p class="bb_paragraph" >If a case has a second defensible answer, the pipeline rejects it and you never see it. No designer ever adjudicates whether your reasoning was fair. The machine already did.</p><p class="bb_paragraph" ></p><h2 class="bb_tag" >The program is a character document.</h2><p class="bb_paragraph" >M. VOSK kept this ward for eleven years. She annotated her own tape in pencil, translating each rune for herself in her first year, because nobody had taught her either.</p><p class="bb_paragraph" >Her glosses thin as the cases go on. Her comments get terser. There is a line she commented out, years ago, with the note <i>leave this</i>.</p><p class="bb_paragraph" >You are the first person in eleven years to read her carefully. You are eleven years late.</p><p class="bb_paragraph" ></p><p class="bb_paragraph" ><span class="bb_img_ctn"><picture><source srcset="https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/5120320/extras/29fc7d1bb40c5a7e7befed9102f3365b.webp?t=1787290181"><img src="https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/5120320/extras/29fc7d1bb40c5a7e7befed9102f3365b.poster.avif?t=1787290181" class="bb_img" width=616 height=128 /></picture></span></p><h2 class="bb_tag" >For the specific pleasure almost no game has dramatised</h2><p class="bb_paragraph" >If you have ever written software, you know the feeling of a bug collapsing into obviousness. The moment a mess becomes a sentence. <strong>Faultfinder</strong> makes that collapse the win condition and puts a body underneath it.</p><p class="bb_paragraph" >And if you haven't: you don't need to. Nothing here asks you to author anything. The blank page is the wall that keeps most players out of programming games, and this game does not have one. Her handwritten gloss sits beside every rune in the first case. Hover translates anything, always. No case is ever gated on remembering.</p><p class="bb_paragraph" ></p><h2 class="bb_tag" >In the demo</h2><ul class="bb_ul"><li><p class="bb_paragraph" ><strong>Seven cases</strong>, 35 to 70 minutes, on one machine: the pressure ward on the city's underside</p></li><li><p class="bb_paragraph" >A fourteen-instruction rune-tape, taught by using it</p></li><li><p class="bb_paragraph" >Six classes of fault, each hiding in a different way</p></li><li><p class="bb_paragraph" >Full rewind, conditional breakpoints, register watches and input injection</p></li><li><p class="bb_paragraph" >Her story, told entirely in marginalia and log fragments</p></li></ul><p class="bb_paragraph" ></p><p class="bb_paragraph" ><strong>Wishlist Faultfinder</strong> to hear when the full ward opens.</p><h2 class="bb_tag" >From Endpaper</h2><p class="bb_paragraph" >A solo studio in Somerset. Built in Godot.</p>
Aktuell
<h2 class="bb_tag" >She was the only one who could read it. Now she's dead, and it's still running.</h2><p class="bb_paragraph" >A rune-tape program runs the pressure ward that keeps the Drifted City aloft. It ran correctly for eleven years. Last night it killed the engineer who maintained it.</p><p class="bb_paragraph" >You have her listing. Her logs. Her stepper.</p><p class="bb_paragraph" ><strong>Find the instruction that did it.</strong></p><p class="bb_paragraph" ><span class="bb_img_ctn"><picture><source srcset="https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/5120320/extras/69cebe8a048a32c7f0b71c8d5ad5b035.webp?t=1794041263"><img src="https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/5120320/extras/69cebe8a048a32c7f0b71c8d5ad5b035.poster.avif?t=1794041263" class="bb_img" width=616 height=466 /></picture></span></p><h2 class="bb_tag" >You never write a line of code. You read one.</h2><p class="bb_paragraph" ><strong>Faultfinder</strong> is a deduction game with a debugger for a magnifying glass. Every case opens as three panes: her annotated listing on the left, the machine's live state in the middle, and on the right what the city actually observed. A pressure reading that held at zero for nine seconds. A door that reported <i>closed</i> while it stood open.</p><p class="bb_paragraph" >Your tools are a debugger's, not a programmer's:</p><ul class="bb_ul"><li><p class="bb_paragraph" ><strong>Step</strong> one instruction and watch exactly one thing change.</p></li><li><p class="bb_paragraph" ><strong>Break</strong> on a line, or on a condition: <i>stop when PRESSURE drops below four</i>.</p></li><li><p class="bb_paragraph" ><strong>Watch</strong> a register and read its whole history as a strip beside the tape.</p></li><li><p class="bb_paragraph" ><strong>Rewind.</strong> The entire trace is recorded. The scrub bar runs both ways.</p></li><li><p class="bb_paragraph" ><strong>Inject</strong> a different reading from the outside world and re-run it. Some faults only wake for one input in a thousand.</p></li></ul><p class="bb_paragraph" >Then you commit. Name <strong>one line</strong>. Name <strong>one fault</strong> from a fixed vocabulary: off-by-one boundary, uninitialised register, wrong branch polarity, overwritten value, unit mismatch, missing bounds check. Then name <strong>the moment</strong> the harm was done. Get all three right and the report writes itself, one clause at a time.</p><p class="bb_paragraph" ><span class="bb_img_ctn"><picture><source srcset="https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/5120320/extras/deb95584152c9ed9c076a0b532471748.webp?t=1794041263"><img src="https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/5120320/extras/deb95584152c9ed9c076a0b532471748.poster.avif?t=1794041263" class="bb_img" width=616 height=121 /></picture></span></p><h2 class="bb_tag" >Every case has exactly one answer. That is not a promise. It is a proof.</h2><p class="bb_paragraph" >Faultfinder's cases aren't designed and playtested into fairness. They're <strong>machine-verified</strong> before they ship. Each one is built by taking a correct program, applying a single seeded fault, and then proving by exhaustive simulation across the whole input space that the faulty program fails, that reverting that one instruction fixes it, and that <strong>no other single change can</strong>.</p><p class="bb_paragraph" >If a case has a second defensible answer, the pipeline rejects it and you never see it. No designer ever adjudicates whether your reasoning was fair. The machine already did.</p><h2 class="bb_tag" >The program is a character document.</h2><p class="bb_paragraph" >M. VOSK kept this ward for eleven years. She annotated her own tape in pencil, translating each rune for herself in her first year, because nobody had taught her either.</p><p class="bb_paragraph" >Her glosses thin as the cases go on. Her comments get terser. There is a line she commented out, years ago, with the note <i>leave this</i>.</p><p class="bb_paragraph" >You are the first person in eleven years to read her carefully. You are eleven years late.</p><p class="bb_paragraph" ></p><p class="bb_paragraph" ><span class="bb_img_ctn"><picture><source srcset="https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/5120320/extras/b0b409f9e50015c5d3ae4175a66e3cb9.webp?t=1794041263"><img src="https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/5120320/extras/b0b409f9e50015c5d3ae4175a66e3cb9.poster.avif?t=1794041263" class="bb_img" width=616 height=335 /></picture></span></p><h2 class="bb_tag" >For the specific pleasure almost no game has dramatised</h2><p class="bb_paragraph" >If you have ever written software, you know the feeling of a bug collapsing into obviousness. The moment a mess becomes a sentence. <strong>Faultfinder</strong> makes that collapse the win condition and puts a body underneath it.</p><p class="bb_paragraph" >And if you haven't: you don't need to. Nothing here asks you to author anything. The blank page is the wall that keeps most players out of programming games, and this game does not have one. Her handwritten gloss sits beside every rune in the first case. Hover translates anything, always. No case is ever gated on remembering.</p><h2 class="bb_tag" >In the demo</h2><ul class="bb_ul"><li><p class="bb_paragraph" ><strong>Seven cases</strong>, 35 to 70 minutes, on one machine: the pressure ward on the city's underside</p></li><li><p class="bb_paragraph" >A fourteen-instruction rune-tape, taught by using it</p></li><li><p class="bb_paragraph" >Six classes of fault, each hiding in a different way</p></li><li><p class="bb_paragraph" >Full rewind, conditional breakpoints, register watches and input injection</p></li><li><p class="bb_paragraph" >Her story, told entirely in marginalia and log fragments</p></li></ul><p class="bb_paragraph" ></p><p class="bb_paragraph" ><strong>Wishlist Faultfinder</strong> to hear when the full ward opens.</p><h2 class="bb_tag" >From Endpaper</h2><p class="bb_paragraph" >A solo studio in Somerset. Built in Godot.</p>
Raw AppDetails anzeigen
{
  "5120320": {
    "success": true,
    "data": {
      "type": "game",
      "name": "Faultfinder",
      "steam_appid": 5120320,
      "required_age": 0,
      "is_free": false,
      "dlc": [
        5120330
      ],
      "detailed_description": "<h2 class=\"bb_tag\" >She was the only one who could read it. Now she's dead, and it's still running.</h2><p class=\"bb_paragraph\" >A rune-tape program runs the pressure ward that keeps the Drifted City aloft. It ran correctly for eleven years. Last night it killed the engineer who maintained it.</p><p class=\"bb_paragraph\" >You have her listing. Her logs. Her stepper.</p><p class=\"bb_paragraph\" ><strong>Find the instruction that did it.</strong></p><p class=\"bb_paragraph\" ><span class=\"bb_img_ctn\"><picture><source srcset=\"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/5120320/extras/69cebe8a048a32c7f0b71c8d5ad5b035.webp?t=1794041263\"><img src=\"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/5120320/extras/69cebe8a048a32c7f0b71c8d5ad5b035.poster.avif?t=1794041263\" class=\"bb_img\" width=616 height=466 /></picture></span></p><h2 class=\"bb_tag\" >You never write a line of code. You read one.</h2><p class=\"bb_paragraph\" ><strong>Faultfinder</strong> is a deduction game with a debugger for a magnifying glass. Every case opens as three panes: her annotated listing on the left, the machine's live state in the middle, and on the right what the city actually observed. A pressure reading that held at zero for nine seconds. A door that reported <i>closed</i> while it stood open.</p><p class=\"bb_paragraph\" >Your tools are a debugger's, not a programmer's:</p><ul class=\"bb_ul\"><li><p class=\"bb_paragraph\" ><strong>Step</strong> one instruction and watch exactly one thing change.</p></li><li><p class=\"bb_paragraph\" ><strong>Break</strong> on a line, or on a condition: <i>stop when PRESSURE drops below four</i>.</p></li><li><p class=\"bb_paragraph\" ><strong>Watch</strong> a register and read its whole history as a strip beside the tape.</p></li><li><p class=\"bb_paragraph\" ><strong>Rewind.</strong> The entire trace is recorded. The scrub bar runs both ways.</p></li><li><p class=\"bb_paragraph\" ><strong>Inject</strong> a different reading from the outside world and re-run it. Some faults only wake for one input in a thousand.</p></li></ul><p class=\"bb_paragraph\" >Then you commit. Name <strong>one line</strong>. Name <strong>one fault</strong> from a fixed vocabulary: off-by-one boundary, uninitialised register, wrong branch polarity, overwritten value, unit mismatch, missing bounds check. Then name <strong>the moment</strong> the harm was done. Get all three right and the report writes itself, one clause at a time.</p><p class=\"bb_paragraph\" ><span class=\"bb_img_ctn\"><picture><source srcset=\"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/5120320/extras/deb95584152c9ed9c076a0b532471748.webp?t=1794041263\"><img src=\"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/5120320/extras/deb95584152c9ed9c076a0b532471748.poster.avif?t=1794041263\" class=\"bb_img\" width=616 height=121 /></picture></span></p><h2 class=\"bb_tag\" >Every case has exactly one answer. That is not a promise. It is a proof.</h2><p class=\"bb_paragraph\" >Faultfinder's cases aren't designed and playtested into fairness. They're <strong>machine-verified</strong> before they ship. Each one is built by taking a correct program, applying a single seeded fault, and then proving by exhaustive simulation across the whole input space that the faulty program fails, that reverting that one instruction fixes it, and that <strong>no other single change can</strong>.</p><p class=\"bb_paragraph\" >If a case has a second defensible answer, the pipeline rejects it and you never see it. No designer ever adjudicates whether your reasoning was fair. The machine already did.</p><h2 class=\"bb_tag\" >The program is a character document.</h2><p class=\"bb_paragraph\" >M. VOSK kept this ward for eleven years. She annotated her own tape in pencil, translating each rune for herself in her first year, because nobody had taught her either.</p><p class=\"bb_paragraph\" >Her glosses thin as the cases go on. Her comments get terser. There is a line she commented out, years ago, with the note <i>leave this</i>.</p><p class=\"bb_paragraph\" >You are the first person in eleven years to read her carefully. You are eleven years late.</p><p class=\"bb_paragraph\" ></p><p class=\"bb_paragraph\" ><span class=\"bb_img_ctn\"><picture><source srcset=\"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/5120320/extras/b0b409f9e50015c5d3ae4175a66e3cb9.webp?t=1794041263\"><img src=\"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/5120320/extras/b0b409f9e50015c5d3ae4175a66e3cb9.poster.avif?t=1794041263\" class=\"bb_img\" width=616 height=335 /></picture></span></p><h2 class=\"bb_tag\" >For the specific pleasure almost no game has dramatised</h2><p class=\"bb_paragraph\" >If you have ever written software, you know the feeling of a bug collapsing into obviousness. The moment a mess becomes a sentence. <strong>Faultfinder</strong> makes that collapse the win condition and puts a body underneath it.</p><p class=\"bb_paragraph\" >And if you haven't: you don't need to. Nothing here asks you to author anything. The blank page is the wall that keeps most players out of programming games, and this game does not have one. Her handwritten gloss sits beside every rune in the first case. Hover translates anything, always. No case is ever gated on remembering.</p><h2 class=\"bb_tag\" >In the demo</h2><ul class=\"bb_ul\"><li><p class=\"bb_paragraph\" ><strong>Seven cases</strong>, 35 to 70 minutes, on one machine: the pressure ward on the city's underside</p></li><li><p class=\"bb_paragraph\" >A fourteen-instruction rune-tape, taught by using it</p></li><li><p class=\"bb_paragraph\" >Six classes of fault, each hiding in a different way</p></li><li><p class=\"bb_paragraph\" >Full rewind, conditional breakpoints, register watches and input injection</p></li><li><p class=\"bb_paragraph\" >Her story, told entirely in marginalia and log fragments</p></li></ul><p class=\"bb_paragraph\" ></p><p class=\"bb_paragraph\" ><strong>Wishlist Faultfinder</strong> to hear when the full ward opens.</p><h2 class=\"bb_tag\" >From Endpaper</h2><p class=\"bb_paragraph\" >A solo studio in Somerset. Built in Godot.</p>",
      "about_the_game": "<h2 class=\"bb_tag\" >She was the only one who could read it. Now she's dead, and it's still running.</h2><p class=\"bb_paragraph\" >A rune-tape program runs the pressure ward that keeps the Drifted City aloft. It ran correctly for eleven years. Last night it killed the engineer who maintained it.</p><p class=\"bb_paragraph\" >You have her listing. Her logs. Her stepper.</p><p class=\"bb_paragraph\" ><strong>Find the instruction that did it.</strong></p><p class=\"bb_paragraph\" ><span class=\"bb_img_ctn\"><picture><source srcset=\"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/5120320/extras/69cebe8a048a32c7f0b71c8d5ad5b035.webp?t=1794041263\"><img src=\"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/5120320/extras/69cebe8a048a32c7f0b71c8d5ad5b035.poster.avif?t=1794041263\" class=\"bb_img\" width=616 height=466 /></picture></span></p><h2 class=\"bb_tag\" >You never write a line of code. You read one.</h2><p class=\"bb_paragraph\" ><strong>Faultfinder</strong> is a deduction game with a debugger for a magnifying glass. Every case opens as three panes: her annotated listing on the left, the machine's live state in the middle, and on the right what the city actually observed. A pressure reading that held at zero for nine seconds. A door that reported <i>closed</i> while it stood open.</p><p class=\"bb_paragraph\" >Your tools are a debugger's, not a programmer's:</p><ul class=\"bb_ul\"><li><p class=\"bb_paragraph\" ><strong>Step</strong> one instruction and watch exactly one thing change.</p></li><li><p class=\"bb_paragraph\" ><strong>Break</strong> on a line, or on a condition: <i>stop when PRESSURE drops below four</i>.</p></li><li><p class=\"bb_paragraph\" ><strong>Watch</strong> a register and read its whole history as a strip beside the tape.</p></li><li><p class=\"bb_paragraph\" ><strong>Rewind.</strong> The entire trace is recorded. The scrub bar runs both ways.</p></li><li><p class=\"bb_paragraph\" ><strong>Inject</strong> a different reading from the outside world and re-run it. Some faults only wake for one input in a thousand.</p></li></ul><p class=\"bb_paragraph\" >Then you commit. Name <strong>one line</strong>. Name <strong>one fault</strong> from a fixed vocabulary: off-by-one boundary, uninitialised register, wrong branch polarity, overwritten value, unit mismatch, missing bounds check. Then name <strong>the moment</strong> the harm was done. Get all three right and the report writes itself, one clause at a time.</p><p class=\"bb_paragraph\" ><span class=\"bb_img_ctn\"><picture><source srcset=\"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/5120320/extras/deb95584152c9ed9c076a0b532471748.webp?t=1794041263\"><img src=\"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/5120320/extras/deb95584152c9ed9c076a0b532471748.poster.avif?t=1794041263\" class=\"bb_img\" width=616 height=121 /></picture></span></p><h2 class=\"bb_tag\" >Every case has exactly one answer. That is not a promise. It is a proof.</h2><p class=\"bb_paragraph\" >Faultfinder's cases aren't designed and playtested into fairness. They're <strong>machine-verified</strong> before they ship. Each one is built by taking a correct program, applying a single seeded fault, and then proving by exhaustive simulation across the whole input space that the faulty program fails, that reverting that one instruction fixes it, and that <strong>no other single change can</strong>.</p><p class=\"bb_paragraph\" >If a case has a second defensible answer, the pipeline rejects it and you never see it. No designer ever adjudicates whether your reasoning was fair. The machine already did.</p><h2 class=\"bb_tag\" >The program is a character document.</h2><p class=\"bb_paragraph\" >M. VOSK kept this ward for eleven years. She annotated her own tape in pencil, translating each rune for herself in her first year, because nobody had taught her either.</p><p class=\"bb_paragraph\" >Her glosses thin as the cases go on. Her comments get terser. There is a line she commented out, years ago, with the note <i>leave this</i>.</p><p class=\"bb_paragraph\" >You are the first person in eleven years to read her carefully. You are eleven years late.</p><p class=\"bb_paragraph\" ></p><p class=\"bb_paragraph\" ><span class=\"bb_img_ctn\"><picture><source srcset=\"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/5120320/extras/b0b409f9e50015c5d3ae4175a66e3cb9.webp?t=1794041263\"><img src=\"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/5120320/extras/b0b409f9e50015c5d3ae4175a66e3cb9.poster.avif?t=1794041263\" class=\"bb_img\" width=616 height=335 /></picture></span></p><h2 class=\"bb_tag\" >For the specific pleasure almost no game has dramatised</h2><p class=\"bb_paragraph\" >If you have ever written software, you know the feeling of a bug collapsing into obviousness. The moment a mess becomes a sentence. <strong>Faultfinder</strong> makes that collapse the win condition and puts a body underneath it.</p><p class=\"bb_paragraph\" >And if you haven't: you don't need to. Nothing here asks you to author anything. The blank page is the wall that keeps most players out of programming games, and this game does not have one. Her handwritten gloss sits beside every rune in the first case. Hover translates anything, always. No case is ever gated on remembering.</p><h2 class=\"bb_tag\" >In the demo</h2><ul class=\"bb_ul\"><li><p class=\"bb_paragraph\" ><strong>Seven cases</strong>, 35 to 70 minutes, on one machine: the pressure ward on the city's underside</p></li><li><p class=\"bb_paragraph\" >A fourteen-instruction rune-tape, taught by using it</p></li><li><p class=\"bb_paragraph\" >Six classes of fault, each hiding in a different way</p></li><li><p class=\"bb_paragraph\" >Full rewind, conditional breakpoints, register watches and input injection</p></li><li><p class=\"bb_paragraph\" >Her story, told entirely in marginalia and log fragments</p></li></ul><p class=\"bb_paragraph\" ></p><p class=\"bb_paragraph\" ><strong>Wishlist Faultfinder</strong> to hear when the full ward opens.</p><h2 class=\"bb_tag\" >From Endpaper</h2><p class=\"bb_paragraph\" >A solo studio in Somerset. Built in Godot.</p>",
      "short_description": "She kept the machine that holds the city up for eleven years, and last night it killed her. You have her program and a recording of everything it did. Work back through it until you can point at the line that did it, then prove it. You never write any code, you only read hers.",
      "supported_languages": "English<strong>*</strong><br><strong>*</strong>languages with full audio support",
      "reviews": "“Our strongest combined read on craft plus distinctiveness, out of the 82 demos that dropped yesterday.”<br>Lead – Fieldcraft Scout<br>",
      "header_image": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/5120320/4bf9603334ef11bbbf1574f65949e2feb58cafb0/header.jpg?t=1794041263",
      "capsule_image": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/5120320/f35655145d4a88c06d2fa3c2396e3f55d237e0db/capsule_231x87.jpg?t=1794041263",
      "capsule_imagev5": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/5120320/f35655145d4a88c06d2fa3c2396e3f55d237e0db/capsule_184x69.jpg?t=1794041263",
      "website": "https://endpaperdev.github.io/",
      "pc_requirements": {
        "minimum": "<strong>Minimum:</strong><br><ul class=\"bb_ul\"><li>Requires a 64-bit processor and operating system<br></li><li><strong>OS:</strong> Windows 10<br></li><li><strong>Processor:</strong> Any dual-core processor (2 Ghz+)<br></li><li><strong>Memory:</strong> 2 GB RAM<br></li><li><strong>Graphics:</strong> Any GPU with OpenGL 3.3 support<br></li><li><strong>Storage:</strong> 500 MB available space</li></ul>",
        "recommended": "<strong>Recommended:</strong><br><ul class=\"bb_ul\"><li>Requires a 64-bit processor and operating system<br></li><li><strong>OS:</strong> Windows 10/11<br></li><li><strong>Processor:</strong> Any quad-core processor<br></li><li><strong>Memory:</strong> 4 GB RAM<br></li><li><strong>Graphics:</strong> Any GPU with Vulkan or D3D12 support<br></li><li><strong>Storage:</strong> 500 MB available space</li></ul>"
      },
      "mac_requirements": {
        "minimum": "<strong>Minimum:</strong><br><ul class=\"bb_ul\"></ul>",
        "recommended": "<strong>Recommended:</strong><br><ul class=\"bb_ul\"></ul>"
      },
      "linux_requirements": {
        "minimum": "<strong>Minimum:</strong><br><ul class=\"bb_ul\"></ul>",
        "recommended": "<strong>Recommended:</strong><br><ul class=\"bb_ul\"></ul>"
      },
      "developers": [
        "Endpaper"
      ],
      "publishers": [
        "Endpaper"
      ],
      "demos": [
        {
          "appid": 5120330,
          "description": ""
        }
      ],
      "package_groups": [],
      "platforms": {
        "windows": true,
        "mac": false,
        "linux": false
      },
      "categories": [
        {
          "id": 2,
          "description": "Single-player"
        },
        {
          "id": 22,
          "description": "Steam Achievements"
        },
        {
          "id": 64,
          "description": "Adjustable Text Size"
        },
        {
          "id": 68,
          "description": "Custom Volume Controls"
        },
        {
          "id": 80,
          "description": "#category_playable_at_your_own_pace"
        },
        {
          "id": 74,
          "description": "Playable without Timed Input"
        },
        {
          "id": 79,
          "description": "Save Anytime"
        },
        {
          "id": 23,
          "description": "Steam Cloud"
        },
        {
          "id": 62,
          "description": "Family Sharing"
        }
      ],
      "genres": [
        {
          "id": "23",
          "description": "Indie"
        }
      ],
      "screenshots": [
        {
          "id": 0,
          "path_thumbnail": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/5120320/f8580a793d6315364016fed98080fb934538fd59/ss_f8580a793d6315364016fed98080fb934538fd59.600x338.jpg?t=1794041263",
          "path_full": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/5120320/f8580a793d6315364016fed98080fb934538fd59/ss_f8580a793d6315364016fed98080fb934538fd59.1920x1080.jpg?t=1794041263"
        },
        {
          "id": 1,
          "path_thumbnail": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/5120320/f607da1e6abab5b632e44ba39e65385ba67a2f84/ss_f607da1e6abab5b632e44ba39e65385ba67a2f84.600x338.jpg?t=1794041263",
          "path_full": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/5120320/f607da1e6abab5b632e44ba39e65385ba67a2f84/ss_f607da1e6abab5b632e44ba39e65385ba67a2f84.1920x1080.jpg?t=1794041263"
        },
        {
          "id": 2,
          "path_thumbnail": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/5120320/a41dd0a97428697004162c2dc914faca7580605f/ss_a41dd0a97428697004162c2dc914faca7580605f.600x338.jpg?t=1794041263",
          "path_full": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/5120320/a41dd0a97428697004162c2dc914faca7580605f/ss_a41dd0a97428697004162c2dc914faca7580605f.1920x1080.jpg?t=1794041263"
        },
        {
          "id": 3,
          "path_thumbnail": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/5120320/e363cb465f7dc3e94e448779f6370fecdac31331/ss_e363cb465f7dc3e94e448779f6370fecdac31331.600x338.jpg?t=1794041263",
          "path_full": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/5120320/e363cb465f7dc3e94e448779f6370fecdac31331/ss_e363cb465f7dc3e94e448779f6370fecdac31331.1920x1080.jpg?t=1794041263"
        },
        {
          "id": 4,
          "path_thumbnail": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/5120320/880ad92df7ed858da982bde1230b1e40cb343d06/ss_880ad92df7ed858da982bde1230b1e40cb343d06.600x338.jpg?t=1794041263",
          "path_full": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/5120320/880ad92df7ed858da982bde1230b1e40cb343d06/ss_880ad92df7ed858da982bde1230b1e40cb343d06.1920x1080.jpg?t=1794041263"
        },
        {
          "id": 5,
          "path_thumbnail": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/5120320/926c664eebf8978815db5cc8a004136a28c7fec4/ss_926c664eebf8978815db5cc8a004136a28c7fec4.600x338.jpg?t=1794041263",
          "path_full": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/5120320/926c664eebf8978815db5cc8a004136a28c7fec4/ss_926c664eebf8978815db5cc8a004136a28c7fec4.1920x1080.jpg?t=1794041263"
        },
        {
          "id": 6,
          "path_thumbnail": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/5120320/3dd57ef8c6e7a5332c887327cd3ada475584f848/ss_3dd57ef8c6e7a5332c887327cd3ada475584f848.600x338.jpg?t=1794041263",
          "path_full": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/5120320/3dd57ef8c6e7a5332c887327cd3ada475584f848/ss_3dd57ef8c6e7a5332c887327cd3ada475584f848.1920x1080.jpg?t=1794041263"
        }
      ],
      "movies": [
        {
          "id": 257435086,
          "name": "Gameplay Trailer",
          "thumbnail": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/257435086/b9de7e92247030a4f558f7387ff9a49dd85ce5d4/movie_600x337.jpg?t=1794041117",
          "dash_av1": "https://video.akamai.steamstatic.com/store_trailers/5120320/1144181887/3bfabe358beb567514b912ff635e41983751a230/1794040545/dash_av1.mpd?t=1794041117",
          "dash_h264": "https://video.akamai.steamstatic.com/store_trailers/5120320/1144181887/3bfabe358beb567514b912ff635e41983751a230/1794040545/dash_h264.mpd?t=1794041117",
          "hls_h264": "https://video.akamai.steamstatic.com/store_trailers/5120320/1144181887/3bfabe358beb567514b912ff635e41983751a230/1794040545/hls_264_master.m3u8?t=1794041117",
          "highlight": true
        }
      ],
      "release_date": {
        "coming_soon": true,
        "date": "24 Nov, 2026"
      },
      "support_info": {
        "url": "",
        "email": "endpaperdev@gmail.com"
      },
      "background": "https://store.akamai.steamstatic.com/images/storepagebackground/app/5120320?t=1794041263",
      "background_raw": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/5120320/e46e237bb86ca02f948f728bd7df8917053f093b/page_bg_raw.jpg?t=1794041263",
      "content_descriptors": {
        "ids": [],
        "notes": null
      },
      "ratings": {
        "dejus": {
          "rating_generated": "1",
          "rating": "l",
          "required_age": "0",
          "banned": "0",
          "use_age_gate": "0",
          "descriptors": ""
        },
        "steam_germany": {
          "rating_generated": "1",
          "rating": "0",
          "required_age": "0",
          "banned": "0",
          "use_age_gate": "0",
          "descriptors": ""
        },
        "igrs": {
          "rating_generated": "1",
          "rating": "3",
          "required_age": "0",
          "banned": "0",
          "use_age_gate": "0",
          "descriptors": ""
        }
      }
    }
  }
}