Alternate systems of accuracy/evasion without using RNG

● ARCHIVED · READ-ONLY
Started by jonthefox 17 posts View original ↗
  1. The scenario: So you're making a jRPG. You want your enemies to feel different based on what their identity is.

    One enemy is huge and strong and when he hits you, he hits *hard.* But he's slow, and characters with good agility/evasion should be able to avoid his attacks without a problem.

    Another enemy is quick and deadly, he will cut you down regardless of your agility/evasion. However, his attacks have a hard time penetrating a character that's wearing a lot of armor.

    The problem:

    It's possible to use the default mechanics for this, where armor is represented by DEF, and the big strong enemy has much higher ATK than the fast enemy, but that his accuracy is low - so he'll miss a lot, especially against characters with good agility/evasion. This is exactly what you wanted. Except this doesn't feel like good game design. Why? Because the player has no control whether the big strong enemy's devastating blows will actually hit or not. The result of the battle will feel very skewed in the favor of luck and RNG, and the player will feel cheated if he loses, and like he didn't earn the victory through skillful play if he wins. This is why I don't like RNG, and prefer to keep accuracy and evasion at 100% and 0% by default.

    So, given this, how does one design these two types of enemies? What are some other systems of accuracy and evasion that could represent these two fairly generic but ultimately satisfying enemy archetypes?
  2. Keep accuracy at 100%, give the characters a skill that reduces evasion to 0%. Give the characters more multi-hit attacks as well (then part of it is likely to hit). Alternatively make the enemies evasion temporary via a state or something. Both of these DO use RNG, but personally I don't think RNG is such a huge problem when used properly.

    If I were to propose an RNGless solution it'd just to make the fast enemy get 100% evasion temporarily, at which point you'd have to use magic to hit them. As for the big strong enemy...make them tankier, but have them attack every other turn or something. Yanfly's barrier can be used to represent something similar to Starfinders stamina points, the fast guy can have barrier penetration but lower damage (so that means that they'll be more dangerous when your barrier is up) which represents that they are precise and accurate, and the big guy can do more damage in general but lack barrier penetration, but when he hits you without barrier, he'll clobber you.
  3. Since your question is "specifically" mention about accuracy of getting hits / misses, one that come up on my mind is implementing "timed hit". So it will be semi-action gameplay where "player's skill" also matter in turn-based type of battle. Except if it will be present to all characters, basically all characters are agile.

    As for presenting a bulky tank enemy with lotsa destructive power, you can make a mechanic where you have an extra visible interface alongside with health bar (if you have any) named "charge bar" or rather "charge diamond" (thanks to Granblue for this idea). This charge diamond represent special attack. Say an enemy has 2 diamonds, means if 2 turn has passed, the 3rd turn, an enemy will unleash a special attack (if you however not fond of extra UI, you can always make a visible turn counter and make your player to remember the enemy pattern). A one destructive skill and it's guaranteed hit (100% hit rate) unless you managed to tank / evade it. You will be mitigating this with whatever your defensive skill. It could be smoke screen that will make 100% evasion rate for all party member so it will be missed, or create a barrier just for that.

    As for presenting agile enemy, it depends on how turn system you're using. If you're using free turn battle, you could give this particular enemy an extra action so they will be act twice. If ATB, make the charge bar fills faster. If CTB (Card Turn Battle?) make the enemy after its turn to take the starting slot rather slightly in advance. If default turn, you know how. It just simply present it as they will take advantage of action first rather than it's hard to get hit.
  4. A majority of games (non-RPGs, action RPGs, etc.) represent this by letting combatants move around physically, of course - the slower battler will land hits less frequently but might deal massive damage when they do, whereas the faster battler can evade those attacks, move around to land more hits, and so on.

    In a turn-based RPG (especially one with an ATB or CTB system), I feel like the best general way to abstract this idea of accuracy and evasion is through Agility and the number of turns a battler gets. You can have slow battlers that hit hard and fast battlers that pepper in lots of actions with less effectiveness from each individual action. It still creates the interesting dichotomy between slow goliaths and weak speedsters, and it's essentially the same thing as giving the two battlers an equal number of turns but giving one high evasion/accuracy rates and the other low rates - yet you avoid the RNG and the swinginess entirely. If you don't have an ATB/CTB system, you could still partially achieve this effect by having "slow but powerful" enemies use skills that require a turn or two to charge up.
  5. There's always the Final Fantasy 4 approach to evasion, which I think is a great way to use evasion without making it feel like an annoying hit or miss with every attack:

    When characters attack, they internally attack several different times. For example, the x7 value on the character sheet means their damage is calculated 7 times. These attacks are then totaled up to determine how much damage the attack inflicted. Against a dodgy foe, you're likely to miss maybe 3-5 times, making for much lower (and often varied) damage with full misses happening rarely rather than all the time.

    Without consigning evasion to Blink-like abilities ("avoid the next 2 or so attacks," or "avoid all attacks for 1 round") there really isn't any way to have proper evasion without RNG of some kind.
  6. I feel like for games that doesn't allow movement in battle, the evasion and accuracy thingy is a bit hard to separate from using some degree of randomness.

    I do like wave's suggestion of a semi-action mechanic. Maybe implement it like you need to time button press to hit and also to evade. Then the time allowed for you to press is dependent on the hit rate and evasion. So higher hit rate of user increases time allowed, while higher evasion of target decreases the time. The downside though is that players on the two extremes (very fast eyes and fingers, and those who are slow) would be greatly advantaged/disadvantaged
  7. Thanks for the replies so far everyone. I definitely don't want to use the timed-attack option, because to me that just completely changes the nature of a turn-based battle system.

    Having the slow-but-strong enemy only attack once per turn or every other turn isn't quite what I want, because I want agile character types to be resilient to his attacks (because they can dodge them), but slower characters to be completely devastated by them. I suppose using the charge-up mechanic can accomplish this, and agile characters can use evasive-skills when the enemy is about to attack. This does feel a little one-dimensional though.

    One thing I thought of is to have the slow-but-strong enemy have really high attack, but include in its damage formula the target's agility as a form of mitigation - because the idea is to have really powerful attacks, but which agile/evasive characters are resilient to, without relying on RNG. I'm not sure if this would be too confusing to the player though, since they're not accustomed to agility being used for this purpose, but it's a mechanic I could potentially introduce early on in the game - that some enemies with slow-but-strong attacks have their damage reduced by your agility stat.
  8. In that case, you could just make the enemy damage calculations incorporate agility instead of defence? So, higher agility would take less damage.
  9. yeah that could work.. though it kinda feels weird when agility reduces my damage taken.
  10. I solve the problem you have mentioned above by using these 2 things -
    1> HP Regeneration - Slow Heal that will ensure it makes it easy to Survive
    2> Curse Mechanic - Some kind of Mechanic that weakens the enemies temporarily for few turns with a % Chance of Trigger. For warriors it may be Stun to interrupt Continuous Damage. For Mages it can be 35% Damage reduction Curse, For Rogues it maybe Blind which makes Enemies miss even more).

    An Example of how it works when you incorporate all these elements :

    Player : 100 HP (Has 5 HP Regeneration every Turn)
    Ogre : 500 HP

    Player : Deals 75 Damage
    Ogre : Does a 20 Damage
    Player : *Stuns Ogre* & Deals 75 Damage
    Ogre : *Stunned for 2 Turns*
    Player : Deals 75 Damage
    Player : Deals 75 Damage
    Ogre : Deals 50 Damage

    At this point the Player would have been close to dying after taking 70 Damage out of 100 HP, But wait you forgot the 5 HP Regen every turn !!! While the Ogre was stunned, Player has already recovered Half of all the Damage dealt to him. So at this point, Accuracy or no Accuracy doesn't matter.
  11. jonthefox said:
    Thanks for the replies so far everyone. I definitely don't want to use the timed-attack option, because to me that just completely changes the nature of a turn-based battle system.

    Having the slow-but-strong enemy only attack once per turn or every other turn isn't quite what I want, because I want agile character types to be resilient to his attacks (because they can dodge them), but slower characters to be completely devastated by them. I suppose using the charge-up mechanic can accomplish this, and agile characters can use evasive-skills when the enemy is about to attack. This does feel a little one-dimensional though.

    One thing I thought of is to have the slow-but-strong enemy have really high attack, but include in its damage formula the target's agility as a form of mitigation - because the idea is to have really powerful attacks, but which agile/evasive characters are resilient to, without relying on RNG. I'm not sure if this would be too confusing to the player though, since they're not accustomed to agility being used for this purpose, but it's a mechanic I could potentially introduce early on in the game - that some enemies with slow-but-strong attacks have their damage reduced by your agility stat.

    I agree with the potential downsides you bring up relating to these different approaches, including the ones that I suggested.

    With that being said, if you introduce Agility into the damage formula that way, aren't you just turning AGI into a second type of defense stat alongside DEF (or a third if MDF also exists)?
  12. @Wavelength yup! which is why i'm hesitant about it. But, maybe it is okay because - these are only a particular TYPE of attack, that the agility stat helps protect against. And I might be okay with this because I always welcome ways for agility to be more useful - it's hard to make agility feel as useful as other stats in a turn-based battle system (unless using a great ATB or CTB plugin).
  13. How about a stamina mechanic? It might be tricky to do, though you might be able to hack together a system that uses TP to track stamina. Stamina would determine dodge rates.

    Whenever a character gets attacked, they would usually attempt a dodge. While their stamina is high, they will almost always successfully dodge. If there isn't enough stamina to complete the dodge successfully, the attack has a high chance of hitting. The defender's dodge stat reduces the stamina required to dodge. The attacker's accuracy stat, on the other hand, increases the stamina requirement.

    Stamina recovers on its own. However, some actions could effect stamina. Maybe make powerful attacks consume stamina, and certain statuses might drain it. You could make guarding recover some stamina (being defensive makes it easier to get out of trouble, after all). And then you could throw in some stamina recovery items/spells, to help the player get out of a bind.

    All this combined would allow players to manipulate stamina however they like. To remove a high-stamina character, fighters must focus on them and exhaust them. A more clumsy tank could survive an onslaught for longer. However, agile characters do better against single targets.

    If I were you, I would still have some amount of RNG. However, the amount of RNG would be controlled by the player. Let them decide the amount of risk they want to take, I say! But you're welcome to remove the RNG from the system if you really want to. (It's probably better to implement it without the RNG first and then introduce it to your liking. It's easier to debug and tune this way.)

    Implementing this in RMMV might be difficult. You might have to get elbow-deep into some Javascript. And, again, this is something I just made up. No testing has been done. It sounds fun in my head but... could be terrible.

    Whatever you do, prototype and make sure it's a viable concept. Best of luck!
  14. Autofire said:
    How about a stamina mechanic? It might be tricky to do, though you might be able to hack together a system that uses TP to track stamina. Stamina would determine dodge rates.

    Whenever a character gets attacked, they would usually attempt a dodge. While their stamina is high, they will almost always successfully dodge. If there isn't enough stamina to complete the dodge successfully, the attack has a high chance of hitting. The defender's dodge stat reduces the stamina required to dodge. The attacker's accuracy stat, on the other hand, increases the stamina requirement.

    Stamina recovers on its own. However, some actions could effect stamina. Maybe make powerful attacks consume stamina, and certain statuses might drain it. You could make guarding recover some stamina (being defensive makes it easier to get out of trouble, after all). And then you could throw in some stamina recovery items/spells, to help the player get out of a bind.

    While it might be very difficult to balance, I have to say that I really love this concept!

    While partially RNG based, the player has a lot more control over the success of her hits on a micro-scale with character actions (rather than just a macro-scale with character builds).

    It's also kind of self-balancing in the way it makes it easier to dodge after you've failed to dodge, and harder after you've successfully dodged, making long strings of hits or misses exceptionally uncommon.

    Players could even use flurries of weak attacks on an enemy whose stamina is currently high, in order to wear them out and give themselves a much higher chance to hit with powerful, important attack skills! Having certain powerful skills cost Stamina themselves would also add a nice element of depth to the mechanic.

    When a battler's stamina is low, we might run into the same problems (as normal JRPG Hits/Misses) where enemies are pulling out surprise dodges on what should have been a "reliable" hit. Therefore, it might be smart to design such a system where below a certain threshold (maybe 25%), a battler cannot dodge at all under normal circumstances. Their stamina might drop all the way down near 0% (due to dodging while just above 25%, or using stamina-consuming skills, etc.), meaning that it will take longer to get back above the threshold - but hits during this time will be completely reliable.

    Really, really cool. I'd love to see this implemented well in a game, either a single-player RPG or a competitive tactical game.
  15. In one game I made, I just didn't use accuracy and evasion at all and it worked fine, some people sent me private messages saying they enjoyed most of the combat with the skillsets I made, what they didn't like were just useless skills on the magician character. They all had no problem with no accuracy and evasion in the game, and no-one else complained about it either. It was a dungeon crawler as well.

    On the new project I am working on, I actually prefer to use both accuracy and evasion but make sure all the characters that are affected by accuracy and evasion, attack at least twice per attack. Enemies though can still have a single attack. When playtesting it, so far, I think that works ok for me. But nobody has played this game so far, I don't even have a page up yet, so I've no clue what others will say about it right now.

    So you know, it's really it's up to you what you do.
  16. I'd like to suggest an alternative use to that Stamina bar thing that Autofire had mentioned.

    You could make it like second HP bar that layers over their actual HP. The Stamina bar takes the damage instead. It could be imagined as how much damage was dodged. When that runs out the character will be "exhausted" and will start taking HP damage. Or it could be some sort of shield that absorbs half or 3/4 of incoming damage.
  17. Well, Dragon Quest uses Agility to mitigate damage... because it's the base stat that armor adds to. Fast characters mitigate damage just by being fast, slower ones wear better armor.

    I really like Timed Hits, but I do see your concerns. But after playing some Paper Mario 2, it really feels like you are the reason Mario dodged the attack, or more accurately that you dodged the attack.

    One project I had made evasion simple; Naturally evasive creatures had 50%, super evasive ones or insubstantial ones had 100%. You could try to attack through the 50%, but the game is made assuming you don't think it'll work (it's one of the very few places 50% seems to work okay, I could be persuaded I'm wrong and just always use 100%). Defend for the agile party member gives them a status of 100% evasion instead of damage reduction (in addition to other guard benefits. I think it was extra turn in that game). For low accuracy, on the player side few weapons or skills had less than 100% chance of hitting, and they were very clearly for the player to take a risky choice instead of the safe one (there was never a situation where the lower acc weapon would be "necessary", just better if it does hit ass often as it says). On the enemy side, I often did it based on why they have low accuracy; One recurring tough but klutzy boss had "two" physical attacks; A very powerful single target attack and a weaker sweep attack. It was animated so it would always look like he was doing the strong attack, but then he would trip and fall on the party if he was using the sweep attack. Another one has an attack that seems to have 1/3 accuracy... but it actually keeps track and hits every third hit, letting a perceptive player defend or such when they know it will hit. A third would always miss if you are defending, and otherwise hit.

    One idea I saw I really like is DEF directly decreases damage (as normal), but {Accuracy - Evasion} multiplies the damage. So, if you have 5% evasion and the attack has 85% accuracy, instead the final damage is 80% of what it would be, showing a constant movement without ever fully dodging attacks. It creates an interesting choice when faces with high damage enemies because you have to figure out which will decrease damage the best (either ahead of time with equipment or in battle with skills that manipulate your stats).

    Pokemon has a very cool move that you could base things on; It's very strong, but always attacks last. And it doesn't work if you get attacked. It's there to be clever against enemies that try non combat tricks like status ailments, Baton Pass, spikes, etc. Strong enemies could have attacks that could be mitigates entirely with good planning. Maybe the spinning attack the fencer has also trips the boss if they try their slow, strong attack. In random encounters, it could be a or the way to easily deal with an enemy that does far too much damage (with having only that attack).

    In a project I was working on with classes, I like the idea for separating each character by giving them one stand out trait. The "evasive" character just straight up had 100% evasion always. And the game was built in mind that you could use them.