Dodge of War

Iteration

Free form vs. Contextual

Dodge Distance & Double Dodging

Animation Fidelity & Redirection

Invincibility Frames

Evade Attacks

Dodge Combo Partitioning & Move Canceling

To Jump or Not to Jump...









Still -- "Why the $$$$ did I let them convince me to get rid of jump???" - was said on more than one occasion. It was also said for a lot longer and a lot closer to ship than anyone was probably comfortable with.





Inspired by Polygon's recent video on dodging in God of War, I thought it might be cool to add some development process insights on the topic, as well as call out some of the more hidden and nuanced ideas behind the dodge mechanic itself.https://www.polygon.com/videos/2019/1/16/18185656/god-of-war-kratos-dodge-rolls-historyDefinitely check their video out. Even though they strangely attribute the inspiration for God of War's dodge updates to... monster hunter (???) - it was cool seeing a some commentary on the history of dodging in action games and how God of War compares.Designing and building the dodge is a perfect example of how the quality of a gameplay mechanic will correlate directly to the amount of time the team had to stumble onto the best solutions (Although, "iterating," is definitely the safer and more producer-calming term to use).More often than not, when it comes to fine tuning gameplay and combat mechanics, you can't simply throw more resources at an issue in order to speed up development. There is no substitute for being able to quickly get something in, let the idea breath a little, get feedback, argue, and then repeat (but mostly argue).Also, funnily enough, when we started the multi-year long iteration process on dodge, the mechanic could not have been more different than what we shipped with.With the change in camera perspective being one of the non-negotiable changes to the combat system from the very get-go, our original thinking was to scrap the idea of a free form command dodge altogether and replace it with a completely contextual, "Combat Reflexes," button instead. The mechanic was intended to function as an always aesthetically appropriate, contextually sensitive defensive maneuver that could resemble a dodge if needed -- or not. The high level goal was to create a defensive response to enemy attacks that was extremely simple at the input and timing execution level, but was able to visually support a huge number of aesthetically varied responses. There would likely have been several different dodge or roll animations included as potential responses, but triggering them would have been entirely dependent on the look of the enemy attack.I can't tell for certain, but it looks as if Last of Us 2 might be doing something along those lines -- an extremely high fidelity animation response that is as close to custom tailored as possible (potentially just paired/synchronized per attack). Regardless, whatever it is, it looks pretty awesome so far!Insomniac's Spider-Man also cleverly uses a hybrid-like system in which the dodge has a default function of burst motion with a forward evade, but will contextually change based on an incoming attack or scenario.Anyway -- after getting somebasic combat mechanics up and running, one of the first consistent pieces of feedback we were both getting and feeling ourselves was that Kratos didn't feel like he had retained enough agency and control over his mobility in combat. Without enough ways to control and manipulate yourspace in a responsive and satisfying way, the combat was feeling too restrictive and claustrophobic.Between the removal of jump, the change to a "tank controls" style navigational model and the reduction of animation translation in combat attacks, the need for some type of simple burst motion all of a sudden seemed like an immediate no brainer addition that would help soften the impact of the aforementioned changes.The eight plus meters of translation baked into Kratos's original dodge roll seemed pretty extreme when we initially went back to it for reference. But for the original games, Kratos's dodge distance makes perfect sense as soon as you consider all of the elements that go into a decision like that: camera framing, standard arena size, enemy attack data (speed, shape, translation amount), and of course, the hero's attacking data (e.g., whether or not your hero has weapons that can conveniently bend and extend as needed).So using a similar thought process, our first instinct was to create an extremely short distance evade that would still meet the criteria of burst motion without being unwieldy given the ultra close camera perspective. But it didn't take very long to realize a short evade distance was way more divisive than we expected. It was pretty close to a 50/50 split with a good chunk of the opposition being...for lack of a better term.Half the team was adamant that the dodgeto be a side step that kept Kratos in perfect follow-up attack distance. Not only was it more functional as an offensive & defensive tool, there was a compelling argument to be made that evading an attack with the immediate goal of retaliation was tonally more appropriate for Kratos's character than the idea of escaping. There was even some argument over whether or not Kratos wouldchoose to back away from a fight.On the other hand, half of the team immediately felt that the short dodge was functionally useless. What good was a dodge that positioned you right in front of an enemy attack?Even with several invincibility frames and an ultra fast cancel window back to combat or navigation, players having no way to clearly vacate the premises when they felt overwhelmed or outmatched was a deal breaker.The combined feedback quickly lead us to the idea of breaking up the dodge roll into two parts in an attempt to satiate both groups with the same mechanic. I remember our only real worry was the potential complexity of an additional button press. Worst case scenario -- we'd be making the safer and more accessible of the two dodges the more difficult ability to use.And I'm not sure why we didn't realize it at the time, because it seems so obvious now, but our worry about added complexity vanished pretty quickly when we realized that regardless of player skill or dodge preference, mashing the evade button when trying to use the escape-to-safety ability was already the preferred method of input!As with most things involving animation in God of War -- aof attention and effort went into getting the feel of the animations just right.The side step and roll were entirely redone - reshot and re-animated - probably three or four times before we honed in on the exact look and feel.A lot of time was spent making sure each every direction looked good. It was crucial to support 360 degrees of stick deflect based rotation. This allowed us to maintain max player usability and control without sacrificing visuals.Another huge benefit of iterating over a long period of time is that we slowly but surely made more and more spot-fix usability and polish improvements. In addition to a very slight buffer on the side step before transitioning into the roll, we also allowed the player to freely redirect the roll in any direction after the side step.While admittedly the physics of that are... questionable, there was no question as to how much more responsive it is being able to delay the dash, maximize the distance in one direction, and then roll in an entirely different direction. It allowed for some pretty nuanced battlefield burst navigation.Even though I still maintain that defaulting tois the action game dodge standard... there was quite a bit of debate about what evading without stick deflection would do. For a long time we had forward as the default option... then we moved to backward after enough fat-fingered presses lead to evading directly into an enemy attack.But in the end we actually ended up going withas the response to a non-deflected button press. While admittedly this wasn't my personal preference, we did end up implementing some pretty nuanced behind the scenes assistance to catch a the major issues we ran into. For example, it was surprisingly common for the evade to fail when players would mash a stick direction andpush circle without necessarily still holding a direction.We ended up buffering any stick deflection several frames before a press in order to catch that occurrence. The neutral restriction was also relaxed for the dodge roll follow up, as we would use your previous direction as the stick deflection (for a while the second roll would default to backwards -- which also ended up feeling weird).Ensuring the effectiveness of a well timed evade by making the first few frames pure invincibility (often referred to as i-frames) is, and has been for a while, a fairly common tactic in action games. In God of War, both the initial dash and follow up roll have invulnerability frames. And for the dash in particular, the I-frames are used to help determine when a, "just," or, "perfect," evade has been performed. Similar in implementation-execution to a parry -- dodgingbefore the moment of impact such that the hit *technically* would have still landed is how we determine when perks or other types buffs should be triggered.But again, because of the camera perspective and tone of the game, using pure invulnerability didn't quite work as cleanly as it has in the past. Despite acknowledging its obvious benefit to players, it was the idea of evadingcertain attacks that just didn't sit quite right. Fortunately one of the benefits of havingto work on a mechanic is that you can sit around and debate the issue, mess around with various proposals, and in the end we ended up honing in on a pretty specific and straightforward exception to the invulnerability concept. Essentially, if you evadeinto an incoming attack (within a fairly precise deflection angle), the invulnerability frames are entirely negated.The method ended up functioning surprisingly well because it wasn't some kind of mechanical complexity that we had to teach players or even point out at all. It was just sort of... there. It subtly reinforced the idea of dodging away from an attack in a way that aligns naturally with player expectations anyway. It allowed us to benefit from the huge usability boost you get for using I frames without having to compromise on a side effect of pure invulnerability that not only tonally felt weird, but looked exceptionally sloppy and awkward given our new camera perspective.Invincibility frames is one of the many mechanics in games that function better and are received better when they arenoticeable. Our subtle adjustment is one of the reasons I think the mechanic ended up sliding smoothly under the radar.A core goal of the combat system was to make sure that we never added attacks/moves just for the sake ofmore moves. Action games that have large move-sets simply for the sake of quantity usually end up suffering from player exhaustion and a general player response of, "all the moves seem the same," and, "I don't know why I would do one move over another."Having a command dodge opened up the opportunity to squeeze in a few more attacks with a functional purpose. The backwards evade attack was a personal favorite because it afforded us another excuse to integrate signature Axe throwing into the melee combat.The forward evading Axe attack ended up being surprisingly tricky to get right because it was overlapping, and thus potentially interfering with, a common play style choice of utilizing forward dodge + light attack as a quick manual opener on an enemy. If an evade (or sprint, for example) attack becomes too long or does somethingdifferentto the basic attack it is superseding, some players can become annoyed enough to refuse purchasing the skill altogether (After quite a bit of iteration, some of our solutions included fine tuning the input window required to trigger an evade forward attack over the basic light attack by landing on a fairly conservative deflection angle on the stick. Additionally the attack kept the enemy reaction within the same basic tier -- but a slight increase in its impact allowed it to pierce through enemy move armor more effectively than a standard light attack. Making it a double hit also increased its chance to trigger any type of, "on hit," perks, as well as apply twice the frost damage or momentum (Permafrost / Immolation) boost. And to top it off, keeping the initial hit frame within one to two frames of the basic light attack meant it suffered little to no timing penalty. Essentially, the forward attack was justbetter all around than the standard light attack. The goal was to make its effectiveness commensurate to the fact that it really only required one additional input and a little bit of foresight.And admittedly, as sloppy as it may sound, once we decided to go down the route of making the evade attacks easier to pull off control wise than, for example, requiring more precise stick deflection or timing, we had to get to a place where we were comfortable with the idea that players were simply going to use them on accident. In that case (fully admitting my argument could be considered on the more flimsy side) my feeling is that the moves simply just need to look and feel awesome enough for players not to care when they accidentally happen.Separating the dodge into two maneuvers also allowed us to sneak in a few nuanced mechanics into the combat system that we'd hope would add depth without negatively affecting accessibility.The idea is that evade canceling any attack during a basic combo chain attack will effectively store your place in the combo. Then, attacking within a brief period after asingle dodge will resume your place in the combo. This makes getting to finishers/the end of a combo a lot easier when dealing with enemies that were not easily juggled, enemies armored against light/early combo attacks, or just a decently sized group of enemies consistently attacking.Overall I think we were pretty happy with the resulting functionality, but to be honest, in hindsight we ended up making the input execution of this mechanic a bit more difficult than we would have ideally wanted. In order to actually get the stored attack andan evade attack, we essentially required players to let off the left analog stick (or more specifically, not 90 degrees forward or backwards).And unfortunately, the thing that made this even more regretfully sloppy is that the directional evade attacks were purchased/unlocked skills that couldbe turned off. This means that players can get used to playing with combo partitioning functioning in a reliably generous manner, only to have the mechanic become more finicky and difficult to use after a seemingly unrelated skill tree purchase. Yikes =( Next time.We were also very careful to maintain the idea of freely canceling attack moves in order to make the gameplay as responsive as possible. It was a concept that original God of War game kind of pioneered in terms of western action game design (at least in comparison to some of its larger Japanese counterparts). It's one of the key reasons that the original God of War's combat system is more accessible than Devil May Cry or Ninja Gaiden.------------------------------------------------------------------------------------------And lastly, considering how controversial and divisive it was internally, the fact that Polygon casually mentions the removal of jump and double jump as negligible due to dodge is pretty remarkable. And while I'm not sure what percentage of players agree entirely with Polygon's take, it does seem like the removal of jump went about as smoothly as it possibly could have (especially considering what an unpopular change it was internally!).Nixing jump was actually one of thefirst decisions made on the project. Jump was gone before Norse mythology was even in.There were two driving forces behind the desire to get rid of jump -- one from a combat mechanics perspective and the other from a navigational/level design point of view. Ultimately however, they both came down to the same basic concern: tone.It's not that there was anything inherently wrong with the traditional platforming elements that jump facilitated, it was that the mechanics and style feltIt was just something about the feel and tone of, "jump deaths," that didn't quite fit with the goal of renovating God of War's gameplay and making it feel mature or fresh. It felt...And similarly, the worry from a combat perspective was that stepping too far into the realm of aerial combat would contrast too heavily with the high level goal of a new tone. Not to mention, aerial combat is a huge time sink from an animation, physics, targeting, AI, scripting and level mark up perspective. In a melee action game especially, air to air melee combat can literally affect everything.Fortunately, we managed to find a way to manage the no-jump decry, and compromise on the tonal concerns of old school air combat. Thanks in large part to Jason Mcdonald's steadfast refusal to work on a combat game that didn't support air juggling, we were pushed into figuring out a compromise.We eventually came to terms with the conceit of Kratos remaining stylistically and physically grounded and instead doubled down on the enemies air-potential. Ultimately, a big chunk of the combat system overhaul was essentially re-imagining and (for lack of a better term)old-school style air combat mechanics like launching, air juggling, bouncing, and OTG reactions.