Chrono Cross Mechanics Pt. 2: Hit%

      Comments Off on Chrono Cross Mechanics Pt. 2: Hit%

Almost every RPG is concerned, at some level, with random probabilities. Aside from edge cases like The Legend of Zelda (and people debate ad nauseam whether Zelda should be considered an RPG anyway), somewhere in the code of an RPG you will find formulas descended from the dice rolls of Dungeons & Dragons, determining whether an attack hits and how much damage it deals when it does. And for the most part, computer and console RPGs do the math for you as much as possible: you can look at the numbers and feel good when they get bigger, but the choices the game presents you with don’t require you to think too hard about how those numbers are actually converted into results. Probabilities are especially disguised; humans aren’t great at intuitively understanding how they work anyway, so why not keep the virtual dice out of sight?

Yasumi Matsuno likes to tell you the odds. Top left: Crimson Shroud (Image via GameRevolution) Top right: Vagrant Story (Image via Emuparadise) Bottom: Tactics Ogre: Let Us Cling Together (Image via CheatCC)

There are exceptions, of course. When I think of games that show you the chance of an attack succeeding, almost every example that comes to mind was designed by Yasumi Matsuno: Final Fantasy Tactics, Tactics Ogre, Vagrant Story, and obviously Crimson Shroud (which literally has you pretend to throw dice). In these games, when you see the word “Miss” on screen, you know exactly how likely it was, and in exchange for being potentially overwhelmed with information, you get the feeling that at least you knew the risk you were taking.

The only non-Matsuno game I can think of which requires the player to be constantly aware of probability is Chrono Cross, and it goes further by giving the player multiple probabilities with different value propositions attached to each. The following article examining how CC’s Hit% mechanic works is probably the nerdiest thing I’ve ever produced, and just as a reminder I used to write Metal Gear Solid fanfiction.

Note that most of the formula knowledge this is based on comes from an invaluable mechanics guide on Chrono Compendium.

Part 2: Hit%

The chances of each attack level succeeding take up most of the display space in the action menu.

Player characters and enemies in Chrono Cross have statistics determining their ability to hit targets (accuracy) and evade attacks (evasion), and the difference between these numbers determines a baseline Hit% – the chance that, at the beginning of a new attack chain, a Weak (level 1) attack will hit. The base Hit% for Strong (level 2) and Fierce (level 3) are independent of the attacker’s accuracy, but still affected by the target’s evasion, and each successive level of attack starts at a higher Hit% penalty.

Each time an attack successfully lands, as long as the character’s attack chain is not interrupted (by running out of stamina, defending, being hit by an enemy attack, or the player switching characters), the Hit% of all attack levels will increase, eventually maxing out at 99%. The amount of increase is greater the lower the current value is, so for instance Fierce might increase from 70% to 76% while at the same time Weak increases from 92% to 95%.

On top of that, a hit from a higher attack level will produce more of an increase in Hit%: a Strong attack is worth 3 Weak, and a Fierce is worth 7 Weak. So, it’s completely predictable how Hit% will change over the course of an attack chain – if you don’t miss – and we can plot the probability for each attack level as a function of how many Weak attack equivalents (“Hit Bonus” as I will refer to it from now on) have been accumulated. This graph is for Serge at growth level 8 fighting the Wingapede boss in Hydra Marshes:

Serge (Accuracy 85, equipped with Copper Swallow) versus Wingapede

(Note that some of these values are theoretical since it’s not possible to reach all the higher values of Hit Bonus – given a stamina cap of 7.0 not all sums of 1, 3 and 7 are possible – but really we know that once Hit% hits 99 it stays there so it may as well be filled in.)

So opening with a Weak attack seems like your best bet, right? Hold up. We’ve got a lot more math to do. The best move is determined by the expected value of each choice: how likely success is, multiplied by the amount of damage dealt on success. In Chrono Cross, the average damage dealt by each attack level follows this ratio: Weak/Strong/Fierce = 1/2.5/4. So one Fierce attack deals the equivalent of 4 Weak attacks. But wait! There’s more! The Strong and Fierce attacks have a stamina cost that is two/three times higher than Weak, so per unit of stamina, the ratios are actually Weak/Strong/Fierce = 1/1.25/1.33.

Now we can see what the most efficient move is at each level of Hit Bonus by multiplying the curves in the graph above by the damage-per-stamina ratio:

Values are normalized to the average damage of one Weak attack.

From this we can see that actually, Weak attacks are always less efficient at dealing damage than the other attacks, despite having a much better chance of hitting early in the chain. In fact a Strong attack is the better choice as an opener – though only 8% better. Fierce attacks overtake Strong at a Hit Bonus of around 4, e.g. four Weak attacks or one Weak and one Strong; however, by the time you get to the upper levels of Hit Bonus, you no longer have the stamina to perform Fierce attacks.

So now it seems Strong is the way to go. But so far we’ve only been looking at individual attacks; what’s the most efficient strategy for stringing together a chain of attacks? Could Weak attacks be a superior opener if you take into account the better chance of landing stronger attacks in the future?

All possible uses of 6 stamina, ranked by damage efficiency, and color coded by the opening move. The more Strong (2) attacks the better.

I was surprised to learn the answer is no: if you are strictly concerned with damage efficiency, Strong is the best choice almost every turn, albeit by a narrow margin. I ran a script to recursively calculate the expected value of each possible sequence of attacks, using the numbers for Serge vs. Wingapede above as input. The optimal sequence of attacks spending a total of 6 stamina is… 2-2-2, or all Strong! To my further surprise, it turns out this is the optimal sequence to follow even if the first or second hit misses – Strong is just the most efficient choice, period.

I chose 6 stamina to represent the situation where the player intends to finish their chain with an Element. If instead we have 7 stamina to spend, the best opener is still Strong, but because we have an odd number to spend, the optimal sequence depends on whether the opening hits or misses: if it hits, following with 2-3 is best; if it misses, 1-2-2. And if somehow you could be certain that the opening 2 was going to miss, 1-2-2-2 is a little bit better than 2-1-2-2, but without knowledge of hits and misses, the expected value is still better when opening with 2. The results are the same when using a different set of Hit% curves (Level 1 Serge vs. a Sand Squirt in the opening area).

Same analysis as previous, showing all the ways of using a total of 7 stamina.

Now, some mitigating factors: first, as I hinted at above, the differences are even slimmer than before. In the case of spending 6 stamina, the best sequence beginning with Strong is better than the best sequence beginning with Fierce by 6.3%, and only wins over Weak by a flimsy 1.9%. You’d have to play a LOT of Chrono Cross for that to make a meaningful impact on your success in combat – although this is exactly the kind of razor margin speedrunners seize on. Second, an enemy with a very high evasion (or a player with a very low accuracy) would cause the opening Hit% of Strong to be low enough to tilt the numbers in favor of Weak. I haven’t found a reference for the range of enemy evasion stats in the game but if there were a situation where the initial Hit% for Strong was below 70 – going by memory, I think this is rare – opening with Weak would become slightly better.

Finally – and most importantly – damage efficiency is not the only goal in this combat system! Attacks serve other purposes besides dealing damage. As discussed last time, the stamina you spend on an attack is regained (plus or minus a decimal point) by your other party members, and manipulating stamina so that another character can execute a complete 7 stamina turn is often important. On top of that, successful hits grant a resource required to use Elements, the powerful abilities that can deal much more damage than normal attacks as well as all the healing, buffs and other special things you need to deal with the many challenging boss encounters in Chrono Cross. (Tune in next time for more on this!)

So why bother with this obnoxiously theoretical analysis? It’s important to spot when a game has a dominant strategy – a choice or sequence of choices that is clearly superior to all others and should always be selected. Especially for RPGs, which are long and rely heavily on repetition, players are likely to discover the most efficient way to play and stick to it. If the advantage of exclusively using Strong attacks was much larger, it would effectively trivialize one of the primary choices you have as a player. I think we can say Chrono Cross passes that test since the margin between Weak and Strong as an opener is small enough to be outweighed by situational needs, but it would be ideal if there were enough of a range of enemy matchups that the best choice varied from battle to battle.

I hope you found this interesting! Now it’s time to do this kind of analysis on my own game so I don’t look stupid when it comes out.