Devlog #4: Combat Mechanics

A walk-through of the combat mechanics for Doors & Corners, a minimalist third-person shooter.

I’ve spent the last several days tuning the combat mechanics of Doors & Corners. As a “minimalist” third-person shooter, combat is the core of the game. My goal in creating Doors & Corners is to build a simple shooter that a player can easily jump into or out of as their schedule permits. To this end, I’ve attempted to take the basic gameplay loop of games like Watch Dogs and Grand Theft Auto, and strip away the non-combat mechanics.

The most notable feature of combat in Doors & Corners is that it is "one hit to kill", meaning that when a character gets shot, that’s it for them.  There are some narrow exceptions to this rule - there are some limited ways a player can make their character slightly more resilient - but as a general rule if you get shot, it's game over. The immediate impact of this is to make the game's combat very lethal.

I chose to take this approach for a couple of reasons. For one, I hate "bullet sponges". To me, there’s nothing more ridiculous than when a character runs around getting all shot up, then hides behind a barrier to recover health, and then jumps right back into the fray, good as new. I understand why games do this, but I wanted to try something different.

Action games and RPGs use combat mechanics that turn their characters into bullet sponges because it would be infuriating for players if, throughout a 40+ hour campaign, their character kept getting killed by bad luck or random bullets. Since my goal with Doors & Corners is to create a game where a successful playthrough only takes about 30 minutes, it isn’t really a big deal if the player gets ambushed going around a corner.

Doors and corners. That's where they get you.

I also chose this direction to present a challenge to the player. By making combat so deadly, it forces the player to be deliberate in how they move through the levels and engage in firefights. They can’t just run through every level, guns blazing. They need to consider how to move between cover, when to engage in a fight, when to run away, how to navigate blind spots and choke points, and so on. My goal is to make a game that players can casually pick up when they have the time, but that isn’t casual gameplay.

Since combat is so lethal, I’ve done a few things to make it more survivable. The goal is to create opportunities for player skill to make a difference. I massively slowed the speed of projectiles in the game and made them highly visible. This gives the player a realistic chance at dodging attacks. So instead of trying to manage their health, the focus for the player is on using their skill to dodge attacks.

A side effect of slowing down the projectile speed is that it makes aiming (especially aiming over any sort of distance) much more difficult. This problem is mitigated somewhat by Doors & Corners setting - it is entirely indoors and therefore mostly close range. However, it is still a tradeoff that I’m working to balance.

Another thing I’ve done to increase survivability is to create a simple cover system. To support this, each room is generated with a variable number of obstacles in it. Some of these are “half cover” obstacles that characters can shoot over and be shot over, and others are "full cover" obstacles which provide full protection.

The cover system in Doors & Corners does not use the standard “press X to snap into/out of cover” implementation frequently used by third-person games. This type of cover system works well for games that have a “bullet sponge” combat model (it allows a character to easily lock in behind cover while they recover health), but I am going for a more fluid experience. I also feel like reducing cover to a single button press eliminates the amount of skill required.

Instead, in Doors & Corners the player is responsible for managing their cover by moving towards or away from objects that would provide cover. I’ve implemented contextual behavior, so that as characters move into cover, they utilize it appropriately. For example, when a character gets close to an obstacle that provides half cover, the character will automatically raise their weapon to shoot over the cover. Similarly, when a character moves close to the edge of a wall or a corner, they will automatically extend their weapon to the side to shoot around the edge of the cover.

The cover system in action

Finally, while I wanted to strip the game of any sort of RPG elements and stick close to a minimalist approach, I still wanted to have some character progression as the player advances. To deliver this I implemented an augment system. Borrowing from the cyberpunk genre (e.g., Deus Ex, Shadowrun, Cyberpunk 2077, etc.), the augment system allows the player to add cybernetic enhancements (augments) to their character, granting them additional abilities.

For example, one augment, “Subdermal Plating”, grants the character armor which gives the character the ability to sustain one additional hit before being killed (this is the lone exception to the “one-hit-to-kill” rule). Another example is the “Integrated Reloader” augment, which reduces the time taken to reload a weapon. There is also the “Tag and Trace” augment, which tags hostile characters within the minimap/radar, making them visible at all times (instead of just when the player’s character has line-of-sight on them).

My goal with all these decisions is to create combat gameplay that requires some tactical skill to be successful, and which is fairly punishing of mistakes made by the player. At the same time, I want to require a low-level of commitment from the player to any given playthrough, so that while their mistakes are costly, this doesn’t become frustrating. Ultimately, I'm trying to build a game where the player fails often but is encouraged to make frequent reattempts.