There was a recent set of posts I came across that made me think about Toaster Gun's gameplay:

headfallsoff's avatar
headfallsoff
@headfallsoff.com

the thing that makes doom so good is that it doesnt have a gameplay loop. it has levels.

headfallsoff's avatar
headfallsoff
@headfallsoff.com

there's never any reset to zero. everything you do in a level effects everything else. exploration, resources and combat are all one. opposed to in a modern doom game where the dynamic ammo system means you reset to zero and do a full execution of the gameplay loop several times per encounter

Internally, this has brought me to once again think about the concept of having a proper limited ammunition mechanic in Toaster Gun. After all, I really want to take a lot of design hints from Doom with how each level progresses, right down to basically copy-pasting its keycard system (though their implementation won't necessarily be 1:1 with standard Doom).

On the one hand, this would obviously bring an additional importance to the exploration side of the gameplay; having a resource to manage that could enhance your survival in upcoming combat areas would certainly be compelling. As it stands, one game that comes to mind with regards to Toaster Gun's gameplay inspirations is, of course, Gunfire Reborn, which handles a limited ammunition system decently well within a roguelike FPS game with flashy character abilities.

It's certainly a mechanic that can be linked into a number of other systems in fun and strategic ways, but there's also a number of problems that either make it a nightmare from a game design standpoint, or simply clash with other elements that I find to be more important in this game.

This isn't all a strictly negative indictment of the concept of limited ammunition in Toaster Gun, mind you; it's really an exploration of what does and does not work about it, and trying to find other systems or mechanics that could still work in favor of creating the kinds of interactions I'm looking for.

What the Hell is a Seven Six Two Round???

The first thing to determine with how a limited ammunition system functions at its ground level is, of course, what separates one form of ammo from another. It is way more important than you might think, especially for a game like Toaster Gun, which is intended to have upwards of a hundred different weapons. A good chunk of them may be less than unique, but things get complicated as you move up the rarity tiers.

The first thought that comes to mind is to lean in the mil-sim direction and try to prescribe plausible calibers to every weapon. Obviously, with so many guns in the game being at the very least loosely based off of real firearms (very often just being those guns with a funky legally-safe name that sometimes communicates their special effects), and just a handful of categories being very clearly not small-arms still being somewhat prescribable (throwing knives, grenades, energy weapons, et al.), the actual act of prescription of these ammo types is fairly doable on its surface. Unity's ScriptableObject system is very solidly capable of having a bunch of these defined at once, and I'm pretty sure I can find ways of representing each ammo type generically enough to not need to create fifty more item models on top of all the other item models I need.

In my mind, and I'm sure in the minds of many of my fellow sickos, the concept of having to scrounge around for specifically 7.62x39mm ammo for your Source Engine Missing Texture Kalashnikov, only to find a useless box of 5.56 NATO or an unusual stockpile of .444 Marlin is both funny and intriguing. See: my modded Fallout 4 playthroughs and passing interest at STALKER. If I'm making games exclusively for sickos like me, I'd totally go for it. There's plenty of ways I could go about smartifying the spawning algorithm to make the ammo a player actually wants just accessible enough to put the 'fun' in 'functional'.

However, Toaster Gun is -- and I am absolutely pained to say it -- my first commercial game project. As such, I do want to keep a lot of my systems decently accessible, and try not to complicate things too far into the minutiae of calibers and their relative economies. For example, I would be putting the burden of having to understand the difference between 7.62x39mm and 7.62x51mm on players who have probably never even played Call of Duty before, let alone handled a real steel firearm of either caliber. I already shudder inconsolably at the concept of people with poor reading skills three-cueing their way through effect texts, and can very much imagine people's eyes fuzzing over at .300 Blackout, .303 British, and .308 Winchester being right next to each other.

And yes, I hear you screaming out what must be the solution. Let's get to the other side of the coin.

Invest in HeavyCoin Now!

The example I named earlier, Gunfire Reborn, uses an abstracted categorization system for its ammunition: Normal Ammo (used for most automatic weapons), Large Ammo (used for slower-firing semi-automatic weapons, often simple sniper rifles or magnum handguns), and Special Ammo (sort of an anti-materiel category that typically runs rocket launchers and grenades, but is also often seen in a number of snipers and shotguns for some bizarre reason). This also sort of runs similar to Apex Legends, which has Light, Heavy, Shotgun, Sniper, and Energy Rounds. In fact, if you guys remember in the Old Days of CAI-TAn Channel, Gunsmith Mercenary also ran a similar system, and it probably would have worked just fine under that, too, so it's not like I've never tried it before.

Having this kind of sweeping ammo categorization generally invokes one of the big problems that have to be addressed immediately with almost any limited ammo system: economy. After all, if one gun shoots faster but does comparable DPS to a slower gun using the same ammo type, the slower gun is dealing more damage per unit of ammo than the faster gun. This discrepancy creates another dimension of weapon value that has to be balanced around.

However, in the aforementioned games, they have mechanisms in place to manage these economy issues.

  • Gunfire's paltry three types is mitigated by ammo drops being extremely plentiful and generous most of the time, with many systems and effects that can be leveraged to get ammo back mid-combat.

  • Apex Legends gets away with it by having a relatively small weapon pool that's fairly tight on each of their functions. The game also works to leverage each weapon's differing ammo economy into their own value and rarity within its loot system and nature as a battle royale game.

  • Gunsmith Mercenary was in a similar camp with its ultra-modular weapon design that let you decide what kind of ammo economy you wanted via receiver choice and modifications, as well as generous ammo reserve pools and the ability to restock at various locations for a small cost. Enemy money drops were also tuned to compensate for the cost of ammo first and foremost, by assigning each ammo type a canonical base damage value.

However, let's take things back to Toaster Gun for a second. If we want to take the Gunfire approach and make mid-combat ammo drops fairly plentiful, that sort of undermines the whole point of us considering the limited ammo system to encourage exploration in the first place. Ammo economy between weapons is certainly something that can be balanced around in the fullness of time, much like Apex Legends, but it's going to be a nightmare when the planned weapon pool is already at 102 guns and counting.

A picture of a spreadsheet containing weapons for the game. At the bottom is a counter that reads "COUNT 102".

Too many guns. Yet, somehow, not enough guns.

Small Aside: Enter the Gungeon

(I'm naming a game here, not issuing you a command. :P )

Gungeon's another game that shows up often in the long list of games to draw inspiration from for Toaster Gun (it even broke my insistence on having the controller aim be crosshair based rather than the far more ergonomic tilt-direction that most top-down shooters tend to run on controller). In it, their solution is to have each weapon have their own bespoke ammo pools tied exclusively to the weapon. However, in order to supplement this and make it functional, ammunition pickups are made completely universal and be a sort of percentage-based behavior; either they refill your currently held weapon completely, or refills all weapons by 50%, depending on the specific item. This is, of course, an unavoidable and completely logical decision; the game has over 200 guns (the wiki tells me 243, to be exact). There's nothing wrong with Gungeon's approach to ammo, but it clashes in a couple of ways with my game's vision.

Firstly, the concept of weapons in Toaster Gun are that you can make many conscious decisions to invest into their longevity through the run, while also still having the freedom to shuffle those investments around at some cost. If a weapon runs completely out of ammunition and you don't have a good way of restoring it, it becomes dead weight in your inventory. In Gungeon, this is fine; the player can carry a functionally infinite number of guns. In Toaster Gun, however, I'm very particular about the player's capacity to carry weapons, focusing on them having only two gun slots for the majority of a run; losing one gun is akin to losing an entire button in a fighting game, so to speak.

On top of that, the generalization of ammo takes away the one thing I was somewhat hoping to achieve with limited ammo, which was for it to have a dynamic effect on your pre-battle strategizing. In Doom, being low on most ammo but stumbling upon a cache of rockets makes you think about opening your next combat maximizing those rockets to blast groups of enemies or focus down a Cyberdemon with them. With Gungeon's ammo, you pretty much just save the green boxes for whichever primary weapon has the higher priority ammo economy, and have nearly no response to picking up a red box outside of "that's nice, I can worry about ammo less for a bit". Again, this is fine in Gungeon's case, but it doesn't add anything of value to Toaster Gun.

Losing an Entire Verb

In the Gungeon segment, I briefly mentioned the concept of running out of ammo in the midst of combat. If I want limited ammo as a mechanic to encourage thorough exploration of the level, I can't really have ammo drops be a dependable thing in combat. This means that it's entirely possible for a player to land themselves in a situation where they are stuck in a combat room with both/all of their weapons having zero ammo. In a lot of cases, this essentially strips the player of all capability of damaging enemies, effectively softlocking them until they die. Sure, a number of Tactical Abilities can deal damage (or can be made to deal damage via upgrades), but with the stamina system being the way it is, that's going to be tedious. I also don't want to have to consider mandating every Tactical to be damage sources, and I don't need any new verbs for the player to have when the current set of verbs are already fairly plentiful. That means I don't want to have a separate melee attack system, or have a category for ammoless melee weapons; I want the left mouse button to primarily fit the verb of "shoot" (and occasionally "throw" with Throwing weapons).

I also won't consider the common failsafe of having some static weapon slot dedicated to a sidearm with unlimited ammo, mostly because... I kind of just don't like it subjectively. It always felt vestigial and purposeless to me in ninety percent of gameplay, and the weapon itself is always (deliberately) boring. For Toaster Gun, it would also be a cumbersome thing to manage when you're cycling through your guns mid-combat. Speaking of which...

Switching is Always Faster Than Reloading

Toaster Gun has the "Holstered Reload" mechanic, where weapons automatically reload at a reduced speed while they are not being actively used. It's sort of a central mechanic to the game that's supposed to allow you to cycle your weapons in and out and try to focus on stringing together your actions to keep combat moving. I tend to describe Toaster Gun's combat system as being a "spectacle fighter with guns". (Begrudgingly, this gives it an angle of comparison to ULTRAKILL, of course)

This throws a couple of wrenches into previously discussed solutions:

  • I have to find a way to keep the Boring Infinite Ammo Gun out of the player's default rotation without having to complicate that player's control scheme; we're already low on controller real estate to begin with, and I don't want them claw-gripping to get their Boring Gun out mid-combat. Or, I guess, I myself don't want to claw-grip to get out the Boring Gun.

  • Auto-reloading weapons in your backpack brings up the question of how it effects your ammo economy without your permission. Even though I do have the option installed to set Holstered Reloads on a manual trigger, it still complicates the mid-combat resource management and bogs down the player's mental stack, especially if there are shared ammo pools involved. Granted, if you're trying to conserve a shared ammo pool on only two or three weapons... something else is definitely going on there. (That "something else" is, of course, the aforementioned Softlock City.)

Overall, this form of resource management seems to get in the way of a primary combat verb of the game embodying the core gameplay style that I am intending to build in my encounter design. At best, it's a secondary fail-state for encounters that muddies the mental stack, and at worst, it's kind of annoying and antithetical to the formal design pillars of the game's combat system.

Garfield! You had 「BURST」!

As it stands, we already have another couple of resource management systems at play in combat. In fact, one of those is already a function that is fairly limited and tends to change the strategies of upcoming combats, and that's Super Abilities and their Core Charge resource.

That being said, currently I do still want Core Charge to be earned (note the verbiage here) mid-combat, especially via the "perfect dodge" mechanic. It's a good reward for risky play that overall makes sense (and also secretly ties into the game's origins as a tribute to the old Toaster CRASH! game it shares a partial namesake with). As it's also a resource that's persistent between combat sections by default, it can also be a reward for exploration that enables you to strategically level the playing field in certain encounters.

This makes me think about other things that you tend to find with Doom's exploratory gameplay: powerups and other knick-knacks that subtly change combat in less overt ways than simply enabling or disabling a specific combat verb. While I'm against having temporary usable items a la Gungeon or Isaac (again, controller real estate is rough at the moment), having items or boons that provide small benefits that can help clear a specific combat you were considering leaving for later can shift your gameplay dynamically. I'm thinking possibly temporary increases to max Stamina or other stats, increasing the reaction time of enemies when you enter a room, or other things. Essentially, we could have Balatro's less useful one-blind Skip Tags (looking at you, Juggle Tag), but as a much more tangible reward for exploration. This has been something that I've already kind of worked into the game's "Special Events", which are sort of based on Slay the Spire's events. It's things like vending machines containing weird drinks with buffs or debuffs that last for a specific number of combats, or an anomalous piece of sheet music that lets you either carefully destroy it for a useful buff or "accidentally" read it for a terrifying curse. (Some of this stuff actually does start to read like SCP: Containment Breach events, to be honest... and I'm actually kind of interested in leaning into that in the full game.)

Conclusion

Overall, as far as limited ammunition mechanics goes, I think I've got better options for mechanics that dynamically shift combat strategy while also rewarding exploration. It's a neat concept, and it could totally work for another strategic top-down shooter roguelike that focuses more on the resource management aspect. However, when making a game, one of the hard things to do is to sit down and nail together what kind of game you are making, and commit to prototyping that game first before trying to shift it around. Toaster Gun's core elevator pitch goes something like this:

It's a roguelike top-down shooter with an emphasis on stringing together tactile gunplay and flashy character abilities to clear rooms of enemies, and an additional strong element of exploration and minor puzzle-solving to break up combat sections.

When I think of "stringing together tactile gunplay and flashy character abilities", an arbitrary resource management system that occasionally disables half of that statement seems like a burden with no clear upside within the combat itself. Sure, it's an element that would lead to a "strong element of exploration and minor puzzle-solving", but that is a vacuum that Toaster Gun does not exist in.

That all being said, it's an interesting conversation to have in order to come up with more exploration functions that can more closely coexist with the combat system in meaningful and dynamic ways beyond just something as bog-standard as finding run-defining equipment.