I mentioned in the last post that I'd told someone in Discord how I hope to have a demo of my game ready by the end of April, and now that it's already April 3rd I am feeling some deadline pressure :O I think I'll work on content for the first three weeks and then spend the last week on testing, bug fixes, and polish. I've been facetiously displaying version 0.0.1 in the title bar of game to this point, but once the demo is done I plan to bump that to 0.1.0! I also need to give some thought to an actual name for it...
Burn! Burn! Burn!
Since my last dev diary, I added a giant spider monster who can inject poison and also spray webs around. The webs are sticky and can prevent you from moving off a webbed location or picking up items from it. You can tear through webs by succeeding on a strength check, but I also decided to make webs burn up if they come into contact with fire. This is the first real environmental effect in my game and implementing it required some decision making about things like: if there's fire on a square, can it damage items also on the square? Ie., will scrolls and such burn up, etc? Can fire spread?
So fire will spread if there are adjacent items that are marked as flammable and/or the terrain type is flammable (more on that in a second). I quite like fire effect that I created, which is very inspired by Brogue, a popular roguelike which has a very beautiful and evocative ASCII-based look. Its visuals and user interface have been very influential.
Webs burning up
In the screenshot, the player is burning the webs by tossing a lit torch onto them, but I also added a monster called the kobold firestarter, who can shoot firebolts that can also set things on fire.
Fire can also burn trees and grass, and spread to nearby trees and grass but I didn't want one torch to burn down the entire overworld map, so I've made fire very slow to spread. This also makes me think I should one day impement weather in my game...
Save games
In a more boring update, I made save games work again! I'd got saving/loading games working fairly early on, but I since I was changing the data structures I use for items and monsters so rapidly, I gave up trying to keep that code up to date. But after doing the work for fire and such, implementing more complicated monsters who can cast spells, I thought that stuff was reasonably stable again and decided to fix up the save game code. Easter was pretty busy with family stuff but over the long weekend I had enough time to get it working once more.
This was a nice bit of housekeeping because I also found and pruned some code that had become redundant and saw a few places to make code cleaner. And I also enjoy a chance to do some janitorial work on my code.
Ready for this jelly?
A monster trope in roguelikes is a jelly (I've always assumed inpsired by D&D's ochre jellies and black puddings), a relatively weak monster with the annoying feature of splitting in two when it is hit. Yesterday I decided to make them. Each you strike them with a weapon, they divide in two (essentially I'm spawning a new jelly monster), each with half the hit points of the original. The jelly hits you for acid damage, which has no effect in game other than the HP loss at the moment. But if you are fighting one in a wide open area, things can get a bit out of hand.
When an amoeba does this, it's called binary fission
I'm using 'b' as the character for the jellies because that's what nethack uses (the b is for all blob types), although other games use J for jelly. (Nethack reserves J for jabberwockys)
I expect when I am actually playtesting the game, I'm going to hate these guys. I hate them in Brogue...
Onward!
Okay, that's what I've worked on lately! In addition to even more monsters, I want to add more items and magic to the game and have some monsters drop loot when they are killed.
Onward to Untitled Roguelike version 0.1.0!!