Aug 17, 2021
KeeperRL - Michal Brzozowski
What’s a dungeon building game without dwarves? Of course the little neckbeards have always been present in KeeperRL as an enemy, but a playable dwarf faction has long been due. As a rule I try to add unique gameplay with each new faction so that it’s not a mere reskin of existing content. The dwarves are no different.



The main dwarf characteristic is that you start with exactly twelve of them, and it’s impossible to gain any new minions for the entire game. This is accompanied by a promotion system that lets you specialize your initially blank dwarves with various combinations of skills. The promotions are awarded together with new available technologies, as your faction gains levels.



Together, these two mechanics will force you to take long term strategic choices, as well as to choose your battles very wisely. This is unlike most other factions in KeeperRL, where minions are quite expendable. From initial playtesting it seems like this will be a very ‘roguelike’ experience, which I’m super happy about.

New content is always fun, but I also remember about adding important quality-of-life features to KeeperRL. One that has been requested for a long time is item smelting. It allows you to get rid of unneeded equipment, while recovering some resources. Another such feature is the ‘unclaim tile’ order, which lets you remove parts of territory that you aren’t interested in.



To add some variety in the landscape, I’ve added a fog effect which simply obscures vision. Since KeeperRL has already had a similar poison gas effect, I decided to merge these two into a general gas system. This is of interest mostly to modders, as it’s possible to add custom gases with various effects, and they can be placed on the map permanently during level generation or temporarily, for example as the result of a spell or crashed potion.



These are only some of the new features that I’ve been working on in the last weeks. If you’re interested in finding some fun surprises, you can try out the Alpha 33 testing build on Steam, which I’m going to release right after publishing this blog post. Stay tuned for another announcement with the instructions on how to opt into the new build.
Jun 26, 2021
KeeperRL - Michal Brzozowski
After a bit of a break following the last patch, I’m back with some new, exciting gameplay features that will arrive in KeeperRL Alpha 33.

Workshop materials



I’ve been looking to add more ores/materials to the game for a while, as an extra reward for exploring deeper z-levels. Quite a lot of mods add new materials, and it’s really a no-brainer feature for vanilla. For now I’ve settled on adding two new ores. The first one, “adoxium”, is named after your favourite evil god. It allows crafting items with magical properties, and is super rare, to the point that you’ll only craft a few full sets of equipment with what you can mine with reasonable effort. The other material is “infernite”, borrowed from the Bonus Mod, as it is a cool and unique idea. It is a permanently burning ore, which allows forging weapons that deal fire damage. The only issue is that it burns whoever touches it, which means that you’ll have to solve the problem of fire resistance for your workers and the users of infernite weapons. It is as rare as adoxium.

What was previously stopping me from adding new materials was the workshop UI. Requiring listing every new item/material pair, it would become quite unreadable. After a bit of research, I’ve ended up adding simple tabs to the menu, which you can see in the screenshot above. They’ll help a lot in finding your desired item.

Specialized storage



A storage system overhaul has been on the table for a while, partly because piling items on the floor randomly is a bit counter-productive, and also because I want to give players new ways to design their dungeons in creative ways. On the other hand, I don’t want KeeperRL to require sophisticated storage micromanagement. A simple “designate and forget” should do.

The first step towards this goal was to create a hierarchy of storage types, starting from the general “equipment”, “resources”, etc, and specializing them into more and more narrowing categories, like “weapons”, “bows”, “gold”, and so on. When a sword is produced, the game will start with looking for a specialized weapon rack to store it, and fall back to the old equipment storage if it’s not found. This way you can have your items neatly organized, but you don’t have to. Your minions won’t really care.

It’s worth mentioning that the new storage system is fully moddable, so you can probably expect your favorite modders to come up with new custom storage furniture as well.

Another topic are storage limits. Right now you can store your entire dungeon’s treasure on one tile. This is both due to simpler implementation, and for players’ convenience. I know from other games that having to constantly create new storage rooms for your ever growing pile of stuff can be annoying. I think that a middle ground would be practical, where basic storage types have limits, but one can eventually build some sort of bottomless magical chests. I still need to think about all gameplay and implementation (performance) consequences of this, as it would be a big change to KeeperRL’s engine.

Prison, arrowslits, and new traps



In another improvement inspired by modders, I’ve added two new prison features. Mostly to improve realism, the game will require you to secure all prison tiles by either prison bars or prison door. It’s mostly an aesthetic change, as prisoners can still move freely around your dungeon when doing work. This might change though in a future prisoner overhaul.

Something that has been suggested by players, is the idea of arrowslits. In KeeperRL it is a special wall tile, which creatures with the attribute of “arrowslit vision” can see and shoot through. It’s a human equivalent of “elf vision” (which you may have fallen victim to if you were ever shot by elves through the trees). It will be available to the white knight faction as well as AI villains. Expect more unexpected arrows flying in your direction

KeeperRL will feature two more traps. The first one is the gargoyle, which is a stone guardian that comes to life whenever enemies appear. The other trap is the blast trap, which is pretty similar to the "directed blast" spell. While pretty simple on the surface, with some clever tricks it can create very interesting situations involving attackers.

Enemy alliances



Inspired by one classic fantasy story, I’ve added a special end-game event to KeeperRL, in which the last standing enemies gather in a final, desperate attack against you. It is a fully scripted scenario, so don’t expect any simulated enemy diplomacy. It’s thought of as an occasional change of pace, most likely to your doom.

The attack, when it happens, involves all the forces from the remaining main villains, including their leaders. Therefore, resisting it should secure your victory in the game.
KeeperRL - Michal Brzozowski
  • Fixed wiki link.
  • Fixed a crash caused by applying the Shove effect when enemy was not adjacent.
  • Fixed a phylactery crash (this is a feature not present in vanilla yet, but you may find it in mods).
KeeperRL - Michal Brzozowski
This is another bug fixing update.

  • Research points are correctly awarded when a tribe is killed by goblin kaboomer(s).
  • A 'Slayer' title is correctly given to the master if a companion (such as a spirit) kills a tribe leader.
  • Increased the training limit of golden bookcases and adamantine training dummies to 99.
  • Fixed tutorial crash when digging down.
  • Fixed a crash when attacking a retired dungeon as an adventurer and a team is disbanded due to being wounded.
  • Fixed a world generating crash caused by placing a creature on a hidden door tile.
  • Fixed a dungeon retiring crash caused by the presence of an ice demon.

Big thanks to all bug reporters!
KeeperRL - Michal Brzozowski
This patch fixes some common bugs that have crept into the recent update.

  • Fixed crash caused by using a drag & drop team member go-to order and then traveling to a different site.
  • Fixed crash when multiple equipped items are removed due to limb loss after being polymorphed.
  • Fixed crash caused by killing a creature along with its companions in the same move.
  • Special beasts with a fire or poison bite attack are now fire or poison resistant respectively.

I'm on the hunt for a few more remaining bugs so expect another patch soon. Happy hacking!
KeeperRL - Michal Brzozowski
KeeperRL Alpha 32 is released! This patch features major gameplay improvements, including an AI and combat overhaul, as well as new content additions, including adapting the Goblin Keeper faction from the Bonus Mod. Check out the patch notes below for more detailed information.

I’d like to thank everyone involved in crash testing this patch, sending bug reports and suggestions. Your help was invaluable!

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



Gameplay
  • Improved combat formations AI, including keeping spellcasters and healers behind the front lines.
  • The type of AI can be switched between 'melee' and 'ranged' for every creature.
  • The game has the concept of polymorph, with multiple new polymorph spells and abilities of various kind.
  • Archer and mage classes receive the ability to have projectiles bypass allies with training.
  • Spellcasting AI will try to maximize the effect of projectile and area spells.
  • The speed and slowness effects apply only to movement and not other actions, ex. fighting, digging, etc.
  • Guarding activity and guard zones are split into three groups, and the activity is disabled by default.
  • Artifact potions with permanent effects are available as consumables in the minion menu, and minions will automatically consume them when ordered to pick them up.
  • The speed and slowness effects are allowed to coexist and cancel each other out.
  • The Keeper will also abuse workers, not only fighters.
  • The ring of spying will get destroyed if the spy attacks anyone.
  • The Keeper is allowed to copulate.
  • Peacefulness prevents creatures from using hostile spells and abilities.
  • Removed tech books.
Content
  • Goblin faction adapted from the Bonus Mod.
  • Special z-level for the Goblin faction.
  • Orcs and ogres are replaced by goblins and trolls.
  • Vampires are granted the 'lord' status when reaching their max training level.
  • Added a 'blink' spell to vampires.
  • Shaman summons have been reworked as a generic companion system, with other creatures that have companions and pieces of equipment that can grant them. Companions always respawn up to a certain limit, and their stats may depend on their owner's stats.
  • Added setting to unlock all locked content.
  • Swords are swapped for clubs in bandits and rat people.
  • Green dragon has a 'poison breath' attack.
  • New red dragon lair.
Modding
  • Prisoners can be converted using the Effect system, so you can add other ways of conversion other than the torture table.
  • The type of AI can be defined as 'melee' and 'ranged' for every creature.
  • Added a Flag requirement to immigration.
  • Added the ability to add flags to chosen keepers.
  • 'InTerritory', 'Humanoid', and 'Spellcaster' creature filters.
  • 'SpecialAttr' effect, which adds attribute bonuses that depend on chosen filters applied to the enemy.
  • Added an 'eyeball' property to furniture, so that new eyeball types can be modded.
  • Particle effects, such as glitter can be added to custom furniture.
  • Added 'SetCreatureName' and 'SetViewId' effects (see the ennoblement spell).
  • Reimplemented 'AITarget', 'AIDistance' and 'AIBelowHealth' with a generic AI effect which uses creature predicates.
  • Ranged weapon logic is removed from the game. Ranged weapons instead grant spells/abilities that shoot the missile.
  • Ranged spells have a 'maxHits' attribute, which defines the max number of creatures that are hit by the spell.
UI
  • Drag-and-dropping team members on the map in the turn-based mode causes them to receive go-to orders.
  • Improved the order of sprite rendering, getting a more natural '3d' look.
  • Creature sprites are flipped horizontally based on their movement.
  • Reworked settings and 'load game' menus.
  • Added a message when content gets unlocked.
  • Improved workshop menu, including a 'change count' button.
  • Glyphs can be mass-applied to a stack of crafted items.
  • Added a 'choose all' button in the pillage menu.
  • Visual warning when torture is unavailable due to reached population limit.
  • Added a warning when spell or ability might harm an ally.
  • Question marks drawn in place of locked keeper and adventurer characters.
  • Started using short versions of very long workshop item names.
  • Creature description includes info on multiple heads.
  • Added a steam animation to automaton engines.
  • Added a 'peacefulness' effect animation.
  • Magic missile can be invoked using the 'f' key.
Fixes
  • Prevented the leader from running after minions outside his base to abuse them.
  • Fixed a crash caused by casting a firewall or related spell on a candelabrum.
  • Added rendering optimizations.
  • Fixed storage warnings referencing a wrong storage type.
  • Workers won't drink all the booze that they were to haul to storage.
  • Potions of booze won't have an effect when thrown.
  • Glyphs can no longer be 'applied' in control mode, which did nothing and used up the glyph.
  • Fixed drawing bogus particle effects generated on different z-levels.
  • Fixed some enemy AI not returning to their territory at night.
  • The game considers peacefulness a negative effect so that AI uses it offensively.
  • Sleeping creatures will wake up when attacked by fire or acid.
  • Stopped Adventurer from sleeping multiple times if player keeps clicking the sleep order.
  • Fixed names of intrinsic items with prefixes, ex. fangs of poison, etc.
  • Shopkeeper debt is not shown if shopkeeper is dead or not nearby.
  • Fixed crash caused by recruiting allies that were stunned.
  • Fixed gnome traps requirements.
  • Fixed save incompatibility between the Linux and Windows platforms.
  • Fixed item tooltips in the pillage and trade menus.
  • Prevented creature attributes from going below 0.
  • Fixed crash caused by an applied item killing the creature.
  • Fixed mouse click glitch involving the mini map.
  • Fixed 'RemovePermanent' effect name.

KeeperRL - Michal Brzozowski
An unofficial Alpha 32 build is out on the BETA branch. Check it out if you're an experienced player and want an early glimpse of all the new stuff!

Please post your feedback in this thread or in the comments below.

If you are new to KeeperRL, it is strongly recommended that to stick to the official Alpha 31 patch for now, as this build is very unstable, and the tutorial doesn't work at the moment.

Please also note that until the patch is officially released, the save file format may change at any moment, and you saves may be lost. (although I'll do my best to avoid this).

To opt into the build, please go into the game's properties, BETA tab, and choose the "dev" branch.
Mar 8, 2021
KeeperRL - Michal Brzozowski
It’s been a while! KeeperRL Alpha 32 is slowly reaching its final shape, so I want to update you on all the latest stuff that made it into the game.

News number 1: The Goblin Keeper.



Many of you probably remember the Goblins from the Bonus Mod. For those that don’t – it’s a super unique faction in one of the most popular mods. Go check it out!

With SoftMonster’s and RighteousSinner’s permission (the latter given before Righteous sadly passed away), the Goblins are making it into the vanilla game! I’ve made many adjustments and added quite a few ideas of my own into this hilarious faction, while trying to stick to the original spirit. I feel like this will be an amazing addition to the game.



Having added the Goblins, I decided to scrap Orcs and Ogres from the whole game, and copy some of the goblin specializations back to the Dark Mage and Dark Knight keepers, since they have much more character, and I never liked the Orcs’ and Ogres’ visuals.

On the topic of factions, another one coming up is the Necromancer, but it requires more work, so not wanting to postpone Alpha 32 for too long I’ll leave it for the next update. There are some nice ideas in there, including an Abomination minion that’s assembled from body parts of fallen enemies, and a phylactery mechanic that makes a creature semi-invincible. So I’m still very optimistic about what should come out of it once the Necromancer is fully fleshed-out.

Another new feature is a continuation of combat improvements described earlier, which allows giving go-to orders in the turn-based game mode. For now the order ends once the minion reaches the target, and in the future I want to add UI for more sophisticated orders, like ‘go-to and wait X turns’, ‘go-to and scout’, etc. But even in its basic form I find this feature very useful, especially when ‘stand ground’ is turned on, you can easily position your team for combat.



On the topic of combat, another important change is the speed system. From now on speed and slowness will only affect movement, and all other actions, like attacking or destroying stuff will always take one turn for all units. This levels the playing field a bit, since these effects used to give a massive (dis)advantage to the unit. I’ve also allowed creatures to be affected with both speed and slowness and the same time, causing them to cancel each other out, which lets you temporarily boost your slow minions with a speed potion or vice-versa.

There have been improvements in the visuals as well. Sprites are now drawn in a way that gives a bit more realistic 3D effect, and creature sprites will change orientation horizontally based on movement (see the first gif).



At this point all that’s left is some testing, and helping out modders with updating their mods to Alpha 32. You can expect a testing build released to Steam very soon, and the official update not long after.
KeeperRL - Michal Brzozowski
The turned-based ‘roguelike’ mode is an important and distinguishing feature of KeeperRL, yet something that still causes a lot of friction for players. The main problem is that roguelikes are normally single-character games (outside of an occasional pet or companion), in which you make very frequent and fine-grained decisions. But in KeeperRL you typically lead teams of unlimited size, which either makes you dependent on disappointing team AI or forces you to take control of every team member, which slows down the game massively.

Improving the AI should make the experience much more pleasant, in particular for non-melee units, which until now had a tendency to get killed in the front lines of combat. The first, and biggest challenge was to identify effectively which units are non-melee, since a lousy bow doesn't turn an ogre into an archer. Ultimately the melee/ranged designation will be explicitly stated in creature definitions, which is something that modders will have to remember when adding new ranged fighters. The player will also have an option to override this setting for every minion, so you'll be able to tell your ogre with a bow to stay in the back of the squad.

Once a creature is known to avoid melee combat, the game checks for any offensive spells and abilities, and keeps just enough distance from the enemy to take a shot at them. The same logic will be used for non-combat creatures, like imps, which will automatically avoid enemies altogether.



KeeperRL has special squad AI that causes creatures to assemble in simple line formations. To make it work nicely with non-melee creatures I’ve made them stay two lines behind by default. The game will also need to take special care of healer creatures, who have to stay close to the melee fighters, but at the same time try not to get slaughtered in combat.



All these ideas are tricky to implement, since they need to work for all types of creatures and in different scenarios ranging from open areas to tight corridors. To help the AI a bit more, I’ve given more experienced archers and mages the ability to shoot past their allies, which you can notice in the above gif. This should make them even more effective and overall combat more satisfying.

While tweaking ranged combat, I’ve also added a warning for when you’re about to attack you own minions with a spell or arrow, which should take care of the confusing situations when your own minion turns against you.



There has also been a more internal change, which reworked ranged weapons as spells/abilities. This makes it easier to define weapons with special properties, such as cooldowns, custom effects, attacks that hit multiple enemies at once, etc.

In other news, to give you more crazy experiences, the game will now feature a ‘polymorph’ spell. It will have a few variants and will be used by creatures in several different situations. I’m intentionally keeping the details vague in order to make the surprises more exciting. I encourage modders to check this feature out, since it allows creating some new, fun gameplay.



I’ve also been working on a new ‘load game’ menu, which will come before the character creation screen, because you usually load games more often than start new onces (unless you’re very new to KeeperRL, ha, ha). It’s very likely that I’ll also design a wholly new main menu for the upcoming update.

KeeperRL - Michal Brzozowski
This patch adds the following content:
  • The Halloween Zombies faction is now hidden by default and can be unlocked through a secret action in the game.
  • Another novelty playable faction has been added and has to be unlocked.

And fixes:
  • The game won't allow playing as retired villains (enemies that have conquered your base and are now living in it) in the warlord mode.
  • Fixed a glitch in the tutorial build menu.
  • Fixed a rare UI crash when clicking on a minion in the minion menu.
...