Combat Cancelled by Eric Williams
This was originally written by our good friend Eric Williams for his blog Pushing Buttons. With his permission I've decided to start archiving a lot of these posts.
Normally I would not write this kind of article but since it is a new year and was sort of prompted by some God of War questions in the past and recently on Derek’s blog here I am. A lot of questions have always swirled around some of the attacks Kratos has in his arsenal, namely the L1+ Button special moves. The questions usually stem from the inability to “Cancel” these moves thus rendering them useless so to speak. Instead of just defending those moves I am going to examine the entire concept of move cancelling from its early days in fighting games to its cross pollination with action adventure games.
Let’s start with the grand daddy of them all Street Fighter 2: World Warrior. There is a legend that one day during early tests of this game out in California a guy named Tomo Ohira was destroying people in the game with some crazy technique where he could link certain moves together that normally could not be linked together, thus creating a combo by canceling! Ok so I was a kid in Ohio when I heard this so of course I believed it because Tomo Ohira was the best American Street Fighter player at the time. However, later I learned that this was a “bug” in the game and known by the development team in Japan but they thought it was too hard to execute to be useful so they left it in the game. Well it happens that the “bug” was the birth of the Cancel and Combo! The best example is roundhouse sweep cancel to fireball with Ryu, which I view as the catalyst for many other Street Fighter cornerstones such as zoning and footsies. So you get the point Street Fighter started it all and I just wanted to share some history so now onto how this affects action adventure games.
First let’s define a cancel just so we are all clear; a cancel is the ability to end one animation early by beginning another animation when the user manipulates of a series of branches in an animation tree through inputs on the controller, talk about clinical. Without diving into all the nuts and bolts of a combat system I am going to breakdown cancels by type and method. Cancel types fall into 2 core groups; “Partial Cancel” and “Complete Cancel”.
A “Partial Cancel” allows an animation to be canceled at specific windows during the animation. The two most common conditions for a “Partial Cancel” are pre-hit frame (the animation can be cancelled any time before the first frame of the hit) and post-hit frame (the animation can be cancelled any time after the last frame of the hit).
A “Complete Cancel” allows an animation to be cancelled at anytime during the animation. Of course I am generalizing and there are special nuances that exist in certain games but for the most part these conditions are used 99% of the time.
The methods I am going to cover are the ones that account for the bulk of all games and they are "Buffer" and "Instant".
The "Buffer" method stores and executes the user’s command when the cancel window is valid. The "Buffer" method in a well-designed game can be cancelled itself with other commands before the cancel window is valid to ensure the highest quality of responsiveness.
The "Instant" method accepts and executes the user’s command on the frame of input when the cancel window is valid. The "Instant" method allows the player to delay the timing which adds to the overall responsiveness of the game.
Now for an example: We have an animation called “Square01” that is played when we press the Square button, the animation is 60 frames long and has a hit frame window from frame 15 to frame 20. (see the pseudo combat scripting below)
Animation = Square01
On = 15;
Off = 20;
Anim = Square02; Button = Square; On = 0; Off = 21; Method = Buffer;
Anim = Square02; Button = Square; On = 21; Off = 60; Method = Instant;
Anim = Block; Button = L1; On = 0; Off = 60; Method = Instant;
What does all that mean you might be asking yourself? Notice the On/Off parameters, these are frame values and determine the range of the cancel window. The method parameter assigns the type of cancel, see the definitions above if you have forgotten already. We can now determine that “Square01” can never be cancelled Pre-hit frame with the square button since the frame range is 0-21, instead the square button can be buffered until Post-hit frame 21. We can also determine that “Square01” can be instantly cancelled at anytime Post-hit frame since the frame range is 21-60. It also says that the L1 button can cancel “Square01” instantly at anytime thus making it a Complete Cancel since the frame range is 0-60. If this made any sense at all, now imagine doing this for every possible animation a character has in their arsenal and how they relate to gameplay systems such as parry, block, counter, walk, run, jump, double jump, magic, throw, reactions, etc… To give you a little perspective, Kratos had roughly 4000 cancel branches in God of War 2 with many more parameters to be tweaked per cancel branch.
Bored yet? I promise to stop being technical right now!
What can a well-implemented cancel system add to a game? First off it usually determines if a game has that lagged out feel or is crisp and super responsive. From a defensive point of view it creates that feeling of a best offense is a great defense. The player can just bang with the enemies but guard cancel to generate new holes in the enemy’s game. Guard canceling in Soul Calibur is super fun because it has Pre-hit frame canceling only which allows the player to fake attacks creating a whole new layer of mind games. Street Fighter 3 and Marvel Series make great use of super move cancels, which looks flashy in the traditional Capcom vein while promoting heavy offensive style gameplay. Also you might note that cancels are so good in some games that they actually require meter to perform like in the Guilty Gear series. It's almost impossible to factor all the changes one type of cancel system can have on a game, one such case is CvS2 and the infamous "Roll Cancel" where certain moves can become invincible based on a cancel bug, talk about an oops. Ultimately though it comes down to fun vs. abusiveness but mostly a great cancel system equals depth and allows the player to be super creative which helps increase the fun and sense of achievement.
Here some thoughts on the top three games in the action adventure genre, in no particular order Ninja Gaiden, Devil May Cry, and God of War. Placing the game I worked on for nearly 4 years in the top three will surely drum up some interesting comments, can’t wait… this is why I do not write about the games I work on if at all possible.
Ninja Gaiden is very strict when it comes to canceling so strict in fact that not a single animation that I am aware of can be canceled Pre-hit frame. I feel this is a great rule when trying to build a solid foundation for the combat gameplay but also adds to the difficulty. The player knows when they press a button to attack it must complete its hit frame before another animation can take place. Here is a funny thing about that rule, it is so true that the player cannot even pause the game because they could swap weapons and cancel before the hit, don’t believe me try it out. The game is made to be hardcore and for the hardcore so they use rules that help establish a fair play field if the player is willing to learn the system to the point of flawless execution. I applaud Itagaki and Team Ninja for their effort and contribution to the genre!
Devil May Cry follows many of the same rules that Ninja Gaiden does but in true Capcom fashion they have to drop the style bomb all over rules and add in some broken stuff just for fun! The main cancel system that drives DMC is the alteration between Melee and Projectile attacks. I believe that all Melee attacks are all Post-hit frame cancels and the Projectile attacks are governed by the rate of fire. Since there are between 5-6 Melee and Projectile weapons the combinations create for quite the learning curve and when you add in the styles the possibilities are staggering. Depth is the result but in a much more chaotic and flashy manner then the technical presentation found in Ninja Gaiden. Nevertheless there is no doubt that DMC is an acquired taste from the dark moody art to wise cracking cocky Dante himself but when you get it, you get it and the rabid fans for this series will always let you know they get it!
God of War unlike the other two games allows for many Pre-hit frame cancels and incorporates several of the methods found in the other two games. The main difference is that it is not trying to be a hardcore game from neither a technical nor flashy point of view. It’s just smash and kill fun with some goodies tossed in under the hood for the fans of the other games that gave us a shot while they waited for the next installment of Ryu’s or Dante’s saga. The rules for canceling are all over the place but for good reason, our intended audience does not want to learn the techniques, they just want the game to play the way they think it should because combat is not the only focus unlike the other two games.
So what about the L1+Button specials and why they cannot be cancelled? The moves in question are by far the strongest damage inflicting attacks Kratos has that stem from a simple button command, they hit many creatures at once in most cases, leave the creature in a vulnerable state, or in some cases both. The moves also serve as a little flash and make beginners feel really powerful when they see the blades spinning all over the place. Like I said before the other games only have Post-hit frame canceling and use this to teach the player, watch before you attack. God of War allows almost all of the basic attacks be cancelled anywhere including Pre-hit frame to make life easier on the player. The L1+Button specials possess enormous damage potential in certain situations and thus are not able to be cancelled until Post-hit frame for balance reasons (infinite lock down loops mostly). Moreover for novice players they are used to teach the concept of risk vs. reward without placing this burden on the basic combat which would make the game much harder for the average player. I know this can be argued from many different angles with regards to balancing but trust me I have heard them all and this was the decision we made but feel free to tell me how foolish we were anyhow.
At the end of the day you have to look at your intended audience and I think we captured our audience the best we could. To those that were left upset and disappointed because of 4 little moves in the game that cannot be cancelled earlier then I am sorry you missed a much greater experience.
It’s easy to say God of War is flawed and this that and the other but the fact remains that it is the only American action adventure game to ever get the attention of the Japanese. I grew up playing their games and wanted to make a game that felt like a Japanese game but played balls out like an American movie and God of War allowed me to do that. It is not perfect but it spoke to some people and that is all we can hope for as game developers.
I know one thing for sure increasing the amount of canceling in a game decreases the possibility of the game being cancelled!
Please feel free to ask any questions in the comments and I will try to answer promptly!
p.s. God of War has some serious fun with cancels, press square once then try any of the following if you don’t believe me.
Walk (Navigation) = Post-hit frame
Jump = Pre-hit frame
Roll (Evade) = Pre-hit frame
Magic = Pre-hit frame
Throw = Pre-hit frame
Guard (Parry / Block) = Pre-hit frame
Weapon Swap = Post-hit frame