KeeperRL cover
KeeperRL screenshot
Linux PC Mac Steam
Genre: Role-playing (RPG), Strategy

KeeperRL

Alpha25 release plan

I haven't posted updates for a while, but KeeperRL's development has been quite steady. Among other things, I've done a lot of work in the UI department, of which you'll find a short rundown below.

Overhauled villains UI
I've received a lot of reports of players being confused and angry about being attacked by stronger enemies. While they always have a good reason for attacking, the game didn't do a good job at communicating this. With this update, you'll receive notifications about triggered villains along with the specific reason. The game will also tell you when you can pillage a defeated enemy or trade with an ally. In general, this piece of UI replaces the villains tab, providing the information in a much more player-friendly way.




Creature inventory and lying items
You can now inspect any creature's inventory or what items are lying on the ground both in the real-time and in control mode. Very useful when looking for items in your storage room or on the battle ground.



Bug reporting tool
I've made it possible to report bugs without leaving the game. You can optionally attach a screenshot or a save file, which is a big improvement over players having to find the file on their disk and email it to me. :P



Imp hauling AI improvement
Imps will now be able to pick up items from many locations before heading back to storage, instead of bringing items one by one.

In terms of features, Alpha25 is almost ready, and I'll be uploading a testing build to Steam very soon. The update will be released officially once Artur finishes some necessary artwork, and I iron out all remaining (known) bugs and missing features.

Gameplay features coming in Alpha25

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, so they were great fun to work on. I'm happy to say that the development of the game has recently transitioned more into adding smaller features, polish and content, as opposed to revolutionary changes.

Let's take a glimpse at the new goodies. :)

Moat building
Constructing arbitrary water or lava channels is an important tool in the hands of a Keeper, so it had to find its way into the game sooner or later. An important issue to solve was how enemy AI should deal with players who completely surround themselves with a moat. As you may recall, I faced a similar problem when allowing to freely fill up tunnels, and the solution was teaching AI to dig into sealed-off dungeons. A similar strategy will be used to breach moats: enemies will simply build bridges over them. Everyone knows that dwarves carry spare wood planks on their backs in case they encounter unexpected bodies of water in their way.



Portals overhaul
Portals are great dungeon feature that allows instant travel between distant locations. Up until now they could only be used when manually controlling a creature, because KeeperRL's finely optimized path-finding algorithms didn't play nicely with such abuses of the laws of physics. However, I was able to find a reasonable compromise between speed and the use of portals, so now all your minions (and enemies!) will include them when calculating their shortest paths around the dungeon. Even complicated arrangements will work! Also as you can see, connected portal pairs will be color-coded.

Ego items
At the urge of the most dedicated KeeperRL fan, SoftMonster, I added the ability to craft so called "ego items", which are items with special effects, like a flaming sword or a helm of telepathy. To craft them you'll need a minion with crafting skills above 90% and with high morale, which will drop after the act of creation. With these changes I also modified the underlying architecture to make it much easier to add new item and effect combinations, so your minions will get a lot of new shiny toys!



Special minion traits
Having new special items, I decided to make minions a bit more special, too. Every new immigrant will have a small chance to possess one or more special traits, not necessarily positive. So now and then you'll attract a goblin with an unusually high crafting skill (necessary for ego items, btw), an orc with night vision or a harpy that's straight insane (watch out for her). A lot of interesting traits are in development, and I hope they'll add a nice twist to the immigration system. It's possible that special traits will come with special requirements, too.

"Stand ground" and "ignore enemies" team orders
This is a nice quality-of-life improvement when controlling teams. Outside of full-control mode, team members have always had a mind of their own, chasing unimportant enemies or blindly charging at a dragon while you are trying to get your whole team to retreat. Switching to full-control to get them to do what you needed was a very tedious option. The "stand ground" order forces the whole team to stay in place even if the leader moves away, and "ignore enemies" stops them from chasing anyone (they will still attack adjacent creatures). The first one is great when you create a formation that you don't want your minions to break, and the second one is best used when retreating or when you don't want your minions to get distracted while traveling.

Alpha24 hotfix 3 is out

This patch should hopefully wrap up bug fixing for Alpha24. I've also started working on Alpha25 already, and will give you an update on that in the next few days.


  • Fixed graphical glitch/screen corruption occurring on some computers.
  • Fixed crash caused by an AI controlled summoned minion (like fly) becoming team leader in full-control mode.
  • Fixed crash involving a creature being killed instantly when arriving to a new site.
  • Fixed movement glitch in ASCII mode. (ASCII mode features full movement animations from now on).
  • Made the fire scroll catch fire immediately when read.

Alpha24 hotfix 2 is out


  • Fixed a crash involving the "move now" command when minion is on an enemy site.
  • Added more diagnostic checks for a crash involving controlled minion being killed.
  • Added diagnostic check for a crash related to boulder swapping position with a spirit creature
  • Added diagnostic check to task updating crash.

Alpha24 hotfix is out


  • Fixed a crash involving pushing a creature into fire
  • Fixed a crash when player is killed by a scroll of fire
  • Added diagnostics to solve a crash involving a team member getting killed

KeeperRL Alpha24 is released!

It's my pleasure to announce that KeeperRL Alpha24 is out! It's another big gameplay patch, bringing in many new features:






If you would like to continue your saved game from Alpha23, you can opt-in into the "Alpha23 save compatibility" BETA branch under the game's properties in Library. Make sure to opt-out of the branch to go back to Alpha24 when you're done!

The full change log:
Gameplay

KeeperRL Alpha24 available for testing on Steam

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 share it with you on the beta testing branch on Steam.

I kindly ask all seasoned players to take a look and report all issues in the comments below or in this thread. Please don't opt in if you are new to the game, as it's very unstable, and the tutorial doesn't work at the moment.

As for the next steps before release, there is only one feature that I need to work on: prisoner rebellion. It is necessary in order to stop players from amassing too many prisoners, and will be triggered when the number of prisoners approaches the size of the armed forces. The logic is quite simple: all prisoners suddenly become hostile. I only need to design an interface that will warn the player about possible rebellion and explain the reason why it might happen.

The last necessary change I will need to work on is to update the tutorial to include some of the new features of Alpha24. It's not a huge amount of work, so I estimate that the new patch should be officially available within the next 2-3 weeks. Hold your thumbs!

Changes in mining

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 minerals are going to be placed on the map during its generation. Their locations will be uncovered immediately, which is how things used to be in earlier versions of KeeperRL.

The geology tech was originally implemented to slow down the player's growth, but it wasn't a great solution, and some players suggested replacing it with exploration and other challenges. Working towards that, I added a few enemies that are generated next to patches of minerals and will attack if you try to mine them. This does the job of slowing down growth and adding challenge, although for future updates, I'll keep on researching ways to make maps more interesting and varied.





Another change that the screenshots reveal is that the steel resource will be renamed to adamantium, and will be mined instead of produced in furnaces. I felt that the extra production step was unnecessary and wasn't adding much in terms of gameplay. Placing the adamantium ores on the map also gives me the possibility to have them guarded by adamantine golems, which are of late-game difficulty level.

With the upcoming changes to the prisoner system, players have the option to supplement their imps with a large number of prisoners. To make capturing them worthwhile, I added a new type of rock that takes longer to mine. The harder rock starts about 20 tiles into the mountain, and will stand in your way to the ores and to building a bigger dungeon. There are more possibilities for different rock types, such as one that's completely undiggable, and that will also be part of my research on more interesting maps that I mentioned earlier.

Finally, after implementing the above changes, it became very obvious that imp AI needs improvement, as the little creatures get in eachother's way a lot when mining. One of the problems was that multiple imps would try to occupy the same tile in order to mine the minerals around it. As a principle KeeperRL doesn't allow many creatures on a single tile, so the imps would either switch their positions at a very fast rate, or one imp would stand and wait needlessly, even though other mineral tiles were freely accessible nearby.

The solution was to assign an empty, neighboring tile to each mineral tile. An imp is then ordered to occupy the matched tile before it starts mining. Of course no empty tile can be assigned to two different mineral tiles, which makes this task identical to the maximum matching problem. The assignment needs to be updated dynamically, as mining tasks get created and are finished continuously. Luckily, a reasonably fast algorithm is easy to implement, and from now on the imps will use it when trying to mine. There are still some nuances that need to be solved, but a nice improvement in imp intelligence should be noticable.

In the following animation you can observe how the empty tile assignment changes when a new mining task is created.

New year, new sweet gameplay features!

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 overhaul prisoner capturing mechanics, so I'll start with that. I want to give credit to the community for overflowing me with suggestions, it helped a lot!

I wanted to come up with something relatively simple, while giving the player plenty of control, and forcing them to take some trade-offs.

The first step to capturing a prisoner is tagging the selected creature. You can do that in both the turn-based and the real-time modes. This gives your enemy extra damage resistance, and a separate hit-point bar dedicated just to capturing. This way you can't cheat by severely wounding them first and only then ordering their capture.

When a tagged creature loses all their hit-points, they get knocked out instead of dying. They also won't lose any of their limbs. A critical feature is that you can always swap position with a knocked out enemy, so they don't block anyone's movement.



Knocked out creatures are given a timer, and when it runs out, they die. But before that happens, they show up in your immigrant list where you can enslave them, provided that you have built a prison. When you do that, they get up and walk into your dungeon. And now you have a prisoner!

Prisoners retain their identities after being captured, so you can use them in various ways, depending on their skills. Of course every prisoner gets a basic mining skill, because that's mainly what prisoners are for. :) Torturing will have a chance of converting them to your side, which lets them join your armed forces. But it will sometimes kill them instead.

There are still a lot of side features needed to be implemented around prisoners, but the core of idea is here at it works well, which I'm very happy about.



Every once in a while I got reports about players locking off separate mini-dungeons for chosen minions, and that it doesn't work due to bad AI, which insists on going to the locked-off parts. I fixed the AI issue, but decided that this strategy requires a dedicated feature in the game.

You can now designate living quarters for chosen minions, and they will try to perform their activities within that area, and other minions will try to stay out. Although if some piece of furniture is not available in their area, then they will break that restriction.




I've made many other small improvements in the last month. I added hand torches, which you can use to light up the area around you when travelling in darkness. The other use is of course... throwing them to set things on fire :D . Which, by the way, also emits light so it's more fun to watch now. :)

In the first gif you may have noticed the new UI for interacting with creatures in the turn-based mode. It should greatly improve the experience when playing using the mouse, and even perhaps let you discover interactions that you weren't aware of before.



I'm also working on improving the base map generation algorithm to make dungeon building more interesting, but I'll talk more about it in future updates.

Alpha23 hotfix4


  • Fixed an issue that caused solitary villains like dragons to never raid.
  • Fixed an issue with calculating area of influence on the world map that made some sites inaccessible.
  • Increased minion sleep time to 200 turns so that succubi can take their time.