KeeperRL - miki
  • Made the game respect a flag that prevents certain creatures from copulating with succubi.
  • Fixed a minor issue with animal fence not having desired effect.

Thanks to CSeven and chaoticandy for pointing out the bugs.
Dec 31, 2024
KeeperRL - Michal Brzozowski
Since the launch of v1.0, I've been focused on fixing bugs and releasing content patches. As 2024 comes to a close, I wanted to do something fun and share a few facts and stories from KeeperRL's 11-year journey.

Let's start from the beginning. In late 2012 I quit my programming job and went on a four month bicycle trip in South America, where I crossed the world's greatest salt flat and reached almost 5,000 m (16,400 ft) a.s.l. on my bike. After I got back I was a bit bored, so I started coding a little roguelike game that I had in my mind for a while. Since I didn't have a job at that moment, I was able to put in a lot of hours, and by mid-2013 I had a little working game with over a hundred downloads.



I was thinking about a way to pay homage to Dungeon Keeper, a game I really loved in my youth. A little later that year, I learned about Dwarf Fortress and its basic idea of a grid-based dungeon-building simulation. At some point everything clicked and I realized that I could add a real-time building mode to my little game, but keep the turn-based mode for controlling individual minions, similar to Dungeon Keeper's possession spell. I wrote a simple demo over a weekend, posted it on roguebasin, and went on a hike. When I came back, I had a bunch of emails in my mailbox asking about the game. This is how KeeperRL was born. One comment I received strongly suggested to try crowdfunding. A few months later I created an Indiegogo campaign, which yielded $7,000 USD, prompting me to work on the game as part of a full-time job.

How about some financial stats? KeeperRL went on sale on Steam in March 2015 and has since sold over a 100,000 copies. The total sales have exceeded 1.5 million dollars, of which I saw around one third, after platform commissions and taxes. The best years financially were 2021 and 2022, each with over 10,000 copies sold, most likely thanks to the Covid pandemic; and of course 2024 after the v1.0 launch, with over 30,000 copies sold. A significant portion of KeeperRL's overall sales can be attributed to two streamers: SplatterCat and Nookrium. Together, they have posted over 70 YouTube videos showcasing KeeperRL to hundreds of thousands of viewers. I’ll always be grateful to all streamers who help introduce indie titles to new audiences.

According to Steam, the average player has played for about 19 hours, so we can estimate the total playtime to be just over 200 years. Since KeeperRL v1.0 was released, about 30,000 players have started 150,000 games (counting only those who have agreed to send me anonymous statistics from the game). About 15,000 games were started with at least one mod enabled. Over the whole life of KeeperRL, about 1 million games have been started, and the game has crashed 22,000 times.

If you're a fan of programming, then you might want to know that KeeperRL is written almost entirely in C++, with over 100,000 lines of code. Most of it was written by me, but my friend from university, Krzysztof Jakubowski, contributed particle effects and Steam workshop integration. Because KeeperRL is open source, and available on Github, a number of people have also contributed various gameplay changes and bugfixes. The game also features a custom language for all data definitions, and the included Effects system is actually a funky programming language by itself, letting modders do some very weird things. There is also a custom programming language dedicated to random map generation, which is available to be used separately in other projects. The game contains another 20,000 lines of code in these languages. As I'm a fan of creating software for my own use, I made a custom text editor for developing KeeperRL, and the text editor is written in my own programming language called Zenon.

Want to read a funny piracy story? There is a small piece of functionality in KeeperRL for my own use, which generates a unique id the first time you launch the game from a given folder, and stores it in a file. This id is referenced in crash reports, so I can find the right report when someone tells me about a crash they experienced. Why is this relevant? Sometimes I download KeeperRL patches from BitTorrent, to see if they contain malware. One time I realized that whoever uploads these, first launches the game before packaging it, which generates an id that all these illegal copies then use connect to my server. I was able to use this fact to get a glance at how many people pirate my game. When I released the next patch, I also gave myself the ability to send a custom message to these players, asking kindly to purchase the game. I could have also easily tracked down the Steam user who posted the illegal downloads, but decided that this would be a big breach of privacy, and it would be unlikely that Steam actually agreed to take action against them.

How about some bug fixing tales? One memorable bug, which caused the biggest hair loss on my head, appeared just as KeeperRL was launched on Steam Early Access. It made the game crash while saving, if a Doppelganger was currently assigned an absorption task. This is the worst kind of bug, because it essentially caused the player to lose their game entirely, as the previous save file got rewritten by a corrupted one (I recently fixed this, the previous save is now overwritten only after the new one is completed successfully). To make things worse, an unrelated bug prevented this particular crash from being reported to my server, stopping me from getting any information. It took me three whole weeks before I found the reason and could fix it. As you can imagine, many players were angry after losing their games.

Another fix-resistant bug caused weird screen corruption in the game on some players' computers. Without replicating it, this kind of bug is almost impossible to fix, and I had never seen this in person. A possible solution came from the fact that this only started happening after a new alpha update. A kind soul from Reddit agreed to test about a dozen custom game builds that I prepared, narrowing down on the location of the change that caused the corruption. Eventually it turned out that merely swapping a couple of unrelated lines in the game's graphics code made the issue go away. Because it was a very rare in the first place, I suspect this was actually a bug in a graphics driver.

These are just a few tales that randomly came to mind from the long, crazy adventure of creating KeeperRL. It culminated in the release of v1.0 this year, but I still have ambitious plans that make me excited for 2025. I wish the same excitement for all of you!
KeeperRL - EldaRobster
Hi everyone,
I wanted to leave you all with a little Christmas gift before the holidays. This year KeeperRL finally went 1.0 and you’ve all shown such incredible support for me and the game.

There’s more in store for KeeperRL next year but for now I hope you’ll enjoy this Holiday update.

  • New furniture for all crafting stations to buff your crafting abilities.
  • New floor options, giving you more ways to furnish your dungeons.
  • Added gruesome corpse displays, giving your minions some extra luxury in their quarters.
  • Enchanted pools and magma no longer prevent you from placing regular crafting stations next to them.
  • Some Keepers and minions are now feeling the Christmas spirit over the Holidays.

Please note that some of the changes will only be visible in newly started games.

Happy Holidays and a Happy New Year everyone.

Michal and the KeeperRL team
Dec 2, 2024
KeeperRL - startplattan
  • Fixed a crash in the keeper selection menu in Bonus Mod.
Nov 28, 2024
KeeperRL - startplattan
  • Added torture table and gallows to the church faction.
  • Fixed application of bleeding and other effects to steeds, which were previously incorrectly applied to the rider.
  • Fixed tracking of who killed creatures that bled to death (or died from other debuffs).
  • Games will be saved to a temporary file first to avoid corrupting existing save files if a crash occurs during saving.
  • Permanent stackable buffs (for example from items) will stack correctly.
  • Fixed obstacle destruction in pathfinding when the target location contains an obstacle.
KeeperRL - Michal Brzozowski
I know that a lot of players have been confused by the newest mods being tagged as Alpha37, which was actually an unfortunately named tag used by the 1.0 builds. Since I don't intend to break mod compatibility from now on, I've marked all pre-1.0 mods as incompatible in the Workshop, and I've removed the tag category altogether. This means that all mods you see in the Workshop should be compatible with the most recent versions of the game.

If you run into any compatibility problems, please reach out to the mod author or myself.
Nov 8, 2024
KeeperRL - startplattan
It looks like I'm in an unlucky streak of urgent bug fixes, this time it's to stop crashing in mods that use the previously removed InferniteEffect() macro.
Nov 8, 2024
KeeperRL - startplattan
This fixes another two other issues found in 1.1.3. If you find that any other enemies are too hard or too easy to kill with recent changes, please let me know.
  • Made it possible again to cut off hydra's heads.
  • Only up to 20 body parts will count towards Necromancer's abominations health to avoid them being near invincible.
Nov 8, 2024
KeeperRL - startplattan
The previous patch caused excessive limb injuries required to kill living creatures, which this should fix. Thanks to Tooca for bringing up the issue.
Nov 7, 2024
KeeperRL - startplattan
Some more bug fixes and gameplay improvements incoming. Please note that some of them will only take effect after starting a new game.

  • Coffins will now heal body parts of sleeping undead creatures.
  • Scoring critical hits against undead will require that the target has less than 40% of health (which for undead is calculated by counting intact body parts).
  • Infernite equipment will damage creatures without fire resistance by using a visible debuff to make the negative effect more visible.
  • Added acid damage attribute to Leyak and made it fly.
  • Prevented prisoner rebellion from happening in non-player factions.
  • Fixed a crash caused by trying to load an incompatible save file.
...

Search news
Archive
2025
May   Apr   Mar   Feb   Jan  
Archives By Year
2025   2024   2023   2022   2021  
2020   2019   2018   2017   2016  
2015   2014   2013   2012   2011  
2010   2009   2008   2007   2006  
2005   2004   2003   2002