Physics, Players, and the Dead
A Building That Can Actually Fall Down
Structural integrity was first. Not because it was the most exciting thing on the list, but because anything that involves destroying blocks was eventually going to need it.
The idea is simple enough: every block in the world has a stress value. Blocks route that stress back to bedrock through their neighbours. When you knock one out, the blocks above it lose their path home and collapse — staggered, not all at once, so a 100-block tower takes a few seconds to fully fall rather than vanishing in a frame.
The moment a pillar base goes, everything above it suddenly has
nowhere to go.
What came out of this is that buildings now have weight. A wide base is stable. A narrow one isn't. Wood fails sooner than stone. That's all just math, but it reads as physics, which is what matters.
--------------------------------------------------------------------------------
The Player Can Now Crouch
This sounds simple. It was not simple.
The player already had movement, sprinting, and swimming. What it didn't have was any concept of posture — standing, crouching, crawling as actual states with their own speeds and geometry.
Crouch drops you to about half your normal height. Crawl drops further, enough to fit through a 1-metre gap. The camera moves with you. The collision box moves with you. If there's a ceiling in the way, you can't stand back up. All of that sounds obvious until you're six edge cases deep and the player is floating.
I got the capsule math wrong twice. Once it worked it felt good immediately, which is usually a sign you got the design right.
Sprint is blocked while crouching. Jump is blocked while crouching. Swimming resets your posture because fighting a ceiling underwater is a problem nobody needs. These are the kinds of decisions that don't come up until a player finds the gap.
The character is still a squashing ball. That's placeholder. It actually helps — you can see the shape change clearly during the transition, which made tuning the feel much faster.
--------------------------------------------------------------------------------
Zombies
This was the large one.
The AI is server-side. Each zombie has a tier — Active, Structural, or Dormant — and which tier it's in depends on whether it can actually reach you, not just whether you're nearby. If there's a path, it chases. If the path is blocked by your wall, it attacks the weakest point in that wall instead. If there's no player and no player structure nearby at all, it freezes entirely and costs nothing.
That second case is the interesting one. A zombie that can't reach you doesn't give up — it tears down whatever is in the way. It reads the structural system to figure out which block to hit first.
Rendering is split by range. Close zombies use normal animation. Far ones use a different technique that lets hundreds of them move simultaneously without tanking the frame rate. The cutover is invisible in practice.
Three zombie types are defined right now: Walker, Crawler, Runner. All of them are script files outside the engine, same as items and weapons. Anyone can add more without touching the code.
There's a debug key that spawns a group on top of the player and makes them charge immediately. I watched a dozen of them tear apart a wooden pillar base today. The pillar collapsed in stages. The floor above it started cracking. They walked through the hole.
That was a good moment.
================================================================================ -- Corrupt Earth devlog