Welcome to the monthly King under the Mountain dev update! Very happy to say that development is back on track now after all the disruption from covid-19 and other sources the past few months. That said, I was expecting to have more gamedev time than I have had this past month after my day job changed to 3 days a week, turns out they can't make do without me so I've been asked to work most of those extra days! Will see how that pans out.
It must be months now that I've been promising brewing beer is just around the corner for these forcefully sober dwarves, and I'm afraid to say that's still the case - I spent what time I had in the last month polishing the edges of alpha 3 and then investing quite a lot of effort in making crafting stations require tools during their construction. Previously, crafting stations just required a few stone blocks or wooden planks for them to be constructed, and they would magic into existence a few relevant tools to be used as decoration (dwarves would need to equip the relevant tool from their inventory to work at the station), which was more of a holdover from the initial prototype days rather than any conscious decision.
One of the main design goals with King under the Mountain is a reasonable level of realism in the simulation of the game world, so I never really liked these tools just appearing out of nowhere as decoration (you can look forward to beds needing cloth materials to construct them as well). Now, instead, constructing the crafting station requires the tools that would previously have been freely created as decorations to be actual requirements in the construction. This means your supply of tools will mostly get "baked in" to the construction of furniture (until it is removed at least), but the upside is that dwarves no longer need that tool in their inventory, instead they walk over and equip the item directly from the top of the crafting station, work as normal, then place it back after (undoubtedly a bug has been introduced if a dwarf drops dead while having this tool equipped as it goes to their corpse for the moment - that's one to sort out in the future, right now dwarves probably won't be working if they're knowingly close to death, perhaps a cave-in could do it...). The main benefit of this is that as a player you're not relying on the few dwarves with the right tool equipped to be able to work on the crafting jobs, instead any dwarf with the correct profession can come and do the crafting work (though you'll want more control over this in the future when crafting quality is introduced). Here's a video of it in action with a woodcutter's bench now requiring a saw and axe to be created, but the saw is used as part of crafting a log into planks.
Astute players will be wondering "What if I build so many of these I don't have any axes left to chop down trees?" Well, this has led to the implementation of the first non-tutorial hints - the game now gives you a (currently one-time) message if you use up all your axes, chisels, planes and so on with a note to either craft more or deconstruct one of the pieces of furniture to get them back. Soon players will be able to specify what should be crafted rather than the current automatic system. The whole feature looks pretty simple but there was quite a bit of work in getting the AI to either equip a tool from their inventory or wait and pick it up from the crafting station as appropriate!
This does bring something of a requirement for more tools at the start of the game - previously every dwarf would spawn into the game with one of each of the tools for their assigned profession. Instead each settlement now starts with a set number of specific tools. They are currently randomly spread between the dwarves but when more work has been done with container furniture such as chests and crates, I expect these items will start in a crate or similar ready to be picked up and used. As things currently stand, the player now needs to designate a tools stockpile for the dwarves to place them down so they can get into the right hands. The increased tools at game start has been balanced out a bit by the fact that immigrants in the 2nd year and onwards no longer bring extra tools or seeds, you'll need to craft or farm these yourself! They do at least still bring a big stack of rockbread rations, so they shouldn't starve for some time, but I expect the progression of population size is a bit trickier to manage now (I'd love to get some feedback on how people are finding this).
As another nice tidy-up type of task, it's been requested a few times if something could be done about all the dwarves "clumping up" together and getting stuck in queues once the population gets a bit bigger - dwarves that are colliding with another dwarf go at half speed. A slight improvement has been added to the AI pathfinding so that a dwarf will every so often slow down a bit more if it notices that other dwarves in front of it are heading in the right direction. You can see this in the following video where lines denote the direction and speed dwarves are attempting to move in - white means they are unimpeded, red if they are colliding with another dwarf and going slow, or blue if they have decided to slow down even more to let those in front "escape":
It's not perfect as a particularly large pile up of dwarves at a bottleneck like the one above will still cause a traffic jam, but then I'd rather leave that to the players to design their settlements to be more efficient and avoid these chokepoints.
In a more technical change, the version of Java that the game is built upon has been upgraded from Java 8 to Java 11 now using the OpenJDK libraries rather than Oracle's JDK. Oracle decided to make the license more restrictive after Java 8 and businesses either needed to start paying a fairly expensive license (too expensive for a game which doesn't make a profit yet!) or switch to the OpenJDK implementations for any future updates which is what prompted the change, rather than any requirement from my side. Everything *should* still be working as it was, though if you were running the game straight from the .jar file (perhaps more for the Linux players out there) you'll also need to be running Java 11 or later now. Mostly I'm interested in if this causes new issues that I've not run into while testing yet - everything seems to work the same now but I'm nervous with such a large underlying change that it might affect players on different systems.
I've recently replaced my development PC with a hefty upgrade, which had the nice side-effect of exposing an issue that was stopping the multi-language fonts from working correctly for some people that I was never able to reproduce on my old machine. Fixed now, and also the Japanese translation has had a lot of work put in by the Japanese community so that's close to being quite usable for Japanese-speakers which I'm very happy to see.
In fact on that note the latest version with all of the above is now live on Itch.io at the usual place - rocketjumptechnology.itch.io/king-under-the-mountain
Barring any crash-fixing releases, this means I'm now done with development for Alpha 3, and onto Alpha 4 at long last, which I hope won't take anywhere near as long as the last couple, not least because the tutorial feature was already pulled forward from alpha 4 and implemented. Here's what there is to look forward to for the immediate future:
- Brewing and Taverns - a particularly hefty feature as it not only involves the fairly detailed, fairly realistic approximation of the process of brewing beer and serving it out, but also the short and long term effects that can have on your populace!
- Production Management - finally the player will be in control of what is produced and where. I'm undecided yet on if this should entirely replace the current completely automated model, or keep some parts of it for the relaxed "hands off" approach the game offers currently (thoughts and feedback much appreciated!)
- Job Prioritisation - This should at least cover a "work on this thing as top priority" button, but possibly also a mechanism for defining which types of jobs are in which priority order for the whole settlement - something like the approach used by Rimworld - currently job priority is using the skill level a dwarf has in a particularly profession (which isn't really a feature yet) and then distance to the nearest job of that profession.
As mentioned, the tutorial was brought forward out of Alpha 4 so there's really not much left in it, just the above! It feels like after getting the initial mod support in place and deferring the rest of it until after the Steam launch (and the recent general tidy up of smaller tasks), development has climbed over a hump it was stuck on for a while and the upcoming roadmap looks much smoother than the first couple of alphas. In fact most of the alpha milestones are much smaller than they were now, at least until alphas 8, 9 and 10 mostly due to the introduction of combat and the many things that entails, but once the game gets to that point it isn't far from the Steam launch! Onwards and upwards then, and see you next time!