The Path of the Beam

The first thing on the schedule this week is to clean my office. Since RTX back in July, I’ve had all the boxes of materials I use at events stacked up several feet deep behind my chair to ths point that I could barely move in here. It seemed easier than playing Sokoban with my limited closet space once to put everything away, once more to get everything back out for Retropalooza, and one final time to put them all away for the year. Now that I’m done with this season of events, I’m putting all that stuff away, and throwing some of it away, as in the case of years-old Super Win flyers that I’ll never use again. My office is still more crowded than I’d like (such is the nature of trying to tackle every aspect of development from a single bedroom), but at least I can reach my bookshelves again.


The plan for October is levels. Over the next four weeks, I’ll be working on new prefab sets based on a few of the tilesets seen in Gunmetal Arcadia Zero, including the city, wilderness, and hive. This will likely involve some additional code support, as these themes may involve some new rules that the catacombs set has not.

The city is up first. This is where each session will start, and necessarily where any training and tutorialization will have to happen. I’m not yet sure how that will work in this game, whether it will be an optional leg of content that can be skipped or replayed as desired (as in Spelunky), or whether the game will look for opportunities to introduce new mechanics dynamically when a fresh save file is started (as in, uh…some popular game that did that). But those are the problems I’ll be solving over the next couple of weeks.

Year Three


It’s Retropalooza time this weekend, and it’s also my two-year blogiversary. “lolwut,” as the kids say.

As I enter Year Three of Gunmetal Arcadia development, and with roughly four months of development remaining before the February 7, 2017 launch date, I’ve been debating writing some sort of a midmortem, but I feel like I’ve already written about a dozen recaps, midmortems, and the like in the last two years. The short version would be, two years is a long time to work on a solo project. This is far and away the biggest thing I’ve ever worked on, and I’m ready for it to be done. There’s one last leg of content production standing between me and shipping, and while the past two years have put me in a pretty good position, I don’t have a shippable product yet. These next few months will make or break the game. So, no pressure.

This weekend also marks the second birthday of Super Win the Game, so it’s 50% off everywhere for the next seven days. You can buy it here or here or here. And, you should? Yes. Yes, you should. (You can also save an additional 15% if you buy the Minor Key Games Complete Collection on Steam, including the just-released Slayer Shock.)

Anyway, here’s what next week looks like:

  • Design and implement the Seeker faction boss
  • Draw sprites for both faction bosses
  • Do any additional work needed on the final final boss
  • Update builds for Retropalooza as needed
  • Get everything in shape for the content production phase

My rough schedule for the next couple of months is:

  • October: Add new level tilesets and prefabs
  • November: Add new items and features to support them
  • December: Add legacy events and features to support them
  • January: Everything else
  • February: ship it dot jpg

It’s sort of like crunch except without the long hours. It’s a soggy kind of crunch. Mmm, soggy crunch.

In-Dev Build #13

Changes since previous version:

  • Paths to non-critical rooms can now be locked or bricked off
  • Added new enemy variants
    • Eyeball that doesn’t shoot projectiles
    • Bug that spits bombs
    • Biped that “turtles” and blocks melee damage
    • Another biped variant still in progress (no change yet)
  • Brought over the final boss from Gunmetal Arcadia Zero and added a new final boss (neither appears during normal play yet)
  • Added a prototype of a faction boss (may appear in this build)
  • Added a prototype of interstitial narrative NPC rooms
  • Added session planning across multiple levels
    • Sessions are temporarily fixed at two levels long
    • Each boss and miniboss may only appear once per session
    • Background music is randomly selected per level
    • Stubs exist for choosing more features per level, including color palettes and narrative rooms
  • Added a new binding (left or right trigger by default) for a “crouch only” control that can be used at the top of ladders without descending

Notable bugs:

  • Occasionally the game will hang trying to generate a session

Mac OS X: GunArc.dmg
Linux: GunArc.tar.gz



Hey, I actually managed to get some of those enemy variants done ever. I’d like to do some new art for some of these, but I’m gonna be up against the clock trying to get any version of this game shipped, and that’s the sort of thing that may have to fall off the table.

This week, I’ll be continuing to develop the “final final” boss of Gunmetal Arcadia (a sort-of variant of the final boss from Zero, mentioned but not shown in this week’s video), as well as doing more work on plotting out entire sessions, to include choosing a number of levels, choosing bosses, background music, and color palettes from each, adding stubs for themes/tilesets once those exist, possibly placing opportunities for narrative NPC breaks, and so on. That’s one of the last missing puzzle pieces before I can start getting a real hands-on sense of the full scope of a game session.

Assuming that doesn’t take the whole week, I’d like to start prototyping some enemy behaviors for the “final final final” bosses. I think I discussed these briefly in a video sometime last year, but essentially the plan is to have some optional bosses that can show up in response to certain legacy events. These likely will be smaller in scale than the normal final bosses, but hopefully more of a technical challenge. More Mega Man than Zelda II, as it were.

(Thanks to the out-of-order nature of when I wrote this blog versus when it was posted, this last item was covered in yesterday’s stream. The archive is up on Youtube.)



So, last week didn’t go exactly as I’d planned, but I got some major (and important, and necessary) engine refactoring knocked out, so that’s nice.

This week, I’ll be returning to those enemy concepts that I’d mentioned previously. A vast majority of the enemies in Gunmetal Arcadia will be identical to those in Zero (that was, after all, the whole point of making the two separate games, so that I could frontload content production that would serve them both and defer solving level generation problems until a later time), but it would be nice to have a couple fresh challenges. I’ve also had some ideas for new bosses, and I may begin stubbing out features to support some of the things I’d like to do with them. One will be a new final boss, a variant of the one from Zero, and the other will be a final final boss, likely accessed through certain legacy event conditions. I’d also like to continue bringing existing bosses from Zero over into Gunmetal Arcadia, which may involve solving some level generation problems. The boss room and miniboss room are currently tagged in the editor such that they can only appear under those conditions, but I’ll likely need more data to associate a particular version of the boss room with a particular boss, in order to better handle the cases of bosses who require specific level architecture to function properly.

Beyond that, I’m starting to reach a point where I can play through and evaluate an entire level. (And so can you — check out last Friday’s playable build if you haven’t yet!) It’s still pretty rough, pretty far from being a shippable game, but I’m better able to parse out next steps based on play experience and not just abstract design thoughts.

Oh yeah, Retropalooza IV is coming up in just a couple weeks (October 1-2 at the Arlington Convention Center). I’ll be demoing Gunmetal Arcadia Zero this year, and I’ll have soundtrack CDs for sale as well. This will probably be the last event I do for a while (barring any yet-unknown plans for PAX South), so come check it out if you have the chance!

In-Dev Build #12

Changes since previous version:

  • Progression blockers should be fixed
  • Fullscreen behavior is consistent across all platforms
    • Borderless windowed fullscreen
    • Always at desktop resolution
    • Target resolution is simulated
    • Letterboxing/pillarboxing preserves aspect ratio
  • Fixed a Linux bug with switching from fullscreen to windowed
  • Added a splash screen on all platforms
  • Subweapons have been removed from all character loadouts
  • Item chests have been improved
    • Chests can now drop all subweapons and heart containers
    • Chests will never drop the same item twice
  • Implemented shields
    • Shields extend the health bar beyond its normal cap but cannot be refilled once lost
    • Shields can be found as loot drops and granted as legacy incentives
  • Enemy spawn points are chosen at generation time, and critical failures will prompt the room to reroll
  • Treasure is weighted properly so mimics appear only rarely
  • Heart containers no longer refill health completely
    • “Full” heart containers restore one heart
    • “Empty” heart containers increase the cap only
  • Big hearts only restore two hearts instead of a complete refill
  • Placeholder legacy effects have been upated
    • On death, start the next session with one extra shield
    • On success, start the next session with one extra heart

Notable bugs:

  • Some of the randomly selected palettes are unplayable

Mac OS X: GunArc.dmg
Linux: GunArc.tar.gz


It’s just a rough prototype at the moment, but here’s that thing I was talking about last week:

GunArc 2016-09-01 21-30-09-590

I’ll be continuing to work on this “item chest” feature this week, figuring out what exactly items in Gunmetal Arcadia will be, how the existing subweapons will fit in that context, and so on. I’d like to start dropping these as rewards for killing bosses, in place of the heart containers seen in Zero. (Presumably then heart containers will be a random spawn from these chests.) As in Isaac, I’ll probably only want to allow each type of item to be spawned once per session, with the possible exception of heart containers, so I may need to keep track of previously dropped items to exclude from future rolls or draw up a list of all drops for the entire session in advance, whichever proves most effective.

As I start implementing items, I’m going to need to parameterize more existing game systems in order to support stat upgrades for things like damage, movement speed, jump height, and so on. Some of this already exists (as in the case of items to modify jump height in Zero), but I would prefer a more formalized system for interacting with these stats. Where this sort of thing has historically gotten a little awkward is that many of the attributes I would conceivably want to modify exist in core game code that doesn’t know or care about game conceits like upgradable stats. So while the code may be equipped to handle initializing physical parameters for a variable jump height, it may not necessarily be able to do so on the fly in response to dynamic changes to that jump height during gameplay.

I’ll probably tweak the character loadouts a bit in response to subweapon changes. Currently, all four characters start with the knife subweapon; in the future, most of them will probably start with no subweapon at all, and I’ll generalize subweapons into a “usable item” feature a la Isaac. But we’ll see. I’m still sort of feeling out what’s going to work best here.

I should note that, thanks to Labor Day and my usual habit of reserving Fridays for making videos (and more recently, builds on all platforms), this is only a three-day work week, so it’s extremely unlikely I’ll get around to all of this, but if I have time, I’d like to prototype one or more of a few enemy concepts I’ve been sitting on for a while, including:

  • A humanoid/biped enemy who throws bombs.
  • A simpler variant of the Pluck/Vitriol flying eyeball that doesn’t shoot projectiles.
  • An armored golem of some sort that probably exposes a weak point periodically and maybe can always be damaged by bombs. Also probably a miniboss.
  • A humanoid/biped with a shield that can be raised or lowered. Clearly derivative of the Ironknuckle/Darknut from Zelda 2, but may require some differences in design to compensate for the player not having a shield.