Rebuilding Bam Ham Combat

How would you fix Bamham’s combat?

I don’t think you can really fix it. There’s nothing in bamham’s combat that really stands out to me as interesting or dynamic or worth keeping. You could obviously replace it with something better that is loosely themed the same, but that’s not really fixing it.

So the loose aspects of bamham’s combat are, you have attacking, and you have counters, then you have a few special actions that need to be performed before attacking certain enemies, like stunning them, jumping over them. Enemies that get hit enough get knocked down, and need to be knocked out, which takes time, but if you have a long combo chain you can do a special input that knocks them out immediately. Your combo chain builds faster if you press normal attack with good timing. Combo resets if you get hit. Occasionally you get to throw a batarang for extra damage and combo points. The attacks are built so there’s a ton of different attacking animations, but they all have sort of the same framedata. Some enemy types are slightly different, the big ones really, but otherwise the only difference is that some enemies need a button pressed before you can attack them.

This all kind of adds up to something resembling DDR. You attack with the right timing to build up combo points. You press counter when an enemy winds up an attack to avoid having your combo get broken. Then you press another button before attacking certain enemy types so you can attack them. And you have additional opportunities to press another button to get extra combo points. Like, there isn’t a strong decision-making process, the most dynamic thing is just where enemies are positioned and where you’re positioned, which is why later games added some crowd control options in the form of bombs and such. You’re kind of indirectly being prompted to just follow this sequence of button presses and you can do better or worse at that, but there’s no real trade-off between doing one thing or the other, it’s always just a matter of keeping up your button presses.

Though there’s one pattern there that kinda works I guess. You gotta take time to knock enemies out after knocking them down, but other enemies can interrupt you. So this means that knocking an enemy out in a group encounter is about crowd control. You gotta make sure none of the other enemies have access to you as you knock that enemy out. This also incidentally means that individual enemies are totally trivial. So if you wanted to spice up the bam ham combat system, this would be the dynamic to target.

Since combat is trivial with one enemy, it would also be smart to make sure setting an enemy up to be knocked out doesn’t remove an enemy from combat in the process, like disabling them currently does. One idea I had was doing something like knocking their soul out of their body, then performing the disable action on their soul, while their body is still attacking you, so even versus a single enemy, you still have to manage their access to you while knocking them out.

Obviously the whole “knocking the soul of their their body” idea doesn’t fit the batman theme unless you cook up a bunch of new story elements that don’t really fit Batman in the first place, but just examining the combat system in abstract that seems like an obvious move.

So from there the things to accentuate are the enemy behaviors in having access to you. For sake of simplicity we’ll say that if they’re set up to attack you, interrupting the knockout animation, they have a connection to you. The goal is to break their connection to you long enough to knock an enemy out, and then set up the next enemy to be knocked out. So to make this goal more interesting, you could add environmental objects and enemy behaviors that affect under what circumstances they have a connection to you. Two obvious conditions for having a connection to you are being adjacent to you, or having line of sight to you. Obvious examples of environmental objects that could modify these conditions are physical barriers that block enemy movement and line of sight, patches of floor that disable line of sight while standing on them, patches of floor that slow movement, or one-way barriers.

Then you obviously would want to give batman abilities that allow him to affect enemy positioning and movement such as to prevent them from having a connection to him. Obvious examples are ones that push enemies away, that stun enemies, or that create environmental objects like above. These could be melee, they could be ranged, they could be remote activation. Abilities that also allow him to affect the location of the target to be knocked out are also sensible.

And of course back on enemy behaviors, you might want enemies to have a connection to you based on keeping you within a certain range, like maybe a certain AOE, or within a ring that is a certain distance away from the enemy, or just simple line of sight, or maybe they use projectiles that have a more complex relationship of connection to you, or they could switch between having a connection when adjacent and a connection based on line of sight at fixed intervals or under certain conditions.

Their movement patterns could also stand to vary. The most simple is just moving directly to you. They could move slowly without line of sight and faster when they do have line of sight. They could try to maintain a specific distance from you. They could try to center themselves in an open area, moving closer when you’re in their range. They could have a movement towards you like gravity. They could move in a preset pattern across the room. They could move in a bouncing pattern off environmental objects. And of course they could switch between these behaviors based on what you do.

And by this point it really doesn’t sound like Batman anymore, but whatever, these are a bunch of ways of playing with that one dynamic.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s