Friday, June 24, 2011

Kerkerkruip design journal #7: progress and plans

Thinking up cool things and then implementing them is of course a mode of programming that is a lot of fun. In interactive fiction, it is also generally unproductive: you have a story to tell, and "cool things" are often mere side attractions that decrease the time you have to develop the core game. Luckily, for Kerkerkruip this is not the case. The core game is simple, and adding cool things to it is exactly what I should be doing.

Of course, some thought needs to go into the kind of cool thing one develops: having several hundred weapons with different cool stuff isn't much good if the player can only fight an identical goblin over and over. (Be assured: Kerkerkruip does not have a goblin. It does not have a giant rat or an orc either, and the skeleton is a temporary standard monsters slated for removal.) And although I believe it is important and cool to have "special" situations that only occur in a small percentage of the games, it would be unwise to spend most of your coding time on such rare situations and neglect the more common ones.

In the last few days, I have made a heat system and a rust system. The former developed from the thought that it would be cool to be able to heat up weapons, having them do more damage to enemies, but at the price of weakening them -- a heated weapon has a small chance of being destroyed whenever it is used in combat. But if you can heat up weapons -- by holding them into a forge, say -- you must also think about what happens to other items when you heat them up -- some might be immediately destroyed, others might melt, others might burn... thus was born my simulation-heavy heat system. Objects can be heated, and hurt the people who carry or wear them; objects can heat up other obects in their vicinity; and so on. A huge amount of applications suggests itself; and the system ties in nicely with the materials system I had already developed in order to make the difference between iron and silver weapons. The forge that turns an iron weapon into a deadly if somewhat weakened blade will immediately melt the silver weapon.

If there is one system I truly hate seeing in an RPG, it is equipment degrading through use. Training up my "repair" skill in order to repair my weapons and armour is not my idea of fun. But equipment degrading for a specific reason, that is something different, and this is where the rust spores come in. Once the spores of this obnoxious fungus enter a room, they start rusting everything in the room that is made of iron. Worse, rust spores spread through the dungeon: every turn, there is a small chance of them spreading to any adjacent rooms. I am planning on three sources for rust spores:
  • With a very small chance, one of the rooms of the dungeon may start out containing rust spores.
  • With a small chance, an unconnected room full of rust spores is generated somewhere in the dungeon. If the player digs into this room using the magical spade (or another means of creating new tunnels) the rust spores are out. (Other unconnected rooms that are sometimes placed in the dungeon are the Hidden Treasury, which it would be good to find, and the Eternal Prison, which it would be not so good to find.)
  • With a very small chance, a closed container in the dungeon may contain rust spores. Opening the container sets them free.
So this is a feature meant to come up only in about, say, 5% of the games. Rust spores degrade weapons, but there are several things the player can do to stop this from happening -- turning them into silver, for instance, or heating them up. (At a later point, I'll probably add a way to close of passages, giving the player the ability to contain the rust spores.) And rust spores can be a boon as well as a bane: iron weapons used by monsters rust just as easily as those used by the player, and monsters made of iron... well, they won't be too happy.

I have drawn up a preliminary plan for the development of Kerkerkruip:
  • Now - first week of august: go on implementing whatever sounds cool.
  • Second week of august - last week of august: implement whatever the game needs most in order to give a complete and rounded experience.
  • September: testing.
  • September 30: upload Kerkerkruip to the IF Competition.
That's right, I'm planning to enter the IF Comp, for the first time. I find it hard to predict how the IF crowd will react to an IF/rogue-like hybrid, but, well, one doesn't need to win to make it worthwhile.

If you would like to see an alpha version of the game and perhaps give me some feedback on it, let me know at victor-lilith-cc (only those who can guess where the @ and the . go, i.e. humans, need apply!). But be warned that the game is in alpha state: there will not just be bugs but also unfinished features, no attempt at balance has as yet been made, and so on.


  1. It sounds awesome. I'd be interested in hearing more about your materials system, since I'm trying to work out mine.

  2. What do you want to do with it? The first step is to make a list of materials, and give every object a material. That is easy. All the other stuff depends on what you are going to do with it.

    Because I decided I wanted to have heat and fire, I gave every material a number called the destroying heat. For instance, the destroying heat of iron is 10, of silver 7 or 8, of leather 3, and of paper 1. (This doesn't map too neatly on actual temperatures, but it's good enough for me.) Every turn, the game checks whether any object has a heat greater than the destroying heat of its material -- if it does, the object is destroyed. The message depends on whether I have set the material as "burner" or "melter". (My system is actually a bit more complex, to allow things to burst into flame.)

    But of course, if you don't want to have heat, or if you don't want to destroy objects, you shouldn't use any of this. :)

  3. This game sounds like it will be tons of fun, and infinitely replayable. If you had more ideas, you could come out with more versions, or even release the source code under creative commons to let others add in their own monsters! I really want to play it when it's finished.

  4. I certainly hope so, and yes, more versions in the future are definitely possible. All the big roguelikes have been developed that way, I think.

    The game will be out at the end of September, when the IF Comp 2011 starts. :)