Night Shift Games

Type a question of three letters or more.

    ← Devlog

    Sep 12, 2026 · From Ashes to Orbit

    A resource economy that runs out on purpose

    Hand-placed scrap is finite, so I made the running-out the point: three resource tiers, and a first machine with an unmistakable job.

    The first version of the map had a problem I could see coming. Every resource node was placed by hand, so once the survivor had picked them all up there was nothing left to gather, and the map could only ever hold so many nodes.

    Turn the problem into the pacing

    Instead of hiding the finiteness, I made it deliberate. Running out of things to pick up is the push from the first act, scavenging, into the second, building a colony. It is not a dead end.

    Three tiers

    • Scavenge: scrap piles and salvage crates. Gathered by hand, finite, and meant to run dry in act one.
    • Renewable: alien flora. Gathered by hand and it regrows on a timer, so food and medicine stay viable without any machines.
    • Deposit: metal ore, ice, silicate. Only an extractor can take from them, and each is large but finite, with a visible richness tier.

    Why deposits need a machine

    If a deposit could be mined by hand, the first building would be optional. Making deposits machine-only gives the extractor an unmistakable purpose and creates the first real production chain: place the extractor, haul what it produces, feed a crafter.

    The deposit types are also tied to what the launch vehicle needs: hull plating, oxygen and fuel, electronics. That keeps the economy pointing at the ending, which is the rule I try to apply to every system in the game.

    Large and finite, not infinite

    An infinite deposit removes pressure. A large one that slowly depletes pushes the player to expand to the next. At the time the goal was a single launch, so the aim was to tune the numbers so that one deposit would outlast one launch.

    What was already in place

    None of this needed a rewrite, because the earlier groundwork anticipated it.

    • ResourceNodeDefinition already had a category field and a regrowth rate, as data only.
    • LogicalGrid.TryPlace already supported multi-cell footprints, which extractors need.
    • The designation queue was ready for hauling work.

    How the extractor ended up working

    The extractor must share an edge with a deposit, and the placement hint says so when it does not. Once built, it pulls six units a minute into a 20-item buffer. At ten buffered items, if any storage has room, it queues an ordinary interact job for a worker to collect.

    The collected items go into the worker’s pockets, and the existing auto-haul policy carries them to storage. The whole chain from extractor to survivor to crate needed no new job types, which was the best sign that the designation system was the right foundation.

    The rates are placeholders until I can playtest them, and they all live on the definition asset so tuning never touches code.