Red Hope devlogUnder the hood
One metre from the door
My Mars colony froze whenever people were outside, and pioneers kept running out of air a few steps from home. One of those is fixed.
Red Hope · Development still · c0dda269Red Hope is my Mars colony survival game, where you keep a handful of pioneers fed, housed and breathing. Dust storms are meant to be the frightening part. Lately it has been everything around them.
Two things kept going wrong this month, in my own colonies, on the development build for 0.4. The game froze, and people ran out of air outside doors that worked. The first is fixed. The second I finally understand, which is not the same thing. None of this is in the free demo, which is still 0.3.
The freeze
It started with plumbing. I ordered seven short pipe runs and the colony slowed to about 14 ticks a second at 5× speed, when it should manage 300. Another time, with a storm on the way and half the crew still outside finishing jobs, it very nearly stopped.
Red Hope · Development build · October 26 · my own gameHere is what it was doing. Anyone working outside needs to know they can get home before their suit runs out, so the game keeps checking the walk back. It checked that walk for every person outside, to every habitat, several times a tick. It did remember the answers, but it filed them under the exact spot each person was standing on, to more decimal places than anyone has ever walked. Someone who is walking is never in exactly the same spot twice, so the game worked out the same route home from scratch, over and over.
Each step of each of those searches also checked itself against every rock, mesa, habitat and machine in the colony. That was about 185 things, every step. It is a very conscientious way to run a colony, like rereading the whole map every time you put a foot down.
The fix does not change a single decision anyone makes. The game now works out which ground is blocked once, when the layout changes, and remembers routes by the patch of ground you are on rather than the precise point. Then I checked it was still the same game. After 900 ticks, the old and new versions leave each of my test colonies in exactly the same state, down to the last byte.
Red Hope · Development build for 0.4 · measured October 27Later passes took it further, and the worst of those saves now averages about 0.12 ms a tick. I am keeping the bug reports open until I have played it myself, because a chart has never once told me a game feels sluggish.
Working homes
The second problem was worse, because people died.
On October 27 my colony had two electrolyzers to make oxygen, three oxygen buffers, three condensate collectors and six batteries. A storm came through. Afterwards the screen said two pioneers lost, and I said, “Consider how redundant my colony is.” In hindsight that was asking for it.
The saves told a stranger story. Over its life that colony had lost seven people, and six of them ran out of suit air with a working home right there. One was 47 m short. Two were 1 m short. The game’s own record of one of them read:
Habitat 3 had working life support 1 m from where they fell.
That is a true sentence. It is also about the least useful true sentence a game has ever told me.
Red Hope · Development still · c0dda269The latest deaths had a single cause. The storm had knocked out one of the two electrolyzers, the machines that turn water into oxygen. Nobody ordered a repair. With half its oxygen production gone, the colony could keep about 9 of its 15 people breathing, so the homes ran dry one at a time, in order. People sheltering in a home that ran dry had to leave for the next one. Suits do not refill indoors, so they left with whatever they had come in with.
One pioneer, partway along the walk to the next habitat, had 826 ticks of air left. They died exactly 826 ticks later, one metre from its door. The five who did get there brought the shortage with them, and drained that home too.
The screen did say the electrolyzer was damaged. It never said what that meant, which was that the colony was making oxygen for about nine people and housing fifteen.
It is not the first time the game has been confidently unhelpful about this. Back in 0.2, a pioneer with no room in the only working shelter was described as “taking in the view, 64m of suit air”. She was not taking in the view.
My first fix was to teach people to choose better shelters: rank homes by how long they would last, prefer the ones you could actually reach. It moved the deaths around. Depending on the order the homes happened to be listed in, the same change saved a life or cost two more. The pioneers were not choosing badly. They were choosing between homes that were all running out, because the machine that made the air was broken and nobody had been asked to fix it.
On the development build, the record now says so:
Electrolyzer 8 was down and no repair was ordered while Habitat 3 ran short of oxygen.
A repair nobody asked for
The 0.3 preview has a scene that runs the other way. The colony computer said no repair could finish in time, and Lena Vale went out on suit air and built the pipe anyway. All four made it. This time the repair had time to finish, and nobody asked for it.
What I still don’t know
The fix I am testing now makes the Life support priority mean what it sounds like. If anyone in your colony has Life support switched on, broken life-support machines get a repair job without you having to remember to press Repair. Repairs that cost kits either spend them automatically, if you turn that on, or ask you first.
Replaying the day after that storm from a save, with automatic spending on, the colony lost nobody instead of seven people. On a later save, from deep into the shortage, it did worse than doing nothing: one more person died, and that person was the first one sent out to do the repair. The order can stop a shortage from starting. It cannot rescue a colony that has already been short of air for most of a day, and I do not yet know what should.
The extra death is the next thing I am reading the saves for.