Week One: The Slog

<- Back Home

Bit of a mixed bag this week.

I planned this week mainly intending to do "supporting" work; building out systems that are required by the final game, but don't add "fun" on their own. I've found progressing on this kind of work to be inherently tricky in the past, since even when you accomplish a lot, you don't always have a lot to show for it. Certainly getting that feeling this week 😅, compounded with the fact that I didn't even get to everything I wanted to do.

Progress Checklist

Game State

Most important bit of supporting work was the GameState object. This basically just holds every piece of information that persists between battles. This went to plan, and now works! There's definitely a later goal of saving this to disk for save/load, but that's not on the agenda yet.

Event System

I've always been obsessed with the text-based events in FTL; they add so much to the lore of the game, and from a solo dev perspective, they're super cheap to implement.

The work I did this week was on making the tree-based choice system. This system allows me to define event text and choices in code, then lets the payer click through. It actually wraps a couple of systems within events too: spawning battles and card reward choices.

Development on this went well, but I needed to do a lot of work on the layout system (Div classes, see Week 0) to support the more complex layouts of the event choices and rewards screen. I think that work will speed me up later, but for now it was just a day and a half delay :(. (I also refactored card text to use the new layout features, which was another couple hours, for no visual changes.)

Card Rewards

Card rewards are a sub step of events, and actually came together pretty quick once the base rewards screen was done. All the sub components already existed from previous work (cards, buttons) so just putting them in place and adding a background was easy.

I didn't build the critical gameplay feature here which is generating rewards, so this also goes on the pile of supporting work with no current gameplay impact.

Equipment & Inventory

Perhaps the most experimental system I want to bring to the game is the Equipment system. I haven't played any deckbuilders that do this quite how I envision (closest is maybe Gloomhaven - which isn't a deckbuilder), but it is really common in the roguelite genre.

My vision for equipment is basically "Slay the Sprite relics" plus "D&D magic items". To give you a sense, some examples might be:

Then each character has 4 slots in which you can equip things: Hat, Armor, Weapon, and Boots.

Work on this went well, but there were a lot of parts and I ran out of time to get the the actual "management" part of the system. Right now you can have items equipped, or in your inventory, but you can't move them between the two.

Hover Information (secret dependency)

The biggest delay to equipment management was the hover information system. Unlike cards, the equipment tokens don't list what the thing does, so it's super important that when you hover over them, extra information is displayed. Cards of course want this too, but I was able to put it off prior to making equipment.

And let me tell you, making this was super annoying.

There's just a lot of critical parts:

Admittedly, I set myself up well. Div based items track their hover states, and positions; Card text knows which keywords it contains; text boxes can measure their size. But there was sill a lot of work to bring it all together, and wow was it anoying.

But, it works now! And it works on cards, too.

Up Next

The worst part about not finishing everything I wanted to is that it's going to mess up next week too. I was originally planning for next week to be a content week: just making cards, equipment, and events. But I definitely need to finish equipment management first, and probably make the overworld map as well. I might bump special event types back an extra week, to save more time for content, but we'll see.