This chapter has a hole in it, and I’m not skipping it.
April started fast. The first two weeks were packed: a whole new interface, a full audit of the game, a rework of how every building worked, and a bug hunt that went 22 commits in 37 minutes. Then the last commit on April 15 was a revert, and the repo went quiet. Nothing from April 16 to June 9. Fifty-five days.
From mid-April I was building something else, Medi Bill Saver, and that work kicked off on April 18. I wrote about Medi Bill Saver here.
The only sign of life in the game’s own files in all that time: I opened the editor on May 23, played for about 21 minutes, and closed it. That session left a log behind, and the log mattered later.
Then on June 10 I came back, and in three days we tore the world down to the studs and rebuilt it.

What got built
April: the world started living on its own
April 1 opened with a bunch of small things that made a world feel alive. This is how they worked then:
- People took shelter. Anyone who wasn’t a soldier headed indoors when the weather turned. In light rain or snow, about 60% went in and the rest toughed it out.
- The desperate turned to crime. People with no faction could ambush caravans.
- Everyone earned a reputation. Surviving, killing, and winning big battles built a name that stuck, and a legendary fighter scared the army on the other side. My rule: living was enough to keep a name, and a high one had to be slow and earned.
- Factions decided what to do with prisoners. Cruel ones executed, ambitious ones recruited, merciful ones let people go, and practical ones asked for ransom.
- Merchants traveled. Skilled traders walked to far-off markets for a better deal.
Then the interface got a real pass, about 20 commits in under two hours. You could click straight through to any character or settlement. The game paused itself when something bad happened at high speed. There was a faction dashboard, a diplomacy grid of who was allied and who was at war, and a history of every notification. Your squad roster warned you when someone was about to desert.

The first hints got fixed too. Before, four fired at once the second you spawned, and nobody read any of them. After the fix it was one hint, then the rest showed up as you did things. The first one paused the game and said:
Welcome to Sinthora. You are nobody. The world does not wait for you. Survive.
A long test and a faction nobody started
On April 3 I left the game running at ten times speed for a long time and came back to lag. I asked for a full report on what had emerged: new factions, recruiting, trade, in the data and on screen.
The report was ugly in useful ways. The population had grown past 18,500, so it got a hard cap of 15,000. Promoting 100 people in one frame caused second-long spikes, so promotions got capped at five a frame. A pacifist faction called Wandering Paws had suffered a coup, which is a hell of a thing for pacifists, so they were made coup-proof. And 2,576 people with no faction existed in the world, and not one had clustered at a settlement, so no new faction ever formed. After the fix they drifted toward empty settlements, and the bar for founding a faction came down.

Earlier that day, when the plan had a brand new faction with eight supporters besieging its neighbor, I said that would get them demolished. I killed the free 500 gold it was going to hand them too, and asked for a reason: something has to happen before neutral turns hostile, some tension or building resentment.
Buildings that worked by what was inside them
On Apr 4 every building in the game became a shell with work stations inside it. In April, 129 building types mapped to 40 kinds of station: anvil, forge, loom, and so on. A smithy was two anvils, a forge, and storage. A temple was an altar and thirty seats. People found work by what a building could do, not by what it was called. It broke everything the first night (more below), but it was the right call.

A smaller map, and a better question
On April 5 I played and saw the literal word TEXT floating above pawns and settlements. 1,104 floating name labels came out. I also saw almost no promoted pawns and no squads.
At 12:42 AM on April 6 I put the real problem in plain numbers: I needed 1,000 or more pawns active on screen at any time, working without a problem, and not enough of them were alive. Maybe, I wrote, the map was too big. Then I asked: “wait, how much bigger is out map than kenshi!??”
A lot bigger. Our world was 2,500 square kilometers. Kenshi’s is about 870, with 8 or 9 people per square kilometer. Ours had 5.6. Minutes later I asked for 30 by 30 kilometers, which put the density at 15.5 and the settlements 4 to 8 km apart instead of 10 to 20. It went back to 50 in June.

Soon after, I said we needed the map twice that size. Then I said never mind, undo that. Four minutes later I wrote this: “bro i dont know, i really dont, whats best practice here? Should we just rebuild the whole thing??? im so lost :((” Two minutes later I said go ahead.
On April 6, after the editor crashed again, I wrote: “i feel its ok even if this process takes twice as long so that we dont crash out.”
The big dream, and the first code for it
On Apr 8 the big dream went on paper. The plan was that a few times in a long playthrough, the pressure in people’s souls would get to be more than the world could hold, and a thousand pawns would pile onto one field: enemies, allies, refugees, deserters. They would fight, they would die, and the world would be different after. The idea was that your own pride sets it off and your own success brings the world down. I set the target at 2,000 or more promoted pawns in the active class, not 150.
By April 9 the dream was code: a Pride Index that builds, decays, and cools down by region, panic that spreads between neighbors, and a bridge from a cluster of broken souls to a real battle. In April the big ones were rare by design. They needed a pride threshold, a cooldown, and a faction genuinely destroyed, with one mega-battle per 4 km cell at most, and pacifists never started one.

The thing the whole game is named after existed on April 9. It would not run in a normal game until June.
June 10: the teardown
I came back early on June 10 and asked for a status check on the whole project. Forty-three minutes later the first commit landed, and the first job was checking whether April’s fixes actually worked. A lot of them didn’t. Some were never connected. One sat behind a switch that was off by default. One made a second copy of a person every time they were promoted. In the log from my May session, 115 caravans had arrived at markets and the code meant to react to them ran zero times. A sweep found 28 more files with the same kind of problem.
Then came the big one. We looked at why the world felt wrong and found three coordinate systems arguing about where everything was. About 60% of the designed world, coastline, peaks and mesas, never made it onto the actual map.

By that morning there was a written plan to rebuild the world, ending in nine questions for me. I asked for them in question form, and that day I made nine calls that became the foundation of the June world:
- North was up, and the map started from the southwest corner.
- A true 50 km map. Back to 50.
- Mountains exaggerated on purpose. The lore had peaks over 3,000 meters. The old terrain topped out near 650.
- The world streamed in from day one, eight regions loading as you moved.
- Landmarks could be re-rolled on the new ground.
- Underground started as facades. I said “if a problem, pivot.”
- Real water, with rivers and an ocean.
- Seasons in the trees. The forests of Vael’s Cradle went green, gold, red, and bare.
- The land moved. Tides, flash floods and collapsing walls were to be real systems, after the world stood.
And one more, before anything got rebuilt: “please dont delete my models of the units they look cool.” The models stayed. The problem was in their rigging, not the models.

June 11 and 12: a new world
By Jun 12 there was a brand new world. 350 geographic features across eight regions, built from real types of landforms: volcanoes, salt flats, bogs, glacier horns. The Ashenmere crater was 13 kilometers across. An ocean, six rivers, all 55 settlements moved onto the new ground, and 62 road sections connecting them. That day the new level officially became the game world.

It was not done. Earlier that morning I wrote that I could see terrain now, but it still looked like huge swaths of flat open land, and the rocks from April were all over the place again. So I asked for every placed asset to come out and go back in the most logical way, based on how big each one is. The old method scattered 1.6 million objects. The new one placed 168,263 in 58 clumps in 2.6 seconds.

What went wrong
Giant stones everywhere
All through early April the world was full of what looked like huge stones. Stones making caves. Stones floating in the air. Stones blocking the view everywhere.

The first guess was that rocks were too big, so a cap went on everything. It would have shrunk the big trees too, and I stopped it: “wait dude, I want the big trees.” And: “please dont make assumptions.” It got reverted in three minutes.
So we built a tool to point at something on screen and name it. The answer: small props like stumps, logs and branches sat in the tree lists, so they got scaled up 20 to 40 times to tree size, and the world filled with 45 meter stumps. On top of that, 21,321 copies of one small tree were stretched to 45 meters near the spawn. From the top-down camera, they looked like walls of stone.
The save that didn’t save
This one has a commit literally titled “THE CRITICAL ONE.” The grass and rocks the game scattered across the world showed up fine while playing, then vanished after a restart. The scattered pieces were never added to the list of things that get saved. It took one line in each of 66 places to fix. Until then the saved map on disk was still from March 26, and 1.6 million objects lived only in memory.

Bugs in the heart of the game
The Apr 4 audit found ugly stuff right in the middle of what the game is about:
- Souls calmed down way too fast. Pressure drained 8 to 11 times too fast, so no crisis could ever build.
- Legendary armor made you immortal. At high values, armor went past 100%.
- Veterans could never break. Their resistance hit a ceiling that made them permanently unbreakable.
- Wars lasted forever. War exhaustion was read but never written.
A week later we found more. On April 9, 445 buildings, 46 landmarks and an unknown number of people turned out to be floating above the ground, because the game read land height using a 30 km map size on a 50 km landscape. Pride never decayed, which killed the whole idea of “pride is the fall,” because the daily check was written but never hooked up. And every caravan’s effect on market prices went to a settlement numbered “-1,” which matched nothing, so trade never moved prices at all.

The night every building broke
The night we switched buildings to stations, two things blew up. A job check ran through every building and slot for every person on every tick, 2.5 million checks a tick with 5,000 people. Reverted. Then everyone went idle at once. Zero workers, everyone starving, because the list of stations didn’t exist yet in the editor, so nothing matched.
Armies that would not fit on a screen
The whole dream hung on one picture: armies, hundreds of people on screen, all of them actually fighting. On April 13 the test run said that picture was a long way off. The water surface was built from 2,048 tiles, so it got cut to 256. 1,200 live characters, about 15,600 pieces in all, were crushing the frame rate. One log line wrote 662,000 entries, 96% of everything the game logged.
When the live cap came down to 400, I wrote that we wanted at least 1,000 visible, and then: “we want ARMIES fighting bro this has to work or the game is DOA”. What landed kept about 1,000 on screen, roughly 200 at full rate and 800 running slower, with 13,000 cheap crowd figures behind them.

The last night before the quiet
On April 14 the editor was taking a very long time to open. The level had grown into one 367 MB map with 1.6 million objects on a single actor. Late that night a proposal came to split it into eight regions, after the fact. At 12:06 AM I wrote “dude what the fuck are we doing”.
Minutes later I asked for a handoff note and for the last session to be undone. The revert landed right after, and it’s the last commit before the quiet.
A world that was scaring itself to death
On Jun 10 the average soul pressure across 14,188 people was 0.968, nearly everyone pinned at the maximum. A world two minutes old, where everyone was fed and calm, read 0.983 when the math said about 0.22.
The cause: everyone out in the wilderness had the same location number, zero, so the game thought they were all standing in the same spot. One person panicked, thousands caught it, and they spread it again. The world had terrorized itself into permanent panic. After the fix, the average dropped to 0.311.

Buildings on buildings
Same day: 255 buildings, 1,920 bad stacks. Whole towns crammed into a 34 meter circle, each new building spawning on the last one’s roof, and a pile of 80 things at the exact center of the world. After the fix, bad stacks dropped by 91% and the center pile went to zero.
Green checks, flat world
I caught this one myself. On Jun 11 all nine terrain checks were green. Then I looked at the saved world with my own eyes, and it was a flat sheet. The land only finishes building while the editor is actually drawing it, so the background run skipped that step and saved nothing. After that, that step refused to run in the background, out loud.
Rivers in canyons and a world gone black
The carved rivers could only ever go down, so the first low spot dragged the whole river to the bottom. Riverbeds sat 287 meters below sea level with walls over 400 meters tall. And for hours that same day the whole world rendered almost black: the light was too dim for the camera’s settings, the sky light was set up wrong, and the regional colors were turning on for the very first time.


What I learned
Find the one bad thing. Don’t shrink a whole class of objects because one of them is broken. Point at it, name it, fix that.
Proof beats a green check. A fix can go into code that never runs. A test can pass while the world is a flat sheet. Look at the actual game.
Don’t touch what works. My unit models were fine. The rigging was the problem.
Say it plainly. When I decide something is getting done, it gets done. Calling it a polish item doesn’t push it down the list.
Next up
July: the first real build, and a cast that finally looks like itself.
April to June in numbers: about 168 commits · 14 of 91 days with a commit · longest silence 55 days (Apr 16 to Jun 9) · v0.13 World Refinement Alpha.
Have you ever stepped away from a big project and come back to it? What brought you back? Drop it below.
Colophon
Season 0, chapter 3 of 7. The images are real captures and test renders from the build, and the two charts are drawn from the record.
Following the build? Sign the book so I know you’re out there
From the toolbox The Toolbox · A random post · All tools →
Free
Join the Guild
The free Weekend Field Manual, dev log alerts, and guild dispatches for announcements. Zero spam.
Join the Guild
Keep reading

Next in the Forge
Devlog 004: a real build, and a cast that walks


The Forge
Devlog 008: no magic anything


