04 Dec 2021
A-star path-finding video
On Saturday I move 30 issues out of the to-do and in-progress columns leaving me with 12 to tackle for the release. In the past 138 days I’ve fixed 147 issues. That’s an average of 1.06 issues per day. I have seven days until the release. So I have to remove five issues. I decide to work late as I’m eager to get full-screen support in.
It’s two minutes to eleven and I just can’t stop… so the screen resolution is finished by the morning… and the first draft of the ore-smelting and bronze-working tutorial is done. I’ll take some rest before play-testing the tutorial. Breaking all my rules about sustainable levels of productivity. Not proud.
It’s Wednesday morning and last night I found a tutorial-breaking bug that I’m fairly sure indicates the A* path-finding is broken. It’s another case where I’ve tested at a high level (tell an agent to go to X and then update the world until they get there) so I’m going to add some low-level tests first. Except I didn’t… Tools that give you instant feedback are seductive. In this case it’s the rendering of the algorithm in progress. I spend time replacing my priority queue, changing the neighbours of a node to include diagonal-neighbours and use a float instead of an integer for priority. I consider weighting the heuristic… and then realise these are all things I’ve done before and rejected.
The bug is that the path-finding runs out of memory before reaching its destination. When this happens my fix is to first find a route half-way to the destination. I didn’t write any tests for this so I’m feeling kind of dirty now. It’s not going to work if the second half of the route also needs to be broken in half. It’s good enough for now but it gets a proper refactoring before the next release.
Thursday I spend testing and fixing any critical bugs. Most of that involves saving games from the previous version at various points through the tutorials and loading those games in the new version. Unfortunately, where a script has changed between releases there isn’t a reliable way to load the old state and have the game proceed without issues. In this case I’ve simply marked the script as completed.
After fixing a handful of upgrade-path bugs I test a networked game and I’m pleased to see that there are no serious bugs here. Synching issues still happen more often than I’d like but I intend to address these in a future, internet-friendly release.
On Friday I fix a couple more critical issues and spend the rest of the time re-testing all the tutorials and mining out a large fortress with all the workshops, stockpiles and buildings I can think of. In the evening I’m ready to do a trial run of the Azure pipelines. Of the four pipelines two of them break and I don’t see a way to fix them. An image library depends on a version of the windows runtime that I suspect is no longer available. Next week, support for the MacOS version I use will expire and then I’ll be left with one working pipeline. For the next release I’ll be using Docker.
Last year, you may remember I had the pleasure of play-testing a lovely puzzle game called Solas 128. I told you it was a good game and it has gone on to win a BAFTA! If you haven’t already, definitely give it a blast either on Steam or Switch.
Since March I’ve been contracting with Panivox working on RichCast, a tool to create voice-controlled interactive audio stories. They are currently running a competition with cash prizes so if you like making that sort of thing I highly recommend it.
For the next month I will be fixing bugs. After that I will make another release and then move to a three-month release cycle. At the start of each cycle I will plan what I intend to achieve in more detail than I have in the past.
Enter your email to receive a summary of new features whenever a new release of Dwerg Saga comes out. Between 1 and 3 months.