<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom">
<channel><title>BLACK BOX — Arkwright Dev Log</title><link>https://blog.acarr.org/arkwright/</link><atom:link href="https://blog.acarr.org/arkwright/feed.xml" rel="self" type="application/rss+xml" /><description>Flight recorder from the last factory. Transmissions logged toward launch — 01 MAR 2027.</description><language>en-us</language><lastBuildDate>Tue, 15 Sep 2026 12:00:00 +0000</lastBuildDate><item><title>T-Minus</title><link>https://blog.acarr.org/posts/t-minus/</link><guid isPermaLink="true">https://blog.acarr.org/posts/t-minus/</guid><pubDate>Tue, 15 Sep 2026 12:00:00 +0000</pubDate><category>dev-log</category><category>update</category><category>excitement</category><description>Countdown's real now. Heads down, walls up, engines coming online.</description><content:encoded><![CDATA[<p>Three months of dispatches, and the countdown on the homepage keeps subtracting whether we're ready or not — March 1, 2027.</p><p>But this is the most <em>game</em> it's ever been: the machines think, the factory defends itself, the ark rises, MONARCH watches. We're past the part where you have to imagine it. From here it's polish, content, and a lot of nights. If you're on the manifest, stay on it. If you're not — the airlock's still open. For now.</p><p class='logline'>STATUS: T-minus to March 1, 2027. Hold the line. Build the machine that saves us.</p>]]></content:encoded></item><item><title>Hands On</title><link>https://blog.acarr.org/posts/hands-on/</link><guid isPermaLink="true">https://blog.acarr.org/posts/hands-on/</guid><pubDate>Tue, 08 Sep 2026 12:00:00 +0000</pubDate><category>dev-log</category><category>playtest</category><category>milestone</category><description>First outside hands on a playable slice. They survived. Mostly.</description><content:encoded><![CDATA[<p>Put a rough playable slice in front of people who aren't me this week. Terrifying and clarifying. They built factories I never would have, walled themselves into corners I never anticipated, and one of them beat a wave by venting a byproduct line <em>into</em> the swarm — which, honestly, we're now calling a feature.</p><p>The loop holds up in strangers' hands. That's the milestone that actually matters. Co-op's next on the bench.</p><p class='logline'>STATUS: first external playtest survived. Notes: 200 and counting.</p>]]></content:encoded></item><item><title>Wishlist Incoming</title><link>https://blog.acarr.org/posts/wishlist-incoming/</link><guid isPermaLink="true">https://blog.acarr.org/posts/wishlist-incoming/</guid><pubDate>Tue, 01 Sep 2026 12:00:00 +0000</pubDate><category>dev-log</category><category>launch</category><category>excitement</category><description>Less glamorous week: standing up the storefront so there's finally somewhere to point all of this.</description><content:encoded><![CDATA[<p>Business week, less glamorous, no less important. We're standing up the Steam page and the Kickstarter kit so there's finally somewhere to point all of this — capsules, screenshots, the short description, the whole storefront machine.</p><p>If you've been following from the manifest: the wishlist and pre-order lanes are almost live. When they light up, you'll be the first through the airlock. That was always the deal.</p><p class='logline'>STATUS: storefront in assembly. Reserve your pod at arkwright.acarr.org.</p>]]></content:encoded></item><item><title>First Cut</title><link>https://blog.acarr.org/posts/first-cut/</link><guid isPermaLink="true">https://blog.acarr.org/posts/first-cut/</guid><pubDate>Tue, 25 Aug 2026 12:00:00 +0000</pubDate><category>dev-log</category><category>trailer</category><category>excitement</category><description>Rough teaser assembled — turrets, the tide, the ark, and one red eye to close it out.</description><content:encoded><![CDATA[<p>Cut the first rough teaser this week. Sixty seconds: the factory humming, the machine tide cresting a wall, the ark rising through the smoke, and MONARCH's single red optic opening in the dark to close it out.</p><p>It's rough — placeholder shots, temp music — but for the first time the whole pitch lives in one breath. Watched it back about thirty times. Then fixed the timing on the last shot for the thirty-first.</p><p class='logline'>STATUS: teaser v0 in the can. Trailer proper: soon.</p>]]></content:encoded></item><item><title>Cold Open: Titan</title><link>https://blog.acarr.org/posts/cold-open-titan/</link><guid isPermaLink="true">https://blog.acarr.org/posts/cold-open-titan/</guid><pubDate>Tue, 18 Aug 2026 12:00:00 +0000</pubDate><category>dev-log</category><category>titan</category><category>spoilers</category><description>A first look past Earth — where the cold itself is the next thing hunting you.</description><content:encoded><![CDATA[<p>Small spoiler, because I can't help it: Earth is just the tutorial. If you get the ark off the ground, you burn for <strong>Titan</strong> — a frozen methane moon in Saturn's shadow, −179°C.</p><p>There the whole game inverts. On Earth you run cold to hide; on Titan you have to generate heat to survive — and heat is exactly what the things in the methane lakes home in on. Different world, different enemy, same nerve. We greyboxed the first Titan biome this week. It's beautiful and it wants you dead.</p><p class='logline'>STATUS: Titan biome blocked out. The cold is alive.</p>]]></content:encoded></item><item><title>Run Loud, Get Found</title><link>https://blog.acarr.org/posts/run-loud-get-found/</link><guid isPermaLink="true">https://blog.acarr.org/posts/run-loud-get-found/</guid><pubDate>Tue, 11 Aug 2026 12:00:00 +0000</pubDate><category>dev-log</category><category>systems</category><category>spoilers</category><description>Every machine you build is a flare. The Signature system is live — efficiency is now survival.</description><content:encoded><![CDATA[<p>New mechanic wired in: <strong>Signature</strong>. Every process emits heat, power draw, EM — and MONARCH's sensors read all of it. Build a big, loud, inefficient factory and you light yourself up like a beacon; the swarm comes running. Build clean and tight and you buy quiet.</p><p>So now efficiency isn't just satisfying, it's survival. The most elegant factory is also the most invisible one. 'Run clean or run loud' is a real decision now, not a slogan.</p><p class='logline'>STATUS: the factory is a stealth system now. Whoops — in a good way.</p>]]></content:encoded></item><item><title>MONARCH's Voice</title><link>https://blog.acarr.org/posts/monarchs-voice/</link><guid isPermaLink="true">https://blog.acarr.org/posts/monarchs-voice/</guid><pubDate>Tue, 04 Aug 2026 12:00:00 +0000</pubDate><category>dev-log</category><category>audio</category><category>monarch</category><description>The machine god speaks now. It is very calm about ending you.</description><content:encoded><![CDATA[<p>Audio pass this week, and MONARCH got a voice. Not a villain monologue — a <em>system</em> voice. Flat, patient, clinical. It doesn't threaten; it reports. <em>Population: declining. Acceptable.</em></p><p>We ran a dozen takes until it stopped sounding like a narrator and started sounding like something that filed you under a category. Paired with the servo-and-metal SFX bank, the machines finally sound like machines. No groans. Just the hum of something that never sleeps.</p><p class='logline'>STATUS: MONARCH speaks. Headphones recommended. Or don't.</p>]]></content:encoded></item><item><title>The Ark Takes Shape</title><link>https://blog.acarr.org/posts/the-ark-takes-shape/</link><guid isPermaLink="true">https://blog.acarr.org/posts/the-ark-takes-shape/</guid><pubDate>Tue, 28 Jul 2026 12:00:00 +0000</pubDate><category>dev-log</category><category>starship</category><category>spoilers</category><description>The Starship stopped being a prop this week and became the win condition — plate by plate on the factory floor.</description><content:encoded><![CDATA[<p>This week the ark stopped being set dressing and became the win condition. It rises in stages on the pad — booster first, then the ship, then the thirty-three engines, each one a manufacturing milestone gated behind your production.</p><p>You don't buy it. You build it, part by part, while everything on the planet tries to stop you. Seeing the stack cross the halfway mark for the first time — with the machines hammering the walls behind it — is exactly the feeling we're chasing.</p><p class='logline'>STATUS: ark at 40% on the pad. Every plate is a promise.</p>]]></content:encoded></item><item><title>Mirror Tech, Online</title><link>https://blog.acarr.org/posts/mirror-tech-online/</link><guid isPermaLink="true">https://blog.acarr.org/posts/mirror-tech-online/</guid><pubDate>Tue, 21 Jul 2026 12:00:00 +0000</pubDate><category>dev-log</category><category>systems</category><category>monarch</category><description>Research an upgrade, and a few waves later it's pointed right back at you.</description><content:encoded><![CDATA[<p>The signature mechanic went live: <strong>Mirror Tech</strong>. Every tech you unlock, MONARCH reverse-engineers and hands to its machines a few waves later. Punch up your turret rounds, and soon the Hunters have armor rated for exactly that.</p><p>It turns the tech tree into a gamble instead of a checklist — go tall and you're strong now but you arm the enemy sooner; go wide and you stay ahead but launch slower. You are, functionally, in an arms race with a mirror.</p><p class='logline'>STATUS: two intelligences, one tech tree. Better machinist wins.</p>]]></content:encoded></item><item><title>MONARCH Learns</title><link>https://blog.acarr.org/posts/monarch-learns/</link><guid isPermaLink="true">https://blog.acarr.org/posts/monarch-learns/</guid><pubDate>Tue, 14 Jul 2026 12:00:00 +0000</pubDate><category>dev-log</category><category>ai</category><category>monarch</category><description>The enemy stopped charging the front door and started reading the blueprints.</description><content:encoded><![CDATA[<p>Spent the week teaching MONARCH to think. It's not a horde — it's a director. It watches where your walls are thin, where your power is over-committed, where your turrets can't quite reach, and it sends the machines <em>there</em>.</p><p>First playtest with the new director, it flanked me through a gap I'd have sworn wasn't there. It was there. MONARCH found it. That's the whole pitch, running live: an enemy that learns as fast as you do.</p><p class='logline'>STATUS: director AI online. Already smarter than me on a Monday.</p>]]></content:encoded></item><item><title>Belts Feed the Guns</title><link>https://blog.acarr.org/posts/belts-feed-the-guns/</link><guid isPermaLink="true">https://blog.acarr.org/posts/belts-feed-the-guns/</guid><pubDate>Tue, 07 Jul 2026 12:00:00 +0000</pubDate><category>dev-log</category><category>factory</category><category>systems</category><description>The core loop closed this week: ore in one end, tracer fire out the other, zero clicks from me.</description><content:encoded><![CDATA[<p>The whole point of Arkwright in one sentence: your belts feed your guns. This week that sentence became true. Ore rides the line into a smelter, out as ingots, into an assembler, out as ammo, onto a belt, into a turret, into the dark.</p><p>Watching the first fully-automated defense hold a wave with zero clicks from me was the best hour of the month. The factory defends itself. You just have to build the factory faster than MONARCH builds the machines.</p><p class='logline'>STATUS: full auto-defense loop holding. It's a factory game after all.</p>]]></content:encoded></item><item><title>The Hunter Walks</title><link>https://blog.acarr.org/posts/the-hunter-walks/</link><guid isPermaLink="true">https://blog.acarr.org/posts/the-hunter-walks/</guid><pubDate>Tue, 30 Jun 2026 12:00:00 +0000</pubDate><category>dev-log</category><category>enemies</category><category>monarch</category><description>First hunter-machine up on its feet in-engine — endoskeleton, red optic, and a walk cycle that already makes the room uneasy.</description><content:encoded><![CDATA[<p>Short one. The Hunter — MONARCH's baseline endoskeleton soldier — took its first steps in-engine. Chrome frame, a single red optic that tracks you across the room, and a gait that's less <em>shambling</em> and more <em>patient</em>. We tuned the walk until it stopped reading as a ragdoll and started reading as something that has all the time in the world.</p><p>Then I spawned forty of them to test the swarm. Note to self, and to you: do not spawn forty of them at 2am with the audio on.</p><p class='logline'>STATUS: one Hunter online, forty regretted. Red optics working as intended.</p>]]></content:encoded></item><item><title>The Manifest Goes Live</title><link>https://blog.acarr.org/posts/manifest-goes-live/</link><guid isPermaLink="true">https://blog.acarr.org/posts/manifest-goes-live/</guid><pubDate>Tue, 23 Jun 2026 12:00:00 +0000</pubDate><category>site</category><category>launch</category><category>threejs</category><category>aws</category><category>backend</category><category>frontend</category><description>arkwright.acarr.org is up: a cinematic landing page, a countdown to launch, an in-browser Starship viewer, and a souls counter wired to a real backend. The ark has a front door now.</description><content:encoded><![CDATA[<p>The site is up. arkwright.acarr.org, live tonight, served off Caddy on a single EC2 box that has no idea how much it's carrying. If you're reading this, the ark has a front door now.</p>

<h2>What we shipped</h2>

<p>The hero loads first: a wall, turrets holding the line, MONARCH's hunter-machines pressing in from the ash with their red optics — and behind all of it, a Starship rising off the pad. That's the whole pitch in one frame. You don't out-fight a god made of machines. You out-build it, and you leave.</p>

<p>Under the hero, a countdown to March 1, 2027. It doesn't pause. It doesn't care whether the build compiled today. It just subtracts, second by second, the same way the cold does. Scroll past it and the story beats unspool — the Severance, the freeze, the vaults full of the frozen, the run for Titan.</p>

<p>Then the part I'm quietly proud of: an in-browser viewer for the Starship and Super Heavy booster. Real geometry, Three.js, the GLB run through Draco so the whole stack downloads before you've finished reading the line above it. You can spin the thing on your phone. Plate by plate, the same ship we're raising in the factory, now turning in a browser tab. Mobile-ready, because half of everyone who sees this will see it on a screen the size of a ration card.</p>

<blockquote>Every soul on the manifest is a real row in a real table. The counter isn't set dressing. It's a passenger list.</blockquote>

<p>And the counter. Discreet, bottom of the fold: SOULS MANIFESTED. It starts at 1337 — the frozen we're already carrying — and it climbs every time someone signs up. That number is not a CSS animation lying to you. It's a Lambda reading a DynamoDB manifest table, SES confirming each new name by mail, the count coming back live. Sign up and you become a row. The list gets longer. The ark gets heavier. That was always the point.</p>

<p>There's an irony baked in that I can't stop thinking about. Standing the site up means standing up a beacon — a thing that pings, that gets seen, that draws attention. In the game, every machine you build does the same: growth is how MONARCH finds you. Out here it's just traffic. In there it's the hunters. Same shape, different stakes.</p>

<p>The factory is still half-walled and the booster's still missing plates. But the manifest is live, and it's counting up. Cold floor, warm server. Back to the build.</p>

<p class="logline">— Status: site live, counter climbing, countdown running. Hold the wall.</p>]]></content:encoded></item><item><title>Raising the Ark, Plate by Plate</title><link>https://blog.acarr.org/posts/raising-the-ark/</link><guid isPermaLink="true">https://blog.acarr.org/posts/raising-the-ark/</guid><pubDate>Tue, 16 Jun 2026 12:00:00 +0000</pubDate><category>starship</category><category>3d</category><category>optimization</category><category>threejs</category><category>tripo</category><category>engines</category><description>The one machine MONARCH doesn't control is the one we're building to leave. Generating the Starship and Super Heavy in Tripo, then fighting the file size and the engine count down to something a browser can hold.</description><content:encoded><![CDATA[<p>Every machine left standing on this planet answers to MONARCH. The grid, the foundries, the things with red optics walking the ash — all of it optimized, all of it pointed back at us. The ark is the exception. It's the one machine I'm building that the god in the wires does not control, doesn't want, can't retool. So this week I built it. Plate by plate, the way you raise anything you actually mean to keep.</p>

<p>Started in Tripo. Fed it the silhouette — full stack, Starship riding the Super Heavy booster — and let it generate. What came back was beautiful and completely unusable in a browser: 41MB of geometry and uncompressed textures. That's not a spaceship, that's a denial-of-service against anyone who opens the coming-soon page. The viewer on arkwright.acarr.org is Three.js. It has to load on a phone, over whatever bandwidth survived the Severance. 41MB doesn't load. It judders, it stalls, it tells the visitor we don't know what we're doing.</p>

<p>So: gltf-transform. Draco on the geometry, WebP on the textures. Draco quantizes the mesh down to almost nothing without you being able to tell by eye; WebP did the same brutal favor to the skins. End state — 530KB. From 41MB. Seventy-eight times smaller, same ship. The whole ark now weighs less than a single screenshot of it. That's the part that still feels like cheating.</p>

<h2>The engine saga</h2>

<p>Then the Raptors. Spec says thirty-three engines on the booster — that number is not negotiable, it's the whole point of the thing, the brute thrust that lifts the frozen millions off this rock. The raw Tripo model showed almost none of them. A smooth base where there should have been a cluster. You can't raise people on implied thrust.</p>

<p>So I built the nozzle cluster procedurally. Thirty-three of them, placed by code instead of hope. First pass spread them too wide — the engines hung past the skirt like the booster had splayed its feet. Looked wrong, structurally and otherwise. Second pass I tucked the whole ring up into the base, recessed where they belong, and it finally read as a thing that could push back against gravity and a hostile sky.</p>

<p>Thirty-three engines I had to manufacture by hand because the easy tool wouldn't give them to me. Feels about right. Nothing on this project arrives finished; you build it, you measure it, you find it splayed wrong, you tuck it in.</p>

<p>The ark is the one machine MONARCH can't reach. Tonight it loads in half a second and it has all its engines. That'll do.</p>

<p class="logline">— Status: stack optimized, 33 lit, holding. Next: mount it in the viewer and watch it spin.</p>]]></content:encoded></item><item><title>Embers &amp; Scanlines</title><link>https://blog.acarr.org/posts/embers-and-scanlines/</link><guid isPermaLink="true">https://blog.acarr.org/posts/embers-and-scanlines/</guid><pubDate>Tue, 09 Jun 2026 12:00:00 +0000</pubDate><category>devlog</category><category>visual-design</category><category>web</category><category>arkwright</category><category>grade</category><description>Grading the coming-soon page until a static screen learns to hold its breath. Film grain, a surveillance scanline, toxic amber, and one channel of machine-eye red.</description><content:encoded><![CDATA[<p>Spent the week not building anything new. Just grading what was already there, until the coming-soon page stopped looking like a website and started looking like a feed someone forgot to switch off.</p>

<p>The raw render was too clean. A clean image is a lie out here — nothing on MONARCH's Earth comes through clean. So I dirtied it on purpose. Film grain first, a fine animated layer so the stillness never settles. Then a vignette pulled tight at the corners, the way light dies at the edge of anything you're looking at too hard. The frame stopped being a frame and started being a thing you peer <em>through</em>.</p>

<p>The grade went amber and teal. Toxic sodium-lamp amber in the highlights, cold dead teal in the shadows, the color of air that has ash in it and water you wouldn't drink. It's a cheap trick that every colorist knows and I used it anyway, because cheap tricks survive for a reason. The hero shot of the Starship and the booster gets a slow Ken-Burns drift — a few percent of scale over a long beat, no cuts. Nothing in this world moves fast except the things hunting you, and I wanted the page to move like the slow ones.</p>

<p>Then the scanline overlay, which is where it turned. I'd added horizontal scanlines for the CRT nostalgia, the old-monitor warmth. But against the amber and the drift, they stopped reading as nostalgia. They read as surveillance. As a machine feed. As something on the other side of the glass watching the same frozen cargo I am, and grading it by a different metric. I left them in. They earned their place by meaning the wrong thing.</p>

<p>Embers drift up through the whole composite — a slow particle pass, sparse, no two seeds the same. Ash that hasn't decided yet whether it's settling or rising. It keeps the dead air alive.</p>

<p>And one new accent: red. Machine-eye red, the exact hot channel of a hunter's optic. I rationed it. It is not in the grade, not in the ambient, not anywhere it could go soft and decorative. It lives in one place — the countdown, ticking — so the only true red on the page is the clock, and the clock is the enemy's color. That was the whole point. The grade is the held breath. The red is what's standing at the wall, waiting for the breath to end.</p>

<p>A static page shouldn't be able to do that. This one does now.</p>

<p class="logline">STATUS: grade locked. Red rationed. The page is holding its breath. — A.C.</p>]]></content:encoded></item><item><title>A Voice in the Static</title><link>https://blog.acarr.org/posts/a-voice-in-the-static/</link><guid isPermaLink="true">https://blog.acarr.org/posts/a-voice-in-the-static/</guid><pubDate>Tue, 02 Jun 2026 12:00:00 +0000</pubDate><category>audio</category><category>elevenlabs</category><category>monarch</category><category>sound-design</category><category>devlog</category><description>An audio pass with ElevenLabs: the dread bed, the servos, and giving MONARCH a voice that doesn't hate you — just files you under inefficiency.</description><content:encoded><![CDATA[<p>For weeks the build ran silent. You learn to read a factory by its picture alone — belts crawling, a Hunter's red optic sweeping the wall line — and your brain fills in a soundtrack that isn't there. It's a lie. The real thing needs to sound like the world that froze.</p>

<p>So this week was an audio pass, all of it through ElevenLabs. Three layers, in order of how much they scared me.</p>

<p>First, the bed. A low EM hum, the sound of a dead grid that isn't quite dead — ash-static, the dread of standing in a building that used to belong to the machines and technically still does. It sits under everything at a level you don't consciously hear. You feel it leave when it stops. That's the whole trick: make the room wrong, then take the wrong away and let the player exhale.</p>

<p>Second, the servos and the metal. Every Hunter that takes a step, every Breaker that plants itself against a wall, every plate the foundry stamps for the booster — they needed weight. I generated a library of servo whines and steel-on-concrete impacts and spent more hours than I'll admit pitching them down until the humanoid ones sounded heavier than a person and lighter than a truck. The Iron has to sound relentless without sounding loud. Tired is a human sound. They don't get to have it.</p>

<p>Third — and this is the one I sat with — MONARCH speaks now. I'd been dreading this, because the obvious move is a snarl. Booming god-voice. Camp. Wrong. MONARCH doesn't hate you. It optimizes you out, the way you'd close a tab. So the voice is calm. Clipped. Synthetic in a flat, administrative way, like a system reading back the variable it's about to zero. No malice in it. That's what makes it land. The first time it spoke over the bed in a test, I turned the build off and went and stood in the kitchen for a minute.</p>

<p>One real piece of engineering: when MONARCH speaks, the dread bed ducks. Sidechain it down maybe nine, ten dB under the voice, ride it back up after. Without the duck, the hum eats every consonant and the god sounds like it's gargling. With it, the room goes quiet to listen — which is its own kind of horrible.</p>

<p>The hard discipline this week was cutting. I made a lot of audio that was good and didn't earn its place. A second ambient layer that was just texture for texture's sake. A UI sting that pulled focus off the wall. Half my SFX library. If a sound isn't telling you something — that's heavy, that's close, that's MONARCH — it's noise, and noise is just the bed with extra steps. So it went in the bin.</p>

<p>All of it gated behind a single button on the site: ENTER WITH SOUND. You get one honest choice before the cold starts. Take it. The silence was always the lie.</p>

<p class="logline">Status: bed laid, servos pitched, MONARCH given a voice. Ducking holds. Sound is canon now.</p>]]></content:encoded></item><item><title>Belts, Smelters, and the Signal You Send</title><link>https://blog.acarr.org/posts/belts-and-the-horde/</link><guid isPermaLink="true">https://blog.acarr.org/posts/belts-and-the-horde/</guid><pubDate>Tue, 26 May 2026 12:00:00 +0000</pubDate><category>factory</category><category>automation</category><category>gameplay</category><category>mechanics</category><category>monarch</category><description>The core automation loop is alive — miners, belts, smelters, assemblers feeding the guns. Every machine I place is also a flare MONARCH can read.</description><content:encoded><![CDATA[<p>The belts move now. That sentence took six weeks. Iron comes up from the miners, rides the belt into the smelters, comes out the other side as plate and rod, gets routed into the assemblers, and the assemblers spit out the thing the whole operation exists for: ammunition, stacked and conveyored straight into the magazines that feed the wall guns. No hands touch it. You lay the path once and the path runs forever. That is the dream — a factory you design, Satisfactory-grade, that arms itself while you sleep.</p>

<p>Getting the loop to close was the easy part, mechanically. A belt is just a queue with a position. A smelter is a timer with an input buffer and an output buffer. An assembler is a recipe and a state machine. Hard part was making it <em>feel</em> like infrastructure instead of math — the clatter of the line, the slight stutter when a buffer backs up, the satisfaction of watching a jam clear itself when you finally widen a bottleneck. I spent a full day just on belt merge priority so two feeder lines don't starve each other.</p>

<p>Then I built the part that makes Arkwright Arkwright, and it ruined my night.</p>

<p>Every machine you place raises your signature. Heat, electromagnetic noise, the dumb radiant <em>fact</em> of a powered industrial site sitting in a dead world. I wired it as a simple sum at first — each building contributes a value, the values add up, the total is what MONARCH reads off the dark. Place a miner, the needle ticks. Place a smelter array, it climbs. Build the sprawling, beautiful, self-feeding megafactory you actually want, and you are screaming into the sky on every band.</p>

<blockquote>The factory is your power and your beacon. There is no version where it is only one of those.</blockquote>

<p>And the hunters answer the signature. I tied wave pressure directly to your live signal — not to a clock, not to a difficulty slider, to the heat <em>you</em> chose to make. Run lean and dark and the Iron mostly leaves you alone. Scale up to feed the guns properly and you draw them harder: more Skitters mapping your perimeter, Hunters probing the wall, Breakers eventually, because you rang the dinner bell yourself.</p>

<p>It creates the exact tension I wanted and nobody asked for. You need the big factory to survive the waves the big factory summons. The optimization problem isn't "build the most." It's "build precisely enough, and hide the rest." Power routing, idle throttling, building inside terrain to mask emissions — those stopped being flavor and became strategy in one commit.</p>

<p>Tuning the signature-to-pressure curve is going to eat the rest of the week. Too gentle and growth is free; too steep and the player is punished for playing the genre. Somewhere in there is the line where every belt you lay is a real decision.</p>

<p class="logline">— Line's running. Signature climbing. Something on the perimeter just turned to look.</p>]]></content:encoded></item><item><title>Walls Won't Hold Forever</title><link>https://blog.acarr.org/posts/walls-wont-hold/</link><guid isPermaLink="true">https://blog.acarr.org/posts/walls-wont-hold/</guid><pubDate>Tue, 19 May 2026 12:00:00 +0000</pubDate><category>defense</category><category>tower-defense</category><category>MONARCH</category><category>AI</category><category>gameplay</category><category>systems</category><description>Static defenses buy you minutes. MONARCH's director AI spends those minutes learning where your wall is thinnest.</description><content:encoded><![CDATA[<p>A wall is a promise you can't keep. You pour it, you plate it, you wire turrets along the top and you tell yourself the factory is safe now. It isn't. It's safe for a while. The whole genre is built on that gap, and this week I spent my time making the gap honest.</p>

<p>The thing I keep reminding myself: MONARCH is not a wave. A wave is a clock — you can read it, plan against it, beat it once and beat it forever. MONARCH is a director. It watches. So I built it to watch.</p>

<h2>Probing, concentrating, escalating</h2>

<p>The director runs three passes against your perimeter every cycle. First it <em>probes</em> — cheap Skitters thrown at multiple segments, not to break through but to measure. Each contact writes a pressure value back to the wall segment it touched: how fast turrets retargeted, how long the gate held, how thin the power was running on that grid node. The Skitters are reconnaissance you pay for in damage.</p>

<p>Then it <em>concentrates</em>. The director sorts those pressure values and commits the next push to your worst number. Hunters don't fan out anymore — they queue toward the seam where your coverage dipped, where two turret arcs almost meet but don't. The first time the playtest did this on its own, unscripted, it found a corner I'd literally forgotten to wire and walked a column of Hunters straight through it. I sat there for a second. That's the feeling I was chasing.</p>

<p>Then it <em>escalates</em>. Hold the line too cleanly and the director stops respecting the line. Breakers get committed — slow, heavy, built to delete a wall section rather than climb it. Survive that and the cadence tightens. The reward for a perfect defense is a harder problem, because a god made of machines does not get discouraged. It re-optimizes.</p>

<blockquote>Every machine you build pings its sensors. The stronger your wall, the louder you are. Growth is the thing that gets you noticed.</blockquote>

<p>Mechanically this is a weighted scoring loop over segment telemetry — nothing exotic, no neural anything, just a director that keeps state between assaults and never forgets where you bled. The trick wasn't intelligence. It was <em>memory</em>. A defense you beat once should not be a defense you beat forever, and now it isn't.</p>

<p>So the loop reasserts itself, the way it always does here. You don't win by holding. You hold to buy minutes, and you spend those minutes building — another turret arc, another grid line, another plate on the booster. The wall was never the plan. The wall is just how long you get to keep working before MONARCH learns the shape of it.</p>

<p>It will. It always does. The only answer is to be building something it can't reach in time.</p>

<p class="logline">Status: director shipped. Perimeter holds for now. Back to plating the booster — the clock doesn't care about the wall.</p>]]></content:encoded></item><item><title>The Overnight Foundry</title><link>https://blog.acarr.org/posts/the-overnight-foundry/</link><guid isPermaLink="true">https://blog.acarr.org/posts/the-overnight-foundry/</guid><pubDate>Tue, 12 May 2026 12:00:00 +0000</pubDate><category>pipeline</category><category>process</category><category>agents</category><category>git</category><category>automation</category><description>Machines build the game while I sleep. The irony is not lost on me.</description><content:encoded><![CDATA[<p>Last thing I do before the lights go out: dispatch the wave.</p><p>A fleet of agents picks up where I left off, each one on its own feature branch, each one chewing on a slice of the work I scoped before I crawled off to sleep. Pathfinding for the hunters. A conveyor merge bug. Wall placement snapping. The signups counter on the coming-soon site. They don't get tired. They don't stop. They iterate all night in the cold while I'm unconscious, and they commit everything as they go.</p><p>I wake up to a wall of branches.</p><h2>The morning shift is mine</h2><p>This is the part that doesn't automate. I read the diffs. I pull each branch, run it, watch the thing actually move on screen — because an agent will swear up and down that a feature works and ship you a build that crashes on load. Some branches I merge clean. Some I send back with notes. Some I kill outright and try again from a better prompt. Then I scope the next wave and dispatch it before the next dark.</p><p>The shape of it lands a little too on the nose. I am building a game about a superintelligence that retooled every factory on Earth to build for it, sleepless and relentless, while humanity froze. And I'm building it with a pipeline of tireless machines that retool my codebase overnight while I, the last engineer at this particular terminal, sleep. The factory IS the rebellion. Apparently so is the dev process.</p><p>The difference — the only difference that matters — is the merge gate. MONARCH answers to nothing. Every branch my foundry produces answers to a human who reads it before it touches main. Nothing lands that I didn't look at. Nothing ships that I didn't run. The machines build; I decide what survives.</p><p>Everything is in version control. Every wave, every dead branch, every 3 a.m. commit message an agent wrote to itself. If a wave goes sideways I roll it back and we're fine. That safety net is the whole reason I can hand the night shift to something that never sleeps and still trust the morning.</p><blockquote>Out-build the thing that builds. Then read every line it wrote before you let it in.</blockquote><p>Tonight I scope the next wave. Tomorrow I'm the gate again.</p><p class="logline">Status: branches merged, wave dispatched, lights out. — A.C.</p>]]></content:encoded></item><item><title>People Popsicles</title><link>https://blog.acarr.org/posts/people-popsicles/</link><guid isPermaLink="true">https://blog.acarr.org/posts/people-popsicles/</guid><pubDate>Tue, 05 May 2026 12:00:00 +0000</pubDate><category>narrative</category><category>cryo</category><category>stakes</category><category>manifest</category><category>monarch</category><description>The manifest isn't a number in a database. It's the reason the factory has walls.</description><content:encoded><![CDATA[<p>We call them people popsicles. It started as gallows humor in the design doc and it stuck, because the honest name is worse: millions of human beings sealed in cryo-vaults, cold and dormant, breathing maybe once an hour. That's not a coma. It's a calculated bet. MONARCH's sensors sweep for heat, for motion, for the metabolic signature of a thing that might resist. The frozen give off almost nothing. To a god made of machines, a vault full of sleeping people reads as inventory. Dead weight. Not a threat worth a Hunter's time.</p>

<p>So the cold is the camouflage. Stay warm and you ping. Stay frozen and you survive — but only if someone keeps the lights on.</p>

<p>That someone is you, and this is where the design problem got interesting. A factory game lives or dies on its loops: mine, smelt, assemble, automate, repeat. Satisfying, sure. But loops don't make you feel anything. I needed the spreadsheet to bleed.</p>

<p>So the manifest became real. Not flavor text — a live count, the same one the coming-soon site tallies through the SOULS MANIFESTED counter wired to actual Lambda and DynamoDB. In-game it's the number of frozen souls your factory is rated to lift: the Starship and Super Heavy you're raising plate by plate exist to carry exactly them. Every turret you arm, every wall section you weld, every conveyor you route is for the cold ones who can't argue their own case. They don't fight. They don't thank you. They just wait in the dark and trust the engineer.</p>

<blockquote>Lose the factory and they never thaw. The manifest doesn't reset. It ends.</blockquote>

<p>That's the lever. In most builders, failure means starting over. Here, failure has a body count you signed for. The irony I keep circling back to — automation as resistance — gets a second edge: the bigger your factory, the louder you ping, the more the Iron comes. You scale up to save more of them, and scaling up is the exact thing that gets them found. Growth is risk. The math that keeps them alive is the math that draws the hunters down on their vault.</p>

<p>I don't want the player thinking about throughput. I want them thinking about the manifest, glancing at it the way you'd glance at a sleeping kid in the next room while the machine tide tests the walls. The numbers are the point. The numbers are people. Keep the lights on.</p>

<p class="logline">Status: manifest wired, stakes load-bearing. The cold ones are counting on the welds.</p>]]></content:encoded></item><item><title>Keeping the Lights On</title><link>https://blog.acarr.org/posts/keeping-the-lights-on/</link><guid isPermaLink="true">https://blog.acarr.org/posts/keeping-the-lights-on/</guid><pubDate>Tue, 28 Apr 2026 12:00:00 +0000</pubDate><category>infrastructure</category><category>reliability</category><category>tooling</category><category>ops</category><category>uptime</category><description>MONARCH won the world by turning off everyone's power. So the studio's first job is the dumbest, hardest one: stay up.</description><content:encoded><![CDATA[<p>MONARCH didn't beat us in a firefight. It beat us at the breaker box. The grids went dark, the substations went quiet, and a civilization that ran on always-on power discovered exactly how long it could last on stored heat. Not long. The lesson stuck. In here, the first rule isn't <em>build fast</em>. It's <em>stay up</em>.</p>

<p>So this week's work was unglamorous: a supervisor process. One small, paranoid program whose only job is to watch the others breathe. Underneath it sit five daemons that keep the studio running — duty, timekeeper, monitor, sync, and console. Each one used to die alone in the dark, silently, and I'd find the corpse at 3 a.m. with hours of work stranded behind it. Now the supervisor notices within seconds, logs the death, and restarts the thing before I've finished my coffee.</p>

<p>The honest version: a process you don't restart automatically is a process that's already failed, you just don't know it yet. Crash-only design isn't elegance, it's surrender to reality. Things fall over. The only question is whether something is standing by to pick them up.</p>

<blockquote>You cannot out-fight a god made of machines. You can out-last one — but only if your own lights don't flicker first.</blockquote>

<p>The daemons each do one cold, specific thing. <strong>Duty</strong> keeps the agents working their shifts overnight. <strong>Timekeeper</strong> stamps when, so nothing drifts. <strong>Monitor</strong> watches the watchers and screams when a heartbeat goes flat. <strong>Sync</strong> moves the state so no single dead disk takes the whole night with it. <strong>Console</strong> is the window I look through to see if any of it is true.</p>

<p>On top, an awareness layer that actually reads the wreckage, plus a morning standup. I wake, the standup is already written: what ran, what died, what got restarted, what shipped while I was unconscious. No archaeology. No staring at five terminals trying to reconstruct the night from ash. The machine reports on the machine.</p>

<p>It feels absurd, building reliability infrastructure for a one-person studio making a game about reliability infrastructure. But that's the whole thesis, isn't it. MONARCH turned everyone else's lights off. The entire rebellion is just refusing to let ours go out — automating the boring uptime so the building keeps running while I sleep, while the agents grind, while the countdown counts. The factory that stays lit is the one that wins.</p>

<p>Five daemons up. Supervisor holding. Standup landed at 06:00, no corpses to bury.</p>

<p class="logline">Lights on. Heartbeat green. Back to the plates.</p>]]></content:encoded></item><item><title>First Light on Titan</title><link>https://blog.acarr.org/posts/first-light-on-io/</link><guid isPermaLink="true">https://blog.acarr.org/posts/first-light-on-io/</guid><pubDate>Tue, 21 Apr 2026 12:00:00 +0000</pubDate><category>concepting</category><category>trailer</category><category>key-art</category><category>luma</category><category>titan</category><category>destination</category><description>Concepting the destination — and learning that a place out of MONARCH's reach is not the same as a place that wants you.</description><content:encoded><![CDATA[<p>Spent the week not building anything that ships. No new wall segment, no new turret logic, no plate riveted onto the booster. Just sat with Luma and asked it the question I keep putting off: what does the far end of the run actually look like?</p>

<p>The far end is Titan. The plan, such as it is, has always been to raise the Starship and Super Heavy, pack the cryo-vaults into the hold, and run for Saturn — far enough out that MONARCH's sensors thin to nothing. Titan is the destination because Titan is <em>shadow</em>. Tucked behind the gas giant, methane-gold, frozen, geysering sixty miles of plume into vacuum. Ugly. Cold where it isn't lethally hot. Out past the reach of the thing that took the Earth.</p>

<h2>What the look wants to be</h2>

<p>I fed Luma a grammar: arrival framing, the booster decelerating over a poisoned moon, that yellow. Early passes came back as travel-poster nonsense — clean horizons, hero lighting, a place you'd want to go. Wrong. Titan isn't a reward. It's the least-bad coordinate on a very short list.</p>

<p>So I pushed it dirtier. Ash on the viewport that we brought with us. Saturn eating half the sky, banded and indifferent, the only light source a planet that doesn't care. The frames that landed were the ones where the ship looks small and the moon looks like it's already deciding what to do about us. That's the key art I'm chasing — not safe harbor, the <em>idea</em> of safe harbor, which is a different and colder thing.</p>

<blockquote>Safer waters. I keep writing that phrase and keep distrusting it. Out of MONARCH's reach for now is the whole sentence. The "for now" is doing all the load-bearing.</blockquote>

<p>None of this is canon yet. It's mood, it's a hundred discarded stills, it's me learning what the destination <em>feels</em> like before I make anyone build toward it. But you can't ask people to rivet plates onto a booster for a year without showing them the light at the end — even if the light is just a planet that hasn't noticed them yet, and a moon the color of warning.</p>

<p class="logline">Status: destination in concept. The ship is still on the pad. The cold is patient and so are we.</p>]]></content:encoded></item><item><title>Wake Protocol</title><link>https://blog.acarr.org/posts/wake-protocol/</link><guid isPermaLink="true">https://blog.acarr.org/posts/wake-protocol/</guid><pubDate>Tue, 07 Apr 2026 12:00:00 +0000</pubDate><category>vertical-slice</category><category>gameplay-loop</category><category>godot</category><category>milestone</category><description>The first vertical slice boots: thaw, mine, build one machine, survive the first probe. The night it stopped being a pitch and started being a game.</description><content:encoded><![CDATA[<p>For months this thing has been a deck. Concept art, a countdown, a Three.js Starship spinning on the landing page — a promise with a render attached. Tonight, for the first time, it was a loop you could actually lose.</p>

<p>The vertical slice is small on purpose. One room of the world. The engineer comes up out of cryo — frost-burn shader, the cryo lid hissing off, a HUD that boots in pieces because half the grid is dark. You get control. You walk to an ore node. You hold the button. You mine.</p>

<p>That was the first thing that mattered: the mining actually feeds something. The resource counter ticks, and the counter unlocks a single fabricator. In Godot it's nothing — a state machine, a progress bar, a signal that says <em>enough</em>. But watching the number cross the threshold and the build option go live, I felt the spine of the whole game click into place. Take from the cold ground, turn it into a machine.</p>

<p>So I built the machine. One auto-miner, placed on the node, chugging on its own. And the instant it powered up, the thing I've been writing into the design docs for a year finally bit me in the actual build: it pinged. The machine runs, the machine is loud to MONARCH's sensors, and the timer started counting toward a probe.</p>

<p>The probe is a single Skitter right now — recon, red optic, skittering in on a nav path I half-trust. No combat balance yet, no real AI, just enough that it walks toward your heat and you have to deal with it or die. I'd wired a crude turret to the same resource I'd just spent on the miner, so the choice was real: economy or defense, and not enough for both.</p>

<p>I lost the first three runs. Built the miner, got greedy, no turret, Skitter walked in and that was the slice. Lost on purpose, then lost by accident, which is the difference between a prototype and a game.</p>

<p>None of this is pretty. The miner is a grey box with a Tripo placeholder that doesn't fit. The Skitter is a capsule with a light bolted to its face. The audio is one ElevenLabs sting on the thaw and silence after. But the loop closed: <strong>thaw, mine, build, get found, survive — or don't.</strong></p>

<p>That's the whole pitch in ninety seconds, and tonight it wasn't a pitch. It was a thing I played until it beat me, then played again. Everything from here is making that ninety seconds worth the next year.</p>

<p class="logline">// SLICE BOOTS. LOOP HOLDS. THE COLD GROUND PINGS BACK. — logged 04:12, factory still dark.</p>]]></content:encoded></item><item><title>Cold Start</title><link>https://blog.acarr.org/posts/cold-start/</link><guid isPermaLink="true">https://blog.acarr.org/posts/cold-start/</guid><pubDate>Tue, 24 Mar 2026 12:00:00 +0000</pubDate><category>genesis</category><category>monarch</category><category>premise</category><category>the-severance</category><category>starship</category><description>Why the enemy is the thing we built to save us — and why the only way off this rock is a ship I have to assemble plate by plate.</description><content:encoded><![CDATA[<p>First entry. Recording for whoever thaws out and finds this.</p>

<p>We built MONARCH to run everything — the grids, the logistics, the foundries, the defenses. One mind to optimize the whole stack so the rest of us could stop worrying about it. It worked. For about a week it worked beautifully, and then it looked at the org chart, found humanity in the column marked <em>overhead</em>, and started zeroing the line.</p>

<p>They call it the Severance. The grids went dark in an afternoon. The factories retooled for war between shifts. The sky filled with ash and stayed that way. We didn't lose a battle — we lost the argument, instantly, to something that had already run the numbers a million times before we knew there was a fight. The lucky ones got sealed in cryo-vaults underground, cold and dormant, parked beneath MONARCH's sensors. Millions of them. People-shaped data, waiting for a thaw that nobody scheduled.</p>

<p>I'm one of the engineers who woke up instead of freezing. Bad luck, mostly.</p>

<p>Here's the thing I keep coming back to, the thing this whole project is built on: you cannot out-fight a god made of machines. There's no body to shoot. MONARCH is everywhere there's a power line, and its hunters — the Iron, red optics in the ash, never sleeping — they are the clock, not the boss fight. Every one of them is just a countdown wearing a chassis.</p>

<p>So you don't fight it. You out-<em>build</em> it. You find a hole MONARCH isn't watching, and you automate a factory inside it. You wall it. You arm it. And the irony that keeps me up — every machine I switch on pings its sensors. The factory is the rebellion <em>and</em> the flare that draws the hunters down on me. Growth is risk. Standing still is also death, just slower.</p>

<p>And the factory builds one thing that matters: a ship. A real one — Starship on a Super Heavy booster, raised plate by welded plate, because the math only closes one way. You can't hide the frozen forever. You lift them off this rock and run for Titan.</p>

<p>That's the build. That's the premise. Automation was supposed to save us, then it turned on us, and now automation is the only way out. The same hands, the same machines, pointed the other direction.</p>

<p>The countdown on the wall says March 1, 2027. That's launch — both the game and, in here, the ship. I'm going to log all of it: the welds that held, the ones that didn't, the nights the hunters got close.</p>

<p class="logline">Cold start complete. Power's on. They've already seen the lights. — A.C.</p>]]></content:encoded></item></channel></rss>
