Thursday, March 24, 2016

Hammer devlog 03

note: this has been migrated from elsewhere, and formatting may be a bit wonky

I guess now we need to talk about the rhythms of gunplay, player weapon variety, and the sorts of enemies we're going to be encountering.

The dodge is already in place, and that helps make these mechanics a lot clearer than they were before. The player has a huge degree of very safe mobility - you can cross half the screen worry-free on a whim. You can turn on a dime. And since I don't want to have the usual ending lag on successful dodges, you can keep doing that if you're good.

So this says two things right off the bat:

a) the cost of attacking - particularly powerful attacks - needs to come, in part, by forcing you to compromise that exceptional mobility. You can never dodge in a firing animation, and a lot of the more dangerous weapons actually root you in place while you fire! This forces you to think about where you're going more carefully, instead of just rolling out of the way whenever you've got something incoming and feeling safe with that strategy - spatial awareness and territory control are key. Dodging gets you around the screen real easily, but you can't just ignore room layouts. I want a game where you need to perform split-second analyses of enemy positions, firing patterns, and environmental features to find where on the screen you need to be if you want to attack right now. Watch the enemies, get a feel for how they behave, and try to find safe firing positions for the weapons in your arsenal that seem appropriate for the current scenario.

A "safe" weapon, in this context, is one that can be utilized effectively from a variety of positions at any given time. There are a lot of properties that could make a weapon safer! Shorter firing animations, spread or ricochet fire, walk-while-firing, firing through walls, burst damage as opposed to stream-of-fire - all of these have the effect of making the weapon less punishable, and since I want to encourage the player to take risks, the cost of a less punishable weapon is that it's less destructive. But even if you're good at the game, it's not always practical to use the highest-DPS tools in your arsenal at all times - the energy system makes for a nice balance here. Riskier weapons let you do more damage, but taking stupid risks then cuts the amount of energy you have for doing that damage. But, of course: there's also an inherent danger in keeping a skirmish going longer than you have to, and the relative weights of all these different factors shift from moment to moment. Spur-of-the-moment situational analysis is what makes the difference between a good, smart action game and a button masher, and it's important to make sure we preserve that.

b) there's a very specific balance that needs to be hit with the amount of hazards present on the screen at any one time. A dodge as effective as the one we're using makes more limited firing patterns a nonissue - you can always get well clear of them, and you can roll right through them. The screen needs to be busy enough that you can't just dodge wherever you want - you need a destination when you hit the button, territory that you want to control which you expect to do something useful for you. But shots that aren't a threat are also a problem! If you roll through a shot, you don't have ending lag on that roll, and you can come out of it immediately into another. A random bullet going nowhere through territory you don't want actually helps you more than it hurts you, because you can roll through that to keep yourself more mobile than you necessarily "should" be. Firing patterns need to be about putting pressure on the player, not just pretty bullet-hell fractals. If a bullet is on screen, it should present a problem. As the player, for each and every bullet on screen, you should at least be able to say "I really wish that wasn't there."

But as powerful as our dodge is, it's not without limitations even if you do get out of the ending lag, and even if you are rolling into a decent attacking position. You take a few frames to step into the roll, and you take a few frames to step out of it whether you're going to whiff or not, and you're vulnerable at each of those points. If this is going to feel fair, I have to make allowances for the timing of the i-frames - you have to be able to see an attack coming quickly enough to roll through it, and you have to have somewhere to go within the roll radius that'll be safe at least long enough for you to step out of the roll and step into another.

The design that's taking shape here is that of a shooting game that's kinda mean, one that expects a lot of the player - but that means the player will have equally high expectations of the game. When the consequences for slipping up can be as dire as they are here, and the amount of pressure you're under basically at all times within combat is as high as it is, as a player you need to feel like your failures are always your own fault. You need to be able to look at how you died and say "well, I earned that." You need to be capable of learning from your mistakes and improving, instead of simply feeling like you got fucked over by the system.

So there's a very delicate balancing act that I'm gonna have to work around here.

I think it's clear with what I know about the rhythms of gunplay here that I'm not going to get that feature to a useful place if the player only has a single gun - the versatility of your toolset is too key to the system. I'll need, then, to get this up and running with a pair of weapons that allows me to play with the risk-reward dynamic in miniature - something safe but kinda wimpy, and something lethal that demands careful attention to positioning.

I'll also need to design an enemy AI that can provide some amount of legitimate pressure, even at this early stage! It doesn't have to be pretty, or reusable, or good - but I need something that gets the appropriate game feel to come together. The goal of this prototyping phase is to work in tandem with my paper design, to help to draw a clear picture of the mechanics I'm building around - each "step" in the sequence needs to elucidate those mechanics further.