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.
I've been working on the next KeeperRL update at full steam for the past few weeks. The changes have all been oriented around gameplay and not very hard in terms of programming,... more
The direct download version of KeeperRL has been updated with a few bug fixes. I've also starting working on Alpha25 already, and will post an update on that in the next few... more
It's my pleasure to announce that KeeperRL Alpha24 is out! It's another big gameplay patch, bringing in many new features: Overhauled prisoner system. Enemies are explicitly... more
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