Day 4 - Mechanical Magic!


Alright! Day 4 was a really good day for the game. I am fortunate to have been able to dedicate the whole day to the 7DRL  (same for day 5), which means I could power through a lot of features and flourishes in a single day.

Day 4 Progress

Here's a few things we managed to squeeze in:

  • Combat mechanics (stats for ATK, DEF, HP). I started implementing this offscreen, using the stats class design from this article, and it actually made implementing card effects later much easier.
  • We now load the card content from a JSON config file, and this also allows us some control to specify what the cards do. We have to write a mapper between the JSON config and the "Action" object it executes when played, but so long as we do that for each action we care about, cards can do many things the player can already do!
  • I made a small tweak to how cards are drawn, so that we can change the background of the card programmatically (and this is also in the config file.)
  • Cards can apply  modifiers to stats, producing all kinds of effects.
    • The modifier is defined in config, and is very flexible.
    • "Modifiers" can last forever, or be time/turn-based. Effects can also be assigned to the "caster" or the "target" for the purposes of turn counting.
  • When played, cards which need a target will trigger a UI overlay to select targets (with mouse and keyboard options) 
  • Attacks play some amount of animation, which is better than zero feedback. This was implemented using a more generic animation system which we can use to add more visual flair to certain events.

The results make the game look something like this:

The knight's armor is too strong, but the magic of the Sword card allows us to vanquish our foe.


An alternative to getting in the enemy's face is the Thunder card, which casts a bolt of lightning at our foe

Streaming Thoughts

I spent a lot of the development time on-stream during the day. I find being on stream very productive because I have to focus on the game, because people won't want to watch me idling on social media and such.

The downside is that maintaining that level of focus is difficult and exhausting. This 7DRL has been the first time I've done a 3+ hour stream for anything, so when the thought occurred to me that I should make sure to schedule some breaks, I ran with it, breaking my day down to 2-3 hour chunks. I think the breaks definitely helped, and accidentally lined up with the finishing of different features I was working on. (It also gave me convenient times to eat meals and drink plenty, as well as walk around.) I think I'll continue that practice for the rest of the weekend.

Next Steps

The game is starting to reach the "peak" of it's implementation.  There's a few things left to do:

  • Some dialogs and UI to give info about the player, enemies, targets and other things.
  • Display a log?
  • Add a time-based resource system which you spend to perform certain actions
  • Add a progression system, where enemies can drop items to collect
  • Procedural dungeon generation!

I think if we are careful, we can actually get most of this done in the next day, leaving 2 days for content and art/polish, which is fantastic!

Find Out More

You can follow a majority of the game's development by following me on Twitter, subscribing to my twitch stream here, or catching up on my YouTube channel.

See you there!

Get Cartomancer

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.