Building More Complex Beat Em Up Moves

Do you think its possible to have an action beat em where can perform the complex movements of something like this? Where you perform those moves yourself unlike the batman arkham series?

Okay, so lets list off everything in that scene:

1. Pointing and shooting
Going with the obvious first, apologies

2. Climbing on walls
Games have done this before, like asscreed

3. Pulling people from below ledges
Games have also done this before, you can have a contextual prompt for it, then a canned/IK’d animation.

4. Picking someone up, carrying them around, then throwing them
It’s in Mad World for one.

5. Deflecting someone’s punch, punching them, then shoving them to the side.
There’s easier ways to do this, and harder ways to do this. The easy way is the bam ham way, where you can enter a counter state, then play a joint animation of you deflecting their punch. Harder way is using actual bodies, akin to toribash. I don’t know how you’d realistically implement that. The shoving to the side can either be a canned effect of a specific move, or a more robust system that lets you shove them in any direction you want, which is ridiculously harder to implement, would probably require first a grab animation, then pointing which way you want to throw them, similar to smash bros, then another set of animations handling which way you want to throw/shove them. Given this is a straight shove in the footage, this is basically impossible to implement robustly, you’d really need to just have a move specifically dedicated to shoving them in a specific direction that is triggered by a specific button input before the animation starts to make this work smoothly.

6. Next up, guy catches the punch, then sweeps him.
There’s sweeps just like this in God Hand and MGR. Catching the punch is similar to the above case of deflecting a punch. Doing both of these in one smooth movement, having the guy hold onto the punch as he sweeps him, this would either require crazy IK/animation blending, or the whole thing would have to be one combined animation of catching the punch and sweeping, or it’s outright impossible.

7. Guy gets tackled and pushed along, but is able to pummel the guy tackling him, forcing him to stop, then shoves him off.
Okay, this brings up something that I’m going to call, the Video Game Two-Body Problem, which is why a lot of fight scenes in movies can’t work. The most simple example of this type of problem is arm wrestling. In Real Life, when you arm wrestle, you’re directly pitting your strength against your opponent’s strength. This is an opposed efficiency race. In Martial Arts, you frequently get this type of interaction in Grappling, which has the additional problem that grappling is about counter maneuvers and specific holds in addition to this opposed efficiency race. These types of systems are really difficult to model in video games, because in most cases, there’s no direct analog to variable force applied by flexing muscles. You can’t press the button harder or softer, and even if you could, that’s not a skill test on most controllers (you seen those arm wrestling machines in arcades? There’s the exception).

Many games have interactions of this type, like Jojo’s Bizarre Adventure has both players mash buttons during stand clashes simultaneously to resolve who wins. This solution works, but it’s not very robust, and not very deep. The guy in this footage could have attempted to get footing on the ground and push back, could have tried to break the guy’s grip, but instead pummeled the guy’s back until he felt so much pain he had to stop, then takes that guy’s weight, as the guy is pushing him, and redirects it into a shove into the wall. This type of fine-grain control over a character, while force is being exerted on them, is obviously not possible in video games. You can get approximations of this joint movement overall, you could offer people caught in a bull-rush grapple the option to mash, maybe even on 1 of 3 buttons, to get different results, like pushing back, like breaking the grip, like pummeling their attacker, and those could be balanced differently, but you can’t satisfyingly model actually trying to push back at them with controllers. Control is all-or-nothing typically. You can modify what the all is, but I don’t think a realistic system of modulation between the two forces is possible here. Even in highly robust games like Toribash, this type of interaction ends up kind of, “Oh yeah, I want this muscle to push this much in this direction.” and it’s flawlessly mediated by the physics engine instead of being a messy (but deeper) interaction of people pushing and pulling with their muscles in different directions.

8. double counter into attacks
The double counter wouldn’t work unless there was specifically an animation for 2 attacks, and you built a specific counter attack animation for it, again like batman. Otherwise I don’t think there’s a smooth way to make that one flow together. If you don’t care about smoothness you could have it be a multihit parry similar to something from Furi. Actually, maybe you could build an assortment of parry animations that aren’t combined rig animations between both player and enemy that parry at different hit regions, then IK them to fit a bit closer to where the blow is actually coming in. Wouldn’t allow you to catch people’s hands like Batman can, but it would be sort of like a more specific 3s parry, or furi, or royal guard. You could maybe make it work like MGR’s parry? It could auto-detect the attack region, choose the correct parry animation, then IK the limbs to match up with where the attack is coming in from better.

You could also have a shin kick that makes the guy kneel and be vulnerable with different hit reactions to mids though.

9. multiple blocks in different regions, then neck grab, neck smash, pick up by throat and throw.
Blocks we’ve covered. Neck grab could be a move, you could have neck smash as a pummel, then pick up and throw as followups like donkey kong in smash.

10. smack the guy to the ground, axe kick
You can do this in god hand, it’s contextual of course.

11. throw a shelf over, smack guy onto table, then slam him against the table.
Throwing stuff can be contextual. Smacking the guy onto the table is the interesting part. You could have the game detect knockback direction and have a snap-to point for enemies in knockback near certain props, then allowing the table slam contextual action.

12. picks up a chair, sweeps the other guy with it, smashes him on the ground with the chair
Contextual chair attacks, contextual enemy down chair attacks.

13. multidirectional blocks, a weave dodge, mid-battle grab into a facial knee smash, a block that knocks him down, then a finisher spin kick.
Okay, so you need weave dodges on top of the blocks. The mid-battle grab into knee smash could be a hit-grab thing to work. A block specifically causing knockdown? I don’t think you can get such a diverse array of outcomes from blocks in any fluid way.

14. block kick, grab leg in process, then swing the guy into the pillar.
Blocks, easy. Something I didn’t cover was stopping the enemy’s blow mid-attack. SFV has a solution for that, you can notice with moves like ryu’s crouching HP, which stops if it hits an enemy at a certain point. This means that all the enemy attacks need similar stopped versions. Or do whatever MGR did. Or do the dark souls solution and play a bouncing off animation if the attack is blocked, like when your attack bounces off a wall in dark souls. It’s dirty, but most people won’t notice it. Of course, if you do that, then you can’t catch the leg. Implementing this means specifying which leg attacks can be caught, and implementing some means of determining that the leg is caught when blocked instead of just blocked. Maybe you get a long hitstop and pressing an extra button there grabs the leg? Then you get a contextual person swing throw animation. (the number of contextual animations here is getting ludicrous)

15. guy jumps through the air, guy grabs him and throws him into a bureau.
Anti-air grab. Plenty of street fighter characters have this type of thing, like Abel, notably. Given it’s probably rare that someone will jump at you in an action game, yet again this could be delegated to a contextual action rather than a specific attack on the character.

16. blocks a knife stab, grabs the arm used, kicks the guy, then bends the knife wielding hand back on the dude, and steals knife in the process
This is way too specific for anyone to seriously design. Sure, you could implement this, but this is passing into the realm of the ludicrously specific.

17. knife combat, grabs their hands, stabs them
It’s difficult to do this in a fluid/robust way. If you grab someone, you can’t attack someone else, at best you can get a pummel attack here, not full combat.

18. knife combat where both participants are trying to stab each other with the knifes and blocking the other guy’s wrist in the process of trying to stab the other guy.
Video Game Two Body Problem again. You can’t get satisfying rapier fencing for much the same reason, with a lot of parries and ripostes like in actual fencing. You can get clashes much like smash bros, guilty gear, or arcana hearts, but that isn’t very robust or satisfying, because in this battle, each move clearly gives advantage to one of the participants, but with video game style clashes, both participants are left at neutral advantage. Also in a single player game, you can’t realistically participate in this type of fight, because it’s very dependent on reads, and in single player games, everything has to be as slow as reaction time.

Have a GG clash video though:

I’m told Arcana Hearts has a more robust clash system that makes this type of fighting more viable, but I’m not familiar with that game. Reportedly it has clash hitboxes that are larger than the attack’s hitboxes to make clashes more reliable, and smoother.

19. throws the knife to interrupt a grab after a second person grabs the guy who is currently being grabbed, that then proceeds to pummel the second grabber
AAAAAAAAAAAAAAAAAAAAAAH. Nope. There’s so many things that are totally impossible about this. You can’t do this. It’s seriously just impossible. You’d need a system that somehow modeled being in a chokehold from behind and a bear hug in front separately and somehow was able to combine all those animations, such that either participant could arbitrarily be added or removed at any point, while they are capable of also sustaining damage and having their grab animation interrupted. This is a clusterfuck of an interaction. You’d have to be legitimately crazy to ever built a system robust enough to accommodate this.

20. tackle guy to the floor under table, then raise him up to slam head on underside of table.
I can’t see it happening. way too specific.

21. guy up against bureau, gets punched, tries to block, is pummeled out.
Okay, you could have a wallsplat animation for knockback into walls, then trigger contextual pummels up close, but having the guy fight back during the wallsplat and pummels, I don’t think that could feasibly work.

22. block and catch foot, lift guy up by foot, stomp him on face.
Another crazy contextual block animation, only way to realistically do it.

23. both guys get on the table, run at each other, one does slide kick, other roll dodges over him, sweep from the grounded slide kick
both of them being built to have animations to get onto the table is the actual tricky part here. If the player and AI are both built with the capability to jump and there’s a decent nav-mesh then this will work fine, but building contextual table climbing animations for the AI that it can correctly use? Harder. Rest of this is possible. Having a sweep kick that it does out of the slide kick animation would be a cool attack, can detect what angle the player is at and blend.

24. Both the hero and enemy do the catch grab blocks, and throw each other.
The heroes doing catch grabs is fine and cool, but enemies being able to do that, that comes off as random punishment. I’m already not so fine with enemies that randomly dodge or block your attacks. Having them able to randomly punish you for attacking with you not having a way to retaliate, that’s pretty bad. Could add a reaction test to these things to break out of their grab, and that would make it fair.

So overall, we have a lot of close range fast punches with parry blocking. Enemy and player both attack intermittently. Most attacks are avoided with blocks, a few with weave dodges, and one with a roll dodge.

Tons and tons of things are necessarily contextual because they make use of the environment, or are a counter attack or reaction to what the enemy does. There was also a huge variety of attacks and attack effects overall. Enemies attacked frequently and quickly, which reminds me of Furi’s attack chains, especially on The Edge and The Hand, as well as many attack chains in God Hand that enemies have.

God Hand lets enemies attack during attack chains faster than human reaction time by giving you the ability to mash weave dodge to have continuous upper body invincibility. This way only the starter of the attack chain, and special attacks that can hit low or full-body need to be reactable, and players are free to learn the attack chains and find holes in them without needing to know them, only recognize the startup, the first time they see them.

So the obvious design here is have a button be assigned to parry/block, have it pull off the fancy contextual directional IK blocks. Let the animations for each block be canceled by each other, and let you basically mash the button if you want to block like the fist of the north star. To prevent you from mashing block all the time though, only let it cancel into itself on success, so if you press it too early, before seeing the enemy attack, then you get punished (similar to Furi). Let it cancel freely into attack though. Then, have attacks of a different category that beats your standard block, but give you a different type of defense against them. In this case, how about the weave dodge or roll dodge? So enemies can lob reactable “guard crush” moves at you, that you need to weavedodge or roll dodge. However these dodges have recovery and startup time, which makes them not viable for dodging normal attacks. Also have an instant block that’s like 3-5 frames on the normal block that will beat guard crush moves maybe (not fond of giving players a 1 stop solution though) then give a wide, but non-reactable window of maybe 13 frames to catch the limb and do a contextual grab throw. Alternatively different moves than guard crush could have these parry points that set up for block throws to avoid the 1-stop solution problem, and give the normal attack chains some variety, and additional things for players to learn.

Okay, so then, how do you do all the various moves the characters do? You could either go the god hand route, have a repeatable customizable combo loop, or the batman route, randomized similarly functioning attacks (or the witcher route if you hate yourself, randomized, differently functioning attacks). We’re trying to have you “perform those moves yourself”, so lets say it’s like God Hand. Maybe you have 3 combo trees on 3 of the face buttons, a slow, medium, and fast one. The slow one could obviously be sluggers for big damage, big dps, the fast one could lock enemies down so they don’t have a chance to act with low DPS, and the medium one could have more pushing power for knocking enemies around.

I’m feeling inventive, so maybe to emulate god hand’s style of directional control, you could have fast free movement when you’re far from enemies, and as you get within a certain distance of them it slows down and you soft-lock onto the enemy, granting you access to directional moves. Downside: if there are multiple enemies, then shit is fucked, because the camera is free, so you have no way of specifying which direction you want to attack like you do in god hand, while still having clear directional control. (So if you want to do a towards attack at an enemy you’re not currently soft-locked onto, you don’t have a reliable way of retargetting to them, then doing a towards attack). Maybe the camera could actively switch to a tank control style when you’re close to an enemy? That would be kind of silly, but it might work. Players might hate it though. They certainly hated god hand in general for doing that.

Alternatively skip all that and just stick with tried and true DMC style lock-on.

On top of that, enemies having god hand style reactive behavior to being combo’d would be nice, like putting up a guard after a certain number of hits, repelling you if you attack too much (or doing the block throw thing on you), and then counter attacking. Also would be nice to have some super armor, like Bayonetta style, for enemies attacking out of light hitstun.

Enemies grabbing you or tackling you could be treated like God Hand QTEs, mash to get out, then you get a couple contextual actions to decide between at the point you break free, depending on the button you press. If they bull rush you, the mash could slow them down, and failing to mash could have you get pushed further. This could work like Reinhardt’s bull rush in Overwatch, except with a mash affecting the velocity, and maybe also letting you play an animation of pummeling them.

You could also have a shove attack, similar to the mirror’s edge catalyst one I guess, since that was used a bunch. And be able to contextually finish off, or pick up and throw enemies that are stunned, similar to god hand contextuals on stunned enemies, except more options, and you can’t lift or throw enemies in god hand.

I guess what I’m saying is, play God Hand?

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