Since my last post, I've added a fair number of new things to my game, although I'm still quite a ways away from it being an actual game...
Throwing and targetting
I added a Throw command, allowing the player to throw daggers at monsters, torches down hallways, etc, etc. I'm finding one obstacle to development is all the attendant decisions you need to make once you decide to do A Thing. For instance, with throwing stuff I needed to decide things like what happens if you toss an item onto a water square or a chasm? How should I handle that? What consequences will it have down the road. At the moment, an item that lands on a water space 'submerges' which for now means that when picking which glyph to display, a water tile gets priority over items that are at its location. (The opposite is true for most other squares) Right now, there's no way for the player to cross water spaces but I'll eventually have to decide if the player will be able to reach the items in the water or if water can be frozen and the items reached.
While typing this, I realized that a lit torch thrown onto water won't be extinguished and illuminate the nearby area so that's something I'm going to have to work on. I hadn't intended on thinking about items interacting with terrain yet but I would like to eventually to have fire burn wooden things (like the wooden bridges found in dungeons...), cold will freeze water, etc.
Here's what the targeting interface looks like
I've come up with a decent targeting interface, I think. Roguelikes seem to do one of two things: pick a direction from among the 8 cardinals and shoot in a straight line or target selection. I've gone with the latter: you can move the pointer around via the game's movement keys or hit Tab to cycle through the monsters on screen. And the game remembers your last target if there is one and auto-selects it the next time you hit the Throw command.
You'll use the same interface once I add bows to the game. That's another instance of something I have put off making decisions about: bows and ammunition. Should the player have to buy and carry around arrows that are used up when they shoot? Or do they just have unlimited arrows? The former is more ~realistic~ but is it fun? Maybe not, if you want to play an archer-type character. Also, you can't have special ammunition like exploding arrows or arrows that also teleport a monster away. What I'm leaning toward right now is you have unlimited basic arrows but can also find magic arrows. Best of both worlds?
Other additions
Among other things I've added to the game lately are:
- Enemy archers, who can shoot arrows at you from a distance. It's a bit unfair that at the moment the player doesn't have a way of shooting back but sooner or later I'll add it.
- A day/night cycle and when you are outside of a dungeon I am show the current (in-game) time. I plan to have the villagers follow schedules, so in the evenings their shops will be closed and they might gather in the pub. There could also be things that happen in game that depend on the current time.
- I also added a puppy to the town! He's a good boy who just wanders around. Again, I'm not sure what I'm going to do with it, but in the meantime yes you can pat the dog!
ofc you can pat the dog!
Magical, annoying monsters
A big thing I tackled was adding in spells. I want some monsters to have spells and special abilities so I implemented one of the earlier ones you might encounter: the kobold trickster. It can cast Entangle or Fog Cloud, or teleport a short distance away from you. This required a bunch of work under hood and there were some false starts in how I implemented stuff, but I think I have a system that will work for other spells and effects.
You can see the trickster in action in that image. He's pretty irritating right now! I don't know if that's good or bad, but when I manage to kill him it's pretty satisying. In the game's current state, the player doesn't have many options for dealing with a creature like this, but one day. I've implemented Fog Cloud as a items that obscure your vision and dissipate after a few turns. The vines summoned by Entangle are technically monsters that don't do anything other than block your path, forcing you to chop through them.
The player doesn't have any spells yet (although I did create Scrolls of Blink which do the same thing as the trickster's teleport spell). I haven't decided if I'm going to do the classic RPG thing of the player having spell points or have their spells/special powers be on cooldown timers.
I have a couple more monsters on my list to build next: goblin firestarters who shoot firebolts at you and giant spiders, who might poison you with their bite or create spider webs.
Upcoming
What's next?
Basically more content, largely in the form of more types of monsters! I'll probably need to start thinking about loot and such as well.
Someone on the roguelikedev discord channel ask me when I thought I'd have something playable, and I mentioned my Minimum Viable Dungeon notion and I suggested I wanted to reach MVD by the end of April so now I feel like I have a bit of a deadline...