image

The AKI games contain lots of examples of clever gameplay design and we’ll see another today as we consider how Ground Strikes evolved throughout the series.

By “Ground Strike” we mean that P2 is prone and P1 is attacking them with either a standard Ground Strike (stomp, elbow drop, etc), a Dash Ground Strike or a Weapon Ground Strike.

As we’ll see, AKI (from WWF WrestleMania 2000 onwards) use a couple of techniques to attempt to achieve three different, potentially competing, goals.  Firstly, to make a game that is a somewhat realistic representation of pro-wrestling.  Secondly, to make it easy for the attacker to successfully land moves.  Thirdly, to reduce the defender’s frustration by preventing the attacker hitting moves over-and-over again while the defender is defenceless and prone.

As always, we’re using Virtual Pro Wrestling 2 when we give examples.

Note: we’ll be talking a lot about P2’s “Wakeup Timer” – for more detail on what this is, see here.

Part 1 – Helping the Strike Connect

Let’s take a Senton Splash as an example of a Ground Strike and analyse that move’s Animation Stats (sometimes known as “Toki” values):

“Wind-up” (pre-connection) Phase: Frames 0 to Frame 20 (0x14)

First Frame for Damage: Frame 21 (0x15) – P2 start’s the sell animation at this point

Last Frame for Damage: Frame 22 (0x16)

P2 Sell Animation Ends: Frame 37 (0x25)

Total frames in animation: 45 frames (0x2D)

Here’s Frame 0 (start):

Frame 21 (First Frame for Damage):

Frame 22 (Last Frame for Damage):

… and Frame 37 (P2 Selling Animation Ends):

Note: there are some cases where P1’s Ground Strike animation ends before P2’s sell animation ends.

The problem

In the example of a Senton Splash, the period from frame 0 to frame 20 is the “wind-up” (or pre-connection) phase of the Ground Strike.  During this pre-connection period, P2 is simply lying prone – and if P2 is prone, that means that their Wakeup Timer is automatically decreasing each frame (by 1 tick each frame, potentially accelerated by P2 button mashing (A/B/L/R buttons)).

If this P2 Wakeup Timer hits zero before we reach frame 21 (“First Frame for Damage”) of the Senton Splash, P2 will start their get-up animation.

This would lead to a potentially odd and unrealistic scenario.  During the normal get-up animation, P2 is invulnerable, with P1’s Ground Strike passing through them in an unrealistic way.  This is how Virtual Pro Wrestling 64, WCW vs nWo World Tour and WCW/nWo Revenge all operated.

The solution

To avoid this issue, AKI made a change in WWF WrestleMania 2000.  In this game, on the very first frame of the Ground Strike animation, the game INCREASES P2’s Wakeup Timer by a certain number of frames to greatly increase the probability that the move successfully connects.

In Virtual Pro Wrestling 2, it does this by way of Function 8013711C.

As soon as P1’s attacking move (Ground Strike) is commenced, the game looks at the attacking move’s Animation Stats to determine how long it’s going to take for the move to properly connect with P2.  It does this by looking at the Animation Stat known as “Last Frame for Damage” – this is offset 0x04 in a standard Animation Stat entry.

As we saw above, in a Senton Splash, offset 0x04 of that move’s Animation Stats is 0x16 (22 in decimal), meaning that there are 22 frames of P1 animation before the move finishes the connection with P2.

As a reminder, this is what frame 22 (0x16) looks like:

Worked Example: P2 is prone and their Wakeup Timer is at 15 frames (i.e., it will take 0.5 seconds before they start to return to their feet).  P1 commences a Senton Splash ground strike.  As it takes 22 frames for the Senton Splash, we would expect that P2 will start to return to their feet before the move can connect.  That is what would happen in games like WCW/nWo Revenge.  However, as this is VPW2, on the first frame of the Senton Splash, we increase P2’s Wakeup Timer by 22.  It is now 37 frames (15+22=37), plenty of time for the Senton Splash to connect.

Part 2 – The anti-spam mechanism

This mechanism obviously benefits P1 and keeps P2 prone for longer.  However, the game looks to quickly rebalance things such that P1 can’t continue to spam attacks.

When the Ground Strike successfully connects (on the “First Frame for Damage”), the game carries out a second calculation.  This time, the game is determining how many P1 frames of animation are still remaining.  It does this because it wants to know how quickly P1 can go back on the offensive.  We take the number of frames remaining and subtract it from 30 (the result can’t be less than zero).

We then take the result of that calculation and subtract that from P2’s Wakeup Timer, speeding up P2’s recovery.

Worked Example: Let’s continue the example above, where P2’s Wakeup Timer was increased from 15 frames to 37 frames to allow a Senton Splash to connect.

As P1 sails through the air (the pre-connection animation) for the next 20 frames, P2’s Wakeup Timer is automatically reduced from 37 to 17 (1 tick per frame).  In reality, if P2 was tapping buttons at this point, the Wakeup Timer would be reduced even further.

When we get to frame 21 (the “First Frame for Damage”), we calculate how many frames are remaining in P1’s animation.   As there are 45 total frames in the Senton Splash animation, that means there are still 24 frames remaining.  In other words, it will be 24 frames before P1 is in a position to attack again.  We subtract this (24) from 30 giving a result of 6.  Therefore, as a balancing measure, we subtract 6 from P2’s Wakeup Timer (17 minus 6 is 11). 

The quicker that P1 will finish their Ground Strike animation, the more we assist P2 (and vice versa).

Part 3 – the P2 selling / spasm animation

Of course, regardless of what subsequently happens to P2’s Wakeup Timer, if the Wakeup Timer hasn’t reached zero by the time we get to the First Frame for Damage for the Ground Strike, we know that the move has successfully connected.

At this point, P2 moves into a different animation: a spasm/sell animation.  This also triggers a change in status (sometimes known as “Broad Action”).

In this new status / Broad Action (“Receiving Ground Strike”), P2’s Wakeup Timer is frozen and does not decrease during the 16 (0x10) frames of that animation.

However, when P2’s spasm/sell animation completes, Function 800F71E4 runs.  This Function re-balances the Wakeup Timer by subtracting 15 (0x0F) frames.

Worked Example: let’s continue the Senton Splash example from earlier.  At the point of connection (Frame 21), the Wakeup Timer was reduced to 11.

P2 now enters the spasm/sell animation and for the next 16 frames (while the animation plays), there is no reduction in P2’s Wakeup Timer.

However, when the animation ends (screenshot below), we subtract 15 from P2’s Wakeup Timer.  In the case, as P2’s Wakeup Timer was at 11, this reduces the Wakeup Timer to -4, and so P2 immediately starts to get up (before P1 can launch another attack).

Gameplay Notes

There are other ways this ‘problem’ could have been tackled.  For example, AKI could have made P2 vulnerable during the get-up animation.  If that was the case, even if the Wakeup Timer expired before the move connected, it would still connect and damage P2 as they were getting back to their feet.

You sometimes see that mechanism in other wrestling and fighting games.  However, it can not only look unrealistic (with P2 jumping back into a sell animation to leave them prone again), but can also be frustrating for the player on the receiving end of a prolonged beatdown.  I think AKI’s solution strikes a nice balance.

Summary

  1. When P1 starts Ground Strike, P2’s Wakeup Timer is increased to give enough time for the Ground Strike to connect
  2. At the point of impact, P2 should benefit from a reduction in their Wakeup Timer (somewhere between 0 and 30 frames).  This is an anti-spam mechanism that benefits P2 more if P1 can quickly launch a follow-up attack
  3. While P2 is spasming from the Ground Strike, the Wakeup Timer’s normal countdown is paused while this animation plays.  This is then compensated for at the end of the animation (this happened in the earlier AKI games too).