itch.io is community of indie game creators and players

Devlogs

Addlemoth Dev Update: April 2023

Addlemoth Demo
A browser game made in HTML5

Wow! It's been, uhhh, a while since I wrote one of these! My life's been incredibly busy!

My day job game for the past year has been announced; I've been working as a designer on tower defense game Defender's Quest 2! Check out the trailer!

I've also moved to a new place, which took a few months of my spare time sorting everything out instead of letting me work on the game, but that is the way it goes.

But let's talk about Addlemoth instead!

One of the new elements is statues which you can drop off Beryl at by bumping into them, where she can help in various ways. Shown here we have both a barrier statue and a combat statue. Art is extremely WIP.

The barrier statues create a wall which can only be passed through by non-magical entities, so the player can walk through but most enemies and other objects cannot pass, and the player also can't attack through. This can create some logistical problems for getting things through safely.

While the combat statues let her attack any enemy that stands next to the statue, essentially creating a chokepoint at the expense of not being able to use her elsewhere.

I'd always wanted her to have more of a role in the game than "gives you a big glowy sword", and this works out well! And don't worry, you can't leave her behind.

Friend goat NPC now has a full 8-directional set for her idle poses. She's lookin' real mystic and threatening and stuff now. Maybe.

The gargoyles had some of the oldest art remaining in the game, and I decided to remake them to newer standards. I think they look a lot better now! Only south-facing has had the idle animation drawn, though.

For the record, the only sprites which have basically remain unchanged since the earliest days of the project are the skeletons. And I'm probably keeping them as is, because I like how cute they are.


This is not the art I'm going to use. Don't worry. It's just a mockup. I promise.

Story support and integration is improving; there's now a world map for selecting chapters, which is kind of necessary given the game will have at least 18 of them when I'm done with it.

Many of the chapters are starting to see progress in terms of art, stages, and writing as well! It is starting to look like a real game now, and hopefully life will let me do the rest.

Only so much I can say about this without spoiling things I don't want to spoil, so you can theorize all you like from this kind of hilariously jank mockup!

One of the oldest pieces of code was the turn scheduler, which was logic to figure out how to display the game's events. As the game's complexity rose, it really became a persistent thorn in letting me do more.

Previously, I had a very simple and naive setup that would simply block when two actions would modify the same object at once; Consider the sequence of:

  • Enemy moves.
  • Steps on a switch.
  • Switch activates a trap.
  • Trap object attacks.
  • Another enemy is hit and defeated.

So that's a lot of steps! It could take a while to animate this, and, because the player's turns would happen on an irregular basis, it felt really bad to control. You'd push the button several times and just kind of start-stop a lot.

The new system lays out the entire timeline before it plays anything out, and then 'squashes' any stacks that don't involve the player. Since there's no player listed in the above, it squashes it down to only take as long as the player's turn does.

You can see in the above gif that some objects are moving twice in one turn, some move arbitrary distance, and it always takes the same amount of time. It honestly feels really good to play and I feel like it was worth it, even if it is a little fast sometimes.

On a side note, I don't think the big hounds will be double move, I just set that for testing purposes.

A whole bunch of minor tasks have happened, which were important but are not really all that interesting from a player's aspect.

  • I created a set of automated testing stages for every mechanic in the game. You just start them up and pass turns to watch it go through every action they can take, so we can easily test every sound and graphic without needing to set up situations manually.
  • The source asset files had become a complete mess, with arbitrary names based on whatever level of sanity I happened to have at that week, I took the time to reorganize them so you can actually find what you're looking for now.
  • Rewrote the asset packing algorithm. The old one was not built to handle the 2000+ sprites I'm cramming into a single sheet, so it was taking upwards of 30 seconds to pack. Current one does the same sheet in about half a second.
    • ... It being that fast does open the option to eventually integrate it with the game itself at some point, for mods/extensions. Pipe dream though.
  • Scripting engine has been refactored so it can run offline and better handle localization integration.
    • Previously I couldn't validate stages with scripts in them (such as 1-10), so it's nice that I can do that now, especially as more stages have scripting!
    • Localization has been abstracted out so I can use supplemental files, instead of duplicating the scripts like I did for the demo.
  • Aqueducts tileset saw the inner corners pulled outwards, because it was hard to read the layout in its previous form.
  • Switch lines now pulse their AoE, but only have a holding animation on objects they are actually affecting.

So there's been alot of 'under the hood' progress which doesn't make for great blog posts, but progress is progress. I've been very careful to keep scope in check to prevent too much derailment, it's just faster to do these things than it is to not, sometimes.

Life's been a bit topsy-turvy for a while, but it has finally started to relax a bit, and I sincerely thank all of you for continuing to keep up on things as work gets back up to speed this year.

As before, I've expanded to other social media if you would like to follow me there:

But reminder that we have a Discord too, if you'd like to talk with us there!

Thank you for your patience!

Leave a comment