David is on vacation this week, soaking up a little sun and visiting relatives in California before the last push out the door, so we’re working on a bunch of minor testing-motivated updates, which has mainly involved re-configuring internal stuff. Also, some UI work, which is always good.

First, we have added five new testers this week. Naturally, none of them can figure out the game! This is good, because it reveals all the hidden assumptions that you have been making, as well as the hidden assumptions that the other testers have now internalized. Then, you can fix those assumptions and get on with the next bit. Dredmor underwent a very similar process: if you go all the way back here in time, you can see early versions of the crafting system which we didn’t figure out was just totally awful until after we released the game. (There are some people, of course, who would argue that Dredmor’s crafting system is still awful, but oh well.) Getting a good game means fixing these issues.

For what it’s worth, player feedback has overwhelmingly been of the form “This is really good/promising/cool/great; here are fifty bug reports.” This is in line with our expectations, because Game Development.

Mr. Triolo has also been playing the game for the past half hour as I write this blog post in order to test some very special new animations for drinking in a chair. He has taken about seventeen screenshots of various things that are bothering him. This is also progress.

So what’s new on the code side?

Pathfinding Rewrite: we recently decided that we wanted modules to have well-delineated access points. If a module has an access point, and if anybody can reach the access point, you can then use the module. As a result of this, Micah has done a fairly comprehensive rewrite of both pathfinding code (to support module access points, and the idea that “if you path to any one of these 3 destination points, it’s still okay!”), which also included various other pathing improvements to make the game happier and run better. One of the bigger changes is more support for ensuring that we never get stuck trying to path to a module that we can’t access; this was a major issue which would cause testers to encounter hordes of characters that would pick up stuff, then put it down, then pick it up, then put it down, etc. in an attempt to try and build an inaccessible module. So that’s now been sorted out. This now seems to be done.

Filters: You can now toggle what jobs a work party can do: farming, construction, workshop work, mining, and forestry. Other categories will probably be added as we get further along in the development of things, but right now you have a solution for making sure that not everybody tills the fields and that your empire doesn’t find itself drowning in wheat.

Housing Touch-ups: we now render front walls for buildings. This was in our teaser trailer, and then we broke it, and now it’s working again with a few minor aesthetic touches yet to go.

UI: There are a bunch of cases where you don’t want to have an enormous gear popping up to select things, so we are slowly moving away from this enormous gear. The new plan is that you will simply click things and stuff will pop up in an appropriate window; characters and individual objects to be inspected use one window, and larger structures use another. We now have the following happy little workshop panel:

This is certainly not finished, but it is better than what we had before. Additional things such as farms and stockpiles are being moved into the same window as well, so that everything is unified and happy.

More UI: New character panels are on the way, as well as a rewrite of work party screen. The jobs screen now sorts things hierarchically by assignments; you can now see the assignment (“Make Planks”) as well as all the sub-jobs (“Make Planks”, “Make Planks”, “Make Planks”, etc.) Since nobody likes the dancing soldiers in the work party screen and because they’re huge, we’re replacing everything with canvased paintings.

Yet More UI: Tooltips are being stuck on everything to indicate blocked modules, building requirements that need to be dropped off, and so on and so forth. Mostly this is boilerplate code; it’s just a question of identifying it, fixing it, and getting on with the next thing.

Such is game development: iteration, iteration, iteration, coffee. Iteration!