Many changes have happened in KeeperRL land in the last few weeks. Most of them were in the game’s internals, so they may not be very interesting to you, but they are important for development. I treat KeeperRL as a very long term project, so I spend a lot of time trying to improve its internal architecture. Badly written code, much like a messy bedroom, decreases your morale, and causes you to trip over things as you’re trying to reach your goal. Not to mention bugs!
In this spirit I spent a whole week switching to a new serialization library, which is the backbone of the saving and loading system. The new one, Cereal is more modern than Boost serialization, and easier to use on multiple platforms. As it turned out, it also decreased saving and loading times about two to three times, and reduced save file size almost twice!
This encouraged me to do some cleaning and remove a few obsolete classes from the code. Traps, torches, and portals are now regular Furniture, much like all other static things on the map. This was an opportunity to rework portals a little bit, to make them more useful. From now on they will be constructed by imps, and will not time out. You will use them actively, just like stairs. I think that in such form they will be a great addition to the dungeon. Unfortunately, teaching the AI to use them for pathfinfing is a much bigger deal, so for now they are there only to the advantage of players. But I will revisit this problem later, because having the AI use portals, and be smart about it, would be really, really fun.
As another gameplay change, I deflated the quantities of all resources in the game, except mana. Everything now costs five times less wood, gold, iron, and so on, and you also receive less of everything. The only real effect is on the size of stockpiles that are generated, because every unit of resource in KeeperRL, except mana, exists in the game as an individual item. This used to inflate save file size quite a bit.
Going back to technical stuff, I noticed that switching off Vertical Sync in the window configuration, which ties the game’s framerate to the refresh rate the monitor, fixes some severe frame dropping that I experience on the development build of the game. I’m not sure if this has much effect in the real world, but I added the option to switch off V-Sync in the game’s settings. I’m also contemplating just switching it off by default. I need to research how other games approach this issue.
Last, but not least, I had some time to work on the tutorial. It’s going to take the form of very small, detailed tasks for the player to perform as they build their dungeon. As KeeperRL is fairly complex, there will be a large number of these steps, so it’s going to take longer to finish than I expected initially. This is what the tutorial will look like. In addition to giving you instructions, the game also highlights the relevant UI elements for the current task.
In the last few weeks I've been very busy fixing bugs, optimizing, and polishing all the new features queued up for this update. The patch has finally reached a point where I can... more
This blog post will be devoted to a number of changes that I made to mining, minerals, and map generation. The main theme is that the geology tech will be removed, and all... more
I began the new year with some cool gameplay improvements in KeeperRL that I'd love to share with you :) . In the previous dev update I talked about various ideas on how to... more
One of the big things that KeeperRL is still missing is a good system of capturing and exploiting prisoners. I'm committed to fixing that in the coming patch, although I don't... more
After releasing a few bug fixing patches to Alpha23, I got right down to working on the next major update. I'll give you a summary of things that are already implemented, and in... more