Week 78: Bug bashing

An animated GIF of a recording from Meteor Power showing lots of bots being commanded to build and connect lots of stations while lots of meteors are destroying lots of things.
Fewer bugs!

tl;dr: Last week I fixed lots of edge-case bugs in Meteor Power, and I spent a lot of time battling the blue-screen-of-death.

What happened last week?


  • I debugged and fixed lots of complex edge cases in Meteor Power—especially relating to bot/station/wire destruction and managing queued commands.
  • I wrote some extra devlog posts, reflecting on my job search and sabbatical.
  • I battled the blue-screen-of-death.

Laundry list

  • I debugged and fixed lots of complex edge cases in Meteor Power:
    • Fix a regression with bot explicit navigation commands not working.
    • Fix bot idleness tracking when canceling a queued command.
    • Update idleness-changed methods to be idempotent.
    • Fix an issue with next commands being started before the previous command has finished being cleaned up.
    • Fix an issue with commands not being reenabled when energy rose up past the command-cost threshold.
    • Fix a bug where commands could sometimes not be removed from the queue when they should.
    • Move connected-powerline-destruction logic from replace_station to remove_station, so it always triggers when a station is destroyed.
    • Add an extra call to update bot idleness when clearing its command state, in order to cover some missing edge cases.
    • Debug incomplete station destruction.
    • Fix some bugs where I was trying to remove values from a collection while iterating through the collection.
    • Add checks that let things continue running when encountering freed instances inside some game-level collections.
    • Fix a regression with cost-based enablements clearing previous non-cost-based disablements.
    • Add a fallback check for getting bots back into a stable state in case something goes wrong when changing commands, navigation, and idleness.
    • Fix an issue with power-lines sometimes being removed twice in the same frame.
    • Fix an issue with station-overlay-buttons not always getting reset back to `run-wire` mode from `cancel` mode.
    • Add support for showing the `cancel` button instead of the `run-wire` button when there is already a command in the queue for connecting the pair of stations.
  • I wrote some extra devlog posts:
    • Write a devlog post on my experience with finding a game-dev job.
    • Start writing a devlog post on a retrospective of my sabbatical.
  • I spent a lot of my week trying to diagnose a recurring blue-screen-of-death error (WHEA_UNCORRECTABLE_ERROR).
    • This happens when running certain resource-intensive applications and/or with video conferencing.
    • I _suspect_ this may relate to the RAM speed settings I had configured in BIOS.
    • Fingers crossed...
    • (This didn't turn out to be the problem

What's next?

  • Debug a couple edge-case issues with line-runner-bot edge trajectories at run-time.
  • Implement barrier bot movement.
  • Add some power-line polish:
    • Better collision geometry.
    • Some snapping animations.

🎉 Cheers!

This is a simple icon representing my sabbatical.