Alpha 35 will be a less exciting patch than its predecessor, although not for the lack of ambition on my part! I had planned a world map overhaul as well as a new minion progression system for this update. My attempts failed though, as after creating basic prototypes, I realized that they didn’t mesh well with the game, and didn’t feel good overall. I try to only add features to KeeperRL that I feel 100% certain about, so for now they go to the bin. To get some some actual stuff done, I changed my gears a little and went for easier features. 🙂
Creature sprites used to include weapons added by the artist, regardless of what weapon was equipped by the creature in the game. Rendering actual weapons was a nice opportunity to improve realism, convey more information, and actually make the game nicer visually. It’s a change you should pay attention to if you’re a modder, as to make it work with your content, you’ll need to designate attachment points for creature sprites and add vertical renderings of your weapons. If you don’t do anything, nothing will break in your mod, but it’s a feature worth having.
Configurable keybindings have always been on the list of definite features to add, but I never rushed to do it. Well, now it’s finally in :). It allows configuring shortcuts for most features that you can use the keyboard for, and in the short future I will extend it to include mouse, controller, and Steam Deck support.
KeeperRL used to include some damage types that weren’t part of the main damage mechanic used in combat, such as fire or acid damage. This damage used to sidestep combat damage calculation, which caused some issues, such as torches being overpowered or fire not hurting undead. I decided to merge in all such mechanics into the main damage formula by creating attributes for them, and also used this opportunity to make all attributes moddable. This way, creatures such as fire elementals cause actual fire damage based on their “fire damage” attribute, same with torches and fire traps.
All attributes are now defined in game files, so modders can easily add new damage types with custom resistances, equipment bonuses, etc.
I also decided to turn workshop skills into attributes, as well as the two built-in skills in the game: multi-weapon and digging. This allows reusing all the attribute modifying mechanics, like equipment bonuses, etc.
Lastly, I’ve added a new attribute: “spell speed”, which influences spell cooldowns, and is increased by training spell experience as well as various equipment.
Having added moddable attributes, it made sense to finally let modders create custom buffs, as they would need to add resistances and vulnerabilities to their new damage types. It was a big change, and it took me a while to figure out how to implement it without hurting game performance. It was also one of the last bastions of non-moddable game content. As usual, making it moddable immediately inspired me to add some new content, such as immunities for all damage types, and higher damage and defence buffs granted by a new artifact.
I needed to add infernite and adoxium automatons, so I finally made body materials moddable as well. When adding a new material, you can decide on intrinsic buffs and immunities, whether the creatures will have brains, their health type, ability to lose body parts, dropped items, and much more.
One of KeeperRL’s UI issues was being unable to scroll around in control mode, as the screen would always snap back to your creature when releasing the right mouse button. The main reason why I hadn’t fixed it for a long time was that the code responsible for scrolling is quite ugly and it’s very hard to change it without breaking something. I finally got around to it and you can freely move the screen around, and scroll back to your creature by moving, clicking something or using the “scroll to keeper” command.
There have been discussions lately about a frustrating aspect of the damage formula, which is that creatures with high defence are immune to weak attacks. The reason this is bad is that it forces you to have minions of the same tier as the enemy you want to attack, making some other, otherwise intuitive strategies impotent. One of them is having a large army of weaker units. Of course letting the player overrun everything with weak units is undesirable, but on the other hand they should deal at least some damage before they are all dead. Another issue is that melee attackers are favoured above ranged units, as the latter are more difficult to train enough to damage end game enemies.
The main reason for the currently used damage formula is to prevent kiting strong enemies using weak ranged units. There are several ideas on how to reach middle ground with these issues, and I’d like to credit players discussing this on the forums. I’m planning to release a testing build of Alpha 35 to Steam soon, and it’s going to include some changes that we can all try out and work on.
In the last news update I revealed that KeeperRL will leave Early Access in the next (major) patch, and that it will bring some big gameplay changes. It's finally time to share... more
When I launched the Indiegogo campaign to fund KeeperRL nine years ago, I promised a 1.0 release by the end of 2014. This kinda didn't happen, but I've always been committed to... more
Come in for another episode of KeeperRL Live Steam on Friday! This time I will be creating new Z-level content using my awesome moddable proc-gen framework. Update: you can... more
The Lag Fest finished last Thursday! I've received a total of three save files from Rarasek and Soft Monster, and I analyzed them during the live stream. I managed to come up... more
I've been working a lot on optimizations for the past few game updates, and my impression is that the game has started to run really fine even with large dungeons. Now I want... more