KeeperRL - Michal Brzozowski
  • 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.
KeeperRL - Michal Brzozowski
  • 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 - Michal Brzozowski
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 tagged to be captured, and they retain their identity after becoming prisoners. Read more about the system here.
  • Improved full control mode handling. Battles can be played in a proper turn-based manner. Read more here.
  • Changes in mining: new challenges, and better progression. Read more here.

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:
  • Prisoners retain their identity and can join your side if tortured.
  • Prisoners can be captured outside of player's dungeon.
  • Player must tag specific enemies that are to be captured.
  • Prisoners can perform work like crafting, if they have appropriate skills.
  • Prisoners can escape if there are too many compared to fighter units.
  • Most mineral veins are guarded by enemies like ants, dwarves and golems, who will attack when the player tries to mine the vein.
  • As most minerals are guarded, geology tech is removed.
  • Changed steel to adamantium, which is mined and not smelted from iron.
  • Added 'quarters', which can be used to create mini-dungeons for selected minions.
  • Added 'hard rock' tiles, which take longer to dig out, deeper in the mountain.
  • Added iron and adamantine doors.
  • Creatures have explicit intrinsic attacks, like fangs or fists that can be chosen via UI when attacking.
  • Time system is changed to explicit turns and 'half-turns' for easier control during battle.
  • Creatures only have 3 speed options: half-speed, normal, and double-speed. (speed attribute is removed)
  • Creatures with double-speed perform their second move immediately after the first.
  • Boulders don't wound huge creatures like dragons.
  • Some villages have a chance to be generated on the 'bones' of others.
  • Healer AI prioritizes healing creatures that stand directly next to an enemy.
  • Increased spell damage of legendary minions.
  • Added maximum range for bows.
  • Decreased mana regeneration rate in free mode when mana regeneration option is turned on.
  • Kobolds are stronger and have spears.
  • Improved eating AI, minions will try to leave the pigsty after having eaten.
  • Changed AI code involving swapping positions, creature's won't get in each other's way so much anymore.
  • Made cooperative AI assign better positions when mining close to each other.
  • Removed tech number limit based on library size.
  • Minions respond immediately to the player manually changing their activity (including waking up).
  • Minion wakes up when it is assigned new equipment.
  • Added hand torches.
  • Burning objects emit light!
  • Improved logic of injuring non-living creatures, which fixes the problem of killing them taking too long.
  • Added caps to how much of the basic stats dopplegangers can inherit.
  • Added minimum turn requirement to some higher level immigrants, which causes more low level immigrants to be presented early in the game.
  • 'Prioritize task' order makes an imp drop their current task immediately.
  • Decreased the 'unavailable zone' width on the map border to reduce memory usage.
  • Reduced amount of stone dropped by boulder to avoid generating free stone.
  • Reduced amount of gold dropped by demon dwellers.
  • Made minions do other tasks when there is nothing to craft.
  • Statues cost gold instead of mana.
  • Creatures and items are teleported out of inaccessible tiles.
  • Added the ability to push away smaller creatures.
  • Removed the 'stun ray' spell.
  • Added 'demonology' tech that unlocks demon shrines.
  • Hallucination effect also grants telepathy.
  • Added baby spiders and blind children to giant spider's den.
  • Vampire lord drops a scroll of darkness, which causes a creature to become permanently immune to sunlight.
  • Ghost gets a 'touch of insanity' attack, which causes creatures to be hostile to everyone.
  • Succubus gets a 'touch of love' attack, which causes creatures to become peaceful.
  • Robe gives spell resistance.
  • Added invisible alarm trap to castle.
  • Added priest to castle.
  • Pig corpses don't emit gas.
  • All enemy creatures heal slowly over time.

  • New UI for managing team members: adding and removing from team, changing move order.
  • New UI for interacting with other creatures, like attacking, chatting, etc.
  • Added creature status (leader/fighter/civilian) highlights and descriptions.
  • Added tabs to view team members.
  • Added new buttons for toggling and exiting control mode.
  • Attribute bonuses from equipment and buffs are visible in the UI.
  • Added a simple animation for when creatures are wounded or tortured.
  • Limb losses are represented on HP bar for non-living creatures, which don't have health and have to be chopped into pieces.
  • New sprites for the demon tribe.
  • New buttons under the minimap to open world map or scroll to keeper's location.
  • Boulders can be pushed using the mouse.
  • Summoned creatures remaining 'time to live' is explicitly shown in the UI.
  • Total inventory weight and maximum capacity is displayed in control mode.

  • Endless mode highscore takes into account only time spent defending the base, and not wandering around.
  • Optimized and fixed various issues with creature pathfinding.
  • Optimized field-of-view calculations, which speeds up the game considerably.
  • Optimized world generation.
  • Stopped doppleganger from being able to consume itself.
  • Doppleganger doesn't inherit effects granted by rings and other equipment.
  • Fixed ancient spirit's spell attack.
  • Minions pick up potions of melee, spell and ranged resistance.
  • Chests and coffins spawn creatures further away if adjacent tiles are blocked.
  • Reinforce wall order is removed when wall is marked to be dug out.
  • Disallowed destroying bridges.
  • Fixed digging orders persisting when tile was destroyed by someone else.
  • Fixed trap removal and building floors under traps.
  • Fixed 'sleep on torch' UI bug.
  • Fixed level generation crashed caused by trying to place a blind creature.
  • Fixed marking campaign base map as conquered when village is destroyed.
  • Fixed drawing question marks on the main map.
  • Fixed red dragon appearing on green dragon's place in the campaign.
  • Increased female keeper spell damage to match the male version.
  • Fixed issue with calculating influence area in campaign map.
KeeperRL - Michal Brzozowski
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!
KeeperRL - Michal Brzozowski
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.

KeeperRL - Michal Brzozowski
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.
Dec 19, 2017
KeeperRL - Michal Brzozowski
  • 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.
KeeperRL - Michal Brzozowski
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 have a very clear vision yet. I'll lay out what I've come up with so far, and I hope to get some feedback from you.

At the moment prisoners can only be captured inside your own dungeon, and the rules of how it's done are hidden, so the system is unclear and random for the player. The main goal is to make the requirements explicit, so it's clear what you need to do to capture a prisoner.

The main approach that I'm looking at is using the immigration UI. In the example screenshot above the player can schedule capturing of prisoners, provided that the prison is big enough. Once the orders are placed, minions will try to capture prisoners at the nearest opportunity, for example when raiding a village.

The disadvantage of this system is that if the player forgets to place the order before a battle, they will lose the opportunity to capture anyone. It's also unclear how captured prisoners should travel back to your dungeon. Should they join the raiding team and return with them? What if you want to continue raiding, are you going to drag the prisoners with you to the next battle? They could also return by themselves, but it wouldn't be realistic - they could easily escape.

A much simpler idea is to implement prisoners as regular immigrants. The two requirements would be building a prison and capturing a village. The remaining civilians in the village would, at the press of a button, turn into prisoners and come to your dungeon.

Just like above, having prisoners travel alone would be unrealistic. The idea also seems too automated and lacking any challenge. The system also doesn't easily accommodate capturing non-civilians. One major advantage is that it's very easy to explain to and to use by the player.

There are some vague ideas of gamifying capturing a bit more, so that it requires more effort or strategy from the player than just killing enemies. A special "slave master" minion could be the only one capable of taking prisoners or there could be a special weapon, like a throwing net, or a trap. But I'm afraid of making the system unwieldy and requiring too much micromanagement.

Once prisoners are captured, we need to decide what to do with them. The current options are execution, which aggravates enemies, torture, which produces mana, or having them supplement your imp force. Every captured creature turns into a generic prisoner minion, and they are all identical.

There are a few ways to make things more interesting. One is letting prisoners retain their identity, making some more useful at certain tasks than others. Or even letting them join your armed forces. I think enemies should also try to break in and free prisoners.

I was also thinking about making prisoners more essential for progression by limiting the capabilities of imps. For example after some length of digging the rock could become harder and only possible to mine by prisoners. Same thing could be done to some or all minerals. Acquiring a large number of prisoners would thus be critical to have a successful dungeon.

All of the above are just ideas floating in my head or being partly implemented. I'll do a lot of playtesting before I settle on a solution, and I also expect that things will need to be refined in later patches. Hopefully I can come up with a system that will add a lot of meat to the game. Meanwhile, I'm eager to hear your thoughts!
Dec 5, 2017
KeeperRL - Michal Brzozowski
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 future posts I'll talk about more plans for Alpha24.

The first thing I decided to work on was polishing the full-control mode. It has become an important feature of the game, so fixing the very rough edges is high priority, especially that I got a lot of complaints.

The first issue was the chaotic move order of team members. The movement system in KeeperRL was very flexible, allowing varying speeds of different creatures. Unfortunately this made team members "overtake" each other in the movement queue in a very unpredictable manner. The only way to solve this issue was to change to a proper turn-based system, where every creature normally gets one move per turn. This allows processing creatures in a "stable" order, which can be altered by the player, for example if they want to postpone one team member's move (without them losing their turn). As another "win", a player-controlled creature that has a speed buff and gets two moves per turn can perform them in sequence. The "slow" debuff makes creatures skip every second turn.

What are the disadvantages the new system? Creatures lose the fine-grained speed attribute, and almost everyone moves at the same speed. I don't think this will have a negative impact on the game, but if it's a major issue then it's possible to add more speed levels, where a creature gets an extra move every other turn, every three turns, etc. This emulates the old system very well, while having an advantage of being much more predictable.

Having that change out of the way, I added the UI to manage team members, where you can see and change the move order and can decide if a minion is controlled manually or by AI. This also makes the way for UI for giving orders to the AI, which many players ask about, although this feature will likely not come in Alpha24.

I have big hopes that these changes will make the full-control mode much easier to use and more fun.

The screenshot above reveals another new feature. Every creature now has a set of intrinsic attacks, which by default are active when it is not wielding a weapon. Each attack is attached to a body part, and is made unavailable when the body part is lost or injured. If a creature has multiple attacks, then one is chosen randomly when attacking. It is possible to make attacks active even while wielding a weapon, which is useful if a creature can inflict a poisonous bite, for example.

The feature gives me a lot of new options for designing creatures, and should result in some new interesting gameplay. Note that every attack can be inherited by a doppelganger!

Here are the intrinsic attacks that have made it into the game so far:
  • Fist
  • Kick
  • Claw
  • Fang
  • Touch
  • Bird beak
  • Unicorn horn

Every attack can have an optional extra effect, for example inflicting poison or insanity (by the ghost), or something more magical by the unicorn horn.

A slightly related feature that I plan to add is that some creatures, when killed, will drop a body part with the corresponding attack, which can be used as a conventional weapon. A unicorn horn and dragon fangs come to mind as examples. This should be fun!

One more feature that I'd like to present is related to world generation. Until now, the home of every villain was generated almost identically, which got boring very quickly. But now, the game can generate a villain on the "bones" of another one, as if they conquered and captured their home. In the screenshot below, the dragon is occupying a castle after having killed all the knights. It functions as a normal dragon villain in the game, and having the castle and knight skeletons is just a way to mix things up, without changing the gameplay in a major way. The dragon can also be generated on the top of an elementalist tower or in the dwarf cave. There are all sorts of combinations possible for various villains.

Nov 17, 2017
KeeperRL - Michal Brzozowski
Today's patch includes some important gameplay changes, and a few bug fixes. I still haven't tracked down the graphical glitching issue that makes the game unplayable for some players. If you experience this, and would like to help with the investigation, please contact me.

  • Mana reward is no longer limited to the first enemy of a type.
  • Human village on home map reward upped to 100 mana.
  • Minions train 40% faster.
  • Bandits, lizardmen and ant worker attackers are weaker in endless mode.
  • Villain creatures heal slowly over time.
  • Fixed map generator crashes and slow-downs.
  • Fixed a bug that caused wounded attackers to retreat immediately.
  • Game no longer crashes when some files aren't found, and displays an info message instead.
  • Added diagnostics to track down some crashes.

Search news
Apr   Mar   Feb   Jan  
Archives By Year
2018   2017   2016   2015   2014  
2013   2012   2011   2010   2009  
2008   2007   2006   2005   2004  
2003   2002