Day 3: Cast A Line


This was my first basically full day that I could devote to this, and I think it was the most productive yet.

Day 3

The main focus for the day was getting spellcasting completed, end-to-end. I really wanted all the components in place to demonstrate how it was going to work. There were some unanswered game design questions which got sorted as a result.

The first step was making it so that when a spell required targeting, it would move into the targeting mode, allow you to place your spell and then activate the cast.

In the process of doing this, I stumbled on a bug in my UI framework which resulted in some lingering UI elements, until I got it sorted. You can see my frustration at it on the VOD of my livestreams yesterday. I hit it at the end of the first half and spent an hour or so trying to debug it to no avail, decided to close down the stream for some lunch, walked away from my desk and immediately realised what the problem was. Typical!

Once I had that sorted, the next thing to make sure was that the costs of spells were appropriately calculated. The engine has to parse through the spells you are casting and figure out how proficient you are with each word you’ve used. The idea is that you discover words through gameplay, and as you use them for longer, they get easier to cast, which means they cost less MP to cast. Conversely, if you haven’t discovered it naturally, but carried over the knowledge between runs, it is possible to cast, but much harder for you. (The spell lexicon is generated once per player, and then kept for all your runs, so you can choose to write down your lexicon, or remember it, and reuse that knowledge if you like, hence the need for a penalty).

Once that was in, I got to work making sure you could choose between different types of targeting. I had to expand the language parser very slightly so that you can differentiate between “close” and “far” spells, as well as single target and multi target spells, where it makes sense.

Ideally I’d design a neat system for specifying all these different rules where the words can be used, but I think for the 7DRL a lot of it is going to just be hardcoded.

Unfortunately, I’ve not heard anything from the artist I was hoping to collaborate with, so for now, we are sticking to ASCII in this style.

Next Steps

We’re about half way through the challenge, and I’m not at the point where I could publish this as a complete experience, which is a little worrying. Frequent readers will know that I try to structure my activities so that I can stop in a completed state at every point, but that hasn’t happened here.

To get there, I need to focus on three main things:

  1. More magic options. There’s only one kind of spell you can cast right now, which is pretty boring. I need to expand that out and let you have more creativity. But, for a lot of those spells to do anything I need…
  2. A more interactive environment! I want grass on the ground that you can set on fire (like rogue). I want to be able to put out fire with water. I’d like to be able to grow plants and carve tunnels, and none of that is possible right now.
  3. Spell Learning resources - There’s no way to know which words are valid for you to use, or discover more right now. We need to allow the player to discover them during play.

There’s some other things missing (cough a win condition cough) but I’d like to try and tackle these things in the next day or two.

I hope you’ve enjoyed following along so far. Don’t forget, I’m streaming a lot of my development on my twitch channel, so make sure to follow me to get notified when I go live!

See you around!

Get Arcanist's Heritage

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.