Join the Madness DevBlog, September 2021 – Interrogations

This last month has had a lot of sudden starts and stops, days where I make huge progress in a matter of a few hours and weeks where I slog away in slender intervals that feel like all I’m up to tackling, slowly piecing things together. It’s contained some of the days where I’ve felt most excited, energetic, and capable, and some of the days where I’ve felt the most tired, stupid, and aimless.

To kick things off I went on a week-long trip to California. This was generally pleasant albeit somewhat stressful, but it’s also left me feeling a bit off-balance for the month – and is probably one of the reasons I fell far behind on my writing. While I was on this trip, I was able to figure out a slightly tricky game design issue: How to handle items. I talked about this a bit for the last DevBlog, about wanting to have more complex interactions than offered by most Metroidvanias – something close to a point-and-click adventure game puzzle, where item use is an action intentionally performed by the player, rather than the Dark Souls style of simply prompting you to use an item whenever you had an item that might be used. Two things needed to be changed to enable the more complex interactions I had in mind, and the more readily approachable of the two was the inventory system.

Now, I already had an inventory system, (which was actually made by another developer back when I thought this was a one month game-jam project – joke’s on me, I guess), but this inventory was only set up for equipping gear and looking at passive upgrades, since at the time that’s all I thought would be necessary. With the game design expanding there was another category of item to consider, which one would broadly call “Key Items”. Some of these are literally keys, some might be gifts you could give to a character, or perhaps a totem for use in a ritual – whatever. The important point was that it both required reworking the layout of the inventory screen, and adding new code to handle these interactions.

Well, the latter of these isn’t quite there yet, but the inventory screen is in place and the 8 slots provided should hopefully be enough to cover every key item I need for the game, especially if some replace others over time. The new layout, and underlying code, also is a little bit more flexible in terms of allowing for repositioning of items, so I may even be able to do some tricky stuff with adding extra slots as the game progresses to spring surprise items that didn’t seem to be allowed by the layout.

The other half of creating the sorts of in-depth interactions I want to have is in having a system for actually giving responses to questions other characters might ask. This might sound pretty straightforward, but was really quite a pain in the ass – a significant amount of UI work went into creating alternate dialogue layouts which included response boxes, and the dialogue system itself needed to be reworked to include options for response prompts. I ended up largely recreating the entire method of storing dialogue from scratch to enable this – each conversation is now an array of lines, which each can have its own responses, which set flags or can be conditional on the flags that have been set. It’s a bit messy just in terms of how all this stuff gets laid out in the editor, but it seems functional and flexible enough to handle whatever I throw at it. I may need to look into finding an alternate tool such as Twine for actually doing the writing, though – with all these settings I can’t actually see much of the conversation on-screen at once, much less any causal relationships it has with other conversations.

I also mentioned last week that I wanted to expand and consolidate some areas of the game world, and that was mostly what I pursued in the week immediately after returning from my trip. I added several rooms to the park area, making it larger and more distinct than a mere connection between the apartments area and the hotel area – in fact, it’s now set up to loop up and over the apartments and connect to a later-game area that I haven’t developed yet, making the world generally more interconnected, which is one of the chief draws of the genre. At first, I felt like I must be wasting my time with this rearrangement – what I had before was fine, right? But having done it I now feel very good about these edits, I think they really make the world feel more solid, expressive, and expansive than before.

It seemed at this point that the main obstacles to having this section be fully developed was just the absence of any sort of obstacle. Some obstacles, like enemies, don’t really need to be there yet – they’re just challenges to be surmounted. Obstacles like breakable walls and locked doors, though, change the path that the player must take through the world, and thus change the way that world must be designed. One of the early barriers to progress I want to set up is that of wooden barricades – impassible at first, the player must find the molotov sub-weapon to progress past them. I spent a few days developing both generic breakable walls, which the player can always destroy and which can be used to hide secrets, and then specific wooden walls which are only damaged by fire. I really like how these turned out, and with that I was able to call these areas basically finished – though not entirely, not until I actually place the molotov in the world and write the inventory code to actually make key items functional.

I eventually made the requisite changes to the music system I mentioned last month – I kind of dragged my heels on it because it really is powerfully boring work, but eventually put together a system where you could give any music track a set of transition points from which it could move on to any point in another track, with a duration to cross-fade between them. This seems to work, but I suspect I’m going to encounter bugs once I use it more. It’s fine for now, though, probably. I also created more music: This first track was actually done as of the time the last DevBlog went up, but since I wrote it in September I thought I may as well save it for this update. This is the music for the park area, and one of the reasons I wanted to expand this area – so the player isn’t stuck only hearing the first few seconds of it. I actually feel like this track turned out so well that I’m going to have a hard time being satisfied until I work the other tracks up to a commensurate level of quality.

Later on, I wrote the Fortune Teller’s theme. This is a less important track, really only playing in one room – and, while I think it’s less fun to listen to than Urban Forest, I think it’s got just the right amount of spooky character for the situation it’s meant to be used in.

This next month is going to be spent getting things ready to go – I really do feel like I’m close to having a representative vertical slice done now, but getting close always means having to tackle all of the things you’ve been putting off because they’re too intimidating. I’ve been feeling generally out of sorts over the last couple of weeks, possibly due to seasonal changes, possibly due to new meds, possibly due to just feeling lousy because sometimes you just feel lousy. Regardless, it’s been slow going, and enthusiasm tough to come by at the moment – but times like this can be useful as well, for stepping back and getting a broader view of how things are going. I can probably broadly count what still needs to be done on my fingers:

  1. Several enemies to flesh out the first few areas, probably 4 or 5
  2. A boss fight
  3. Implementation of key items
  4. Edit/Expand character conversations
  5. Graphical polish on existing rooms
  6. Map screen
  7. Save system

There’s probably a lot of little things I’m forgetting, but I don’t think anything major. A couple of those bullet points, like the save and map systems, may seem like huge tasks – and they kind of are, but they’re also things I’ve already put a significant amount of work into, and which I think I can get control of relatively quickly. Developing new enemies sounds like a lot of work, but the four existing enemies each took me about a day of work, so assuming none of the new ones end up being way more difficult that whole set may only take me a week. The biggest unknown for me, here, is a boss fight – I’ve never made one before, and I don’t know how difficult I expect it to be. In one sense it’s no different than creating a normal enemy, but there’s so much that goes into the presentation of a boss, of creating an introductory dialogue and satisfying attack patterns and suitable resolution, that I’m uncertain of. Well, I suppose I’ll find out soon enough.

If you’d like to help support this project or my writing, please consider supporting me on Patreon. Support at any level lets you read new posts one week early and adds your name to the list of supporters on the sidebar.

Leave a Reply

Your email address will not be published. Required fields are marked *