I realized as I was preparing this blog post that I totally forgot to continue my newly proposed habit of posting upcoming tasks for the week last time. For reference, it would’ve been three days of enemies, one of NPCs, and one day for recording and blogging.
So I’ve been doing a lot of work on enemies recently. Most of this has been spriting, and I’ll be talking more in Wednesday’s video about some of the new sprites I’ve drawn and changes I’ve made to older sprites to bring them more in line with where this game’s art style has wound up. But I’ve also been taking a high-level look at my entire rogues gallery and trying to identify any missing pieces that I can address before it’s too late. I still have a week or two scheduled for bosses and midbosses later this month and into February, but I’m quickly approaching the cutoff for new enemy types to make it into Gunmetal Arcadia Zero.
For some time now, I’ve been wanting to implement a burrowing enemy. I sort of knew intuitively that this thing would need to be able to switch between two different states (burrowed and surfaced) and have different functionality in each state, but until this week, I hadn’t really gone through that whole process yet. I guess the next closest thing would be the biped enemy, which has different behaviors depending on whether or not it’s aware of the player, but even that one didn’t change its physical appearance and collision bounds in response to this event.
I already had most of the pieces necessary to make this work, including the option to alter collision bounds depending on the current animation, but the two things I couldn’t do were alter the entity’s idle animation and hurt animation (respectively, the one that plays by default when no other animation is playing and the one that plays when the entity takes damage). Since this state is fundamentally different enough that it wouldn’t make sense to fall back to a generic idle or hurt anim (as the player can when taking damage while crouched despite that change in posture and bounds), I finally had cause to add support for these changes.
Next, I turned my attention to wildlife. Wild animals (and wild elves, who are probably worth discussing in a later blog for their narrative importance) are docile until provoked, at which point they will attack the player just like any other enemy. You can choose to engage them or not, but they may also appear in situations in which they are likely to get caught in the crossfire between the player and Unmade monsters, potentially introducing another hazard there.
As I mentioned in a recent tweet, I gave wild elves the ability to use the same throwing knives the player can use, with impressively deadly results. This will probably require some tuning, but I’m happy that I was able to reuse content in this way and have it mostly just work.
As of the time of writing, my enemy count (not including bosses) is up to something like 22 or 23. My goal was to have at least 20, my reference points being Castlevania (14), Battle of Olympus (22), Faxanadu (30), and Zelda II (35). I’m planning to have a number of variants of each of these as well, with different palettes, names, projectiles (where applicable), health values, behavior timing, and any other sort of balance tuning I might want to tweak. For a six-level game, that feels pretty jam-packed, and it’s always possible some of these concepts might slip a bit and get pushed back to the roguelike Gunmetal Arcadia, but this should also be the sort of content that’s super fast to produce, so I’m optimistic.
Oh! Here’s a cool thing that almost slipped through the cracks between when I wrote last week’s blog and when it went live. That Saturday, I finally took a stab at a feature I’ve been wanting for as long as these games have existed: boss intros a la Ocarina of Time. These serve two purposes. First, they clearly delineate boss fights as a major event. (By contrast, midboss fights, though functionally similar in terms of locking the player in until the boss is dead, will not utilize these intros.) Second, they offer the chance for just a hint of additional narrative by virtue of describing the boss not only by its name (which will be unique, unlike normal enemies and possibly midbosses), but also by a “class” or “archetype,” as in the of the Cardamom vertical slice boss “Absolved,” whose class is “Lucid Facade.”
One of these days, I’ll probably write up some notes about how and why I’m naming enemies this way; the short version is that I love the names of the angels in Bayonetta and wanted to establish a slightly different take on a similar concept.
Upcoming tasks for the week of February 22, 2016:
- Monday: NPC/vendor sprites and behavior
- Tuesday: NPC/vendor sprites and behavior
- Wednesday: Create “Basil” boss
- Thursday: Create “Basil” midboss
- Friday: Record Ep. 28, write blog, addl. work as time allows
Somehow, GDC is only three weeks away! I’m pretty happy with where my talk is; rehearsals are consistently hitting under the 25-minute mark and I’ve smoothed out the transitions between slides, so I’m feeling pretty good about that. Depending on what my schedule looks like and whether I have any additional material to discuss, I may take that week (or the following) off from blog and video updates. In the past, I’ve made an effort to have content scheduled even when I was away from work for some time, but since I’m so far into content production at this point, I may not have anything extra that fits that bill. We’ll see.