I’ve been working on the endless mode recently, trying to get some good gameplay out of it. As a reminder, the endless mode is all about defending your dungeon against incoming waves of attackers, trying to survive for as long as possible. The conquering aspect of KeeperRL is completely removed in this mode, and there is no victory condition. (if you are wondering how this will work with the recent progression changes, you will get mana rewards for resisting each attack wave).
The rates and the difficulty curve of the attackers will be very similar across games, in order to give a consistent experience, and to make different runs comparable for the sake of highscores. I don’t want to have to define every single attack wave by hand though, and I also want them to be randomized a bit, so I have to come up with a way to scale the difficulties of monsters automatically. The game doesn’t know how to compare the difficulty of creatures though, for example is a level 35 dragon more dangerous than 15 dwarves, level 20 each? I think the only way to tell is to simulate attacks with AI controlling both sides, but it’s not an easy task.
For now I’ve been playing around with scripted attacks, for example every 1000 turns, alternating between bandits and ants, and every wave is 4 levels more experienced than the previous. With the recent addition of full control mode, I came up with a simple tactic of trapping the enemies at the end of a corridor, with 3 of my minions fighting one enemy at a time, and a few healer minions supporting them from the second line.
It became really obvious that the enemies need better attack patterns. The simplest solution was the blast spell, and the AI will now try use it to push your minions away and advance through the choke point. My second idea was to give ants their natural capability: digging. Up to this point the enemies couldn’t breach the structure of your dungeon. It was time to change it. 🙂
This new mechanic comes with obvious balance challenges, as we wouldn’t want ants to be able to dig out a whole side of your dungeon. I came up with the following rules: they will only dig when it creates a significant shortcut to their target, and will mostly avoid digging through reinforced walls. They will also try to dig around choke points.
Having taught the AI how to dig, I realized it could also be a solution to another problem: sealed dungeons. At this point the “fill up tunnel” order is very limited: you can’t place more than one at a time, and you can’t cut off an empty area. The reason for this was that the game wouldn’t be able to deal with a completely sealed- off dungeon, and you could survive indefinitely, which would especially break the endless mode.
The problem is that, due to a bug, it’s still possible to trick the “fill up tunnel” order into sealing off the dungeon, and until now I didn’t have a good answer to that. With AI being able to dig, I gave that ability to all enemies, but with the exception of ants, only if there is no other way to reach their target, meaning that it had been sealed off.
Just to repeat this point :), if you don’t seal off your dungeon, the only ones to do any digging will be the ants, but if you do, all the enemies will happily dig through to your gold or your Keeper. On the plus side, you will be free to fill up any tiles you want.
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