Looking for simple attack roll or skill roll mechanics

Recommended Posts

I'm writing a short article on game balance, specifically dealing with typical combat attributes, combat resolution systems, and how those values tie in to game balance, character progression, etc.

What I want are some examples of the "to hit" rolls, or skill checks, or other similar contests or evaluations (there must be a word for this!), so I can compare and classify them, along with their balance implications. It's important that the mechanic is documented or otherwise known, rather than just being an opaque "68% To Hit" or whatever.

They don't have to be from computer games; alongside some simple classic ones from Civilization and Age of Wonders, I'm also looking at the d20 attack roll from Dungeons and Dragons, a couple from Warhammer, etc.

Share this post


Link to post
Share on other sites

The simplest I can think of is this: always hit. It's on the defender to evade the attack. Then it's a simple "roll a random number and see if it's within my evade parameter" check. As far as I know, this is how the Final Fantasy XIII games work. See the damage calculations here: http://www.ign.com/faqs/2010/final-fantasy-agito-xiii-damage-calculation-guide-1085648

The only example that I can think of that has "official" documentation is from Dragon Age II (from the Wikia site http://dragonage.wikia.com/wiki/Attributes_(Dragon_Age_II)#Dexterity): "Your attack score is your chance of successfully hitting an enemy with a basic attack. The takes your attack percentage (derived from your primary attribute) and subtracts the enemy's defense and displacement percentages (if applicable). Attack scores are also modified against enemies of higher rank (-15% for a lieutenant and -30% against a boss). The final sum is the likelihood of success. If you fail to make your attack, you will strike a glancing blow that does 10% of your character's base damage."

Hope this helps!

Share this post


Link to post
Share on other sites

There's also a good document about Final Fantasy X's Accuracy vs Evasion stats here: https://www.gamefaqs.com/ps2/197344-final-fantasy-x/faqs/31381

Also, Final Fantasy VII's Defense% stat: http://finalfantasy.wikia.com/wiki/List_of_Final_Fantasy_VII_stats#Defense.25

Side note: I promise I play more than just Final Fantasy and Dragon Age, I just happen to know where the places for their damage calculations are :P

Share this post


Link to post
Share on other sites

When combat in RPGs where is not dependent on the motor skills of the player, I believe the combat comes down to resource management. Your main resource that you're trying to maintain is your Life Points. The various means that you have at your disposal to reduce your opponents life or support your own may have some limited number of uses or require consideration for the time it takes to implement their use (for example, you get one attack per turn).

A "To Hit" chance would then in effect become a rate of depletion, particularly on the Life Points.

In balancing a game, a designer's job is to determine expected rates of depletion for life points and other resources as the player moves his character from one location to another where presumably an opportunity will be provided to replenish resources and plan for the next leg of the journey.

Character progression in some ways increases the resources and options available to the player and thus opens the player to a number of ways to resolve combat, making it more interesting as the player progresses. However the balancing of the battles between two points is still about achieving the same effect which is finding a good rate of depletion of player resources as he progresses from one point to another.

Share this post


Link to post
Share on other sites

The second Final Fantasy document has the sort of thing I'm looking for, although unfortunately it's full of special cases and hidden variables so it's too complex for my needs. I guess 10 iterations of a series will tend to do that...

Any other examples?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Forum Statistics

    • Total Topics
      628740
    • Total Posts
      2984467
  • Similar Content

    • By matrefeytontias
      So here's the deal : many many years ago, I saw screenshots of Miegakure, that very famous 4D puzzle-platforming game you probably all know about by now. The thing is, it never came out, not even a playable demo, except at big gaming events that I have no way to get to. As such, I decided a while ago that I had waited long enough and I decided to start working on my own mathematically accurate 4D rendering engine.
      Without going too deep, the point of it is that 4D objects live in 4D space, and the so-called 4D camera just cuts a 3D slice of the 4D space and of every 4D object in it, which is then passed to your regular run-of-the-mill 3D engine to display. Doesn't sound like anything too hard then.
      The big problem however comes from optimisation. In 3D engines, you expect your geometry to never change ever, allowing for a lot of cool stuff like GPU caching and the like, and is usually pretty vital for performance. However in a 4D engine, the thing that never changes is your 4D geometry, not the 3D geometry that results from the cutting (that in fact changes every frame). The more mathematically inclined will also think about spatial complexity, since in 4 dimensions you have "a lot more space" to put objects in (purposefully keeping it vague). Moreover, I don't want to go through the trouble of building an actual 3D engine, because a lot of existing engines do that a lot better, and I would probably waste all of my time and motivation working on 3D instead of 4D.
      As a demonstration, my very first demo uses Three.js and is basically a 4D enigma : http://mattias.refeyton.fr/PAF/slicing . The goal is to get to the other side of the wall where the green cube is, knowing that the wall is too high to jump over and that you can't go around it. You can use ZQSD to move (French keyboard, sorry), and A and E to look "ana" and "kata", which are the 4D equivalent of left and right. You'll excuse the roughness of the whole thing, as it was done in 5 days for a school project (it was the perfect opportunity). This has only been tested on Firefox and Chrome.
      Hence my question : what do I use as a foundation to work on this ? I'd like to use either C, C++ (for performance) or Haxe (for the multiple targets), if that gives any leads. Of course, doing it from scratch is a totally valid answer, as I would be able to include many 4D-only things (such as 4D lighting and other cool shit) that I'm having trouble seeing how I could implement them in an existing engine. Another thing to take in consideration is that there's probably going to be a 4D physics engine to come with it, and that I'm not sure how hard or easy making that work with an existing 3D engine would be.
      Also I'm killing two birds with one stone by asking if anybody would be interested by a stream of this. I'm planning to eventually stream my work on this, which would include math on blank paper, and heavily mathematically-inclined discussion, not just coding (relatively little coding in fact).
    • By ramirofages
      Hello everyone, I was following this article:
      https://mattdesl.svbtle.com/drawing-lines-is-hard#screenspace-projected-lines_2
      And I'm trying to understand how the algorithm works. I'm currently testing it in Unity3D to first get a grasp of it and later port it to webgl.
      What I'm having problems with is the space in which the calculations take place. First the author calculates the position in NDC and takes into account the aspect ratio of the screen.  Later, he calculates a displacement vector which he calls offset, and adds that to the position that is still in projective space, with the offset having a W value of 1. What's going on here? why can you add a vector in NDC to the resulting position of the projection? what's the relation there?. Also, what is that value of 1 in W doing? shouldn't it be 0 ?
      Supposedly this algorithm makes the thickness of the line independent of the depth, but I'm failing to see why.
      Any help is appreciated. Thanks
    • By Yarden2JR
      Hi there everyone! I'm trying to implement SPH using CPU single core. I'm having troubles in making it stable. I'd like some help in order to understand what is wrong and how could I fix it. Please, take a look at the following videos:
      Water inside sphere using Kelager's parameters
      Water inside big box
      Water inside thinner box
      I've already tried using XSPH, the hash method to find the neighbors (now I'm using the regular grid, because the hash method didn't work for me) and two different ways of calculating the pressure force.
      I'm using mostly the following articles:
      Particle-Based Fluid Simulation for Interactive Applications, Matthias Müller, David Charypar and Markus Gross
      Lagrangian Fluid Dynamics Using Smoothed Particle Hydrodynamics, Micky Kelager
      Smoothed Particle Hydrodynamics Real-Time Fluid Simulation Approach, David Staubach
      Fluid Simulation using Smoothed Particle Hydrodynamics, Burak Ertekin
      3D Langrangian Fluid Solver using SPH approximations, Chris Priscott
      Any ideas? Thanks!
    • By LollipopGlock
      Hello, I'm Lollipop.
      I have hobby project it is in very beginning phases. I'm looking for people to come in see my ideas and add input, nicely and respectfully poke holes in everything and even contribute if they desire. It's all concept, ideas, some story line, concept features,  some characters. It is original creative fantasy with hopes of being open world, mmo-rpg.
       
      Thank you and be kind
    • By flatingo
      I want to share my experience and collected here the most common mistakes in creating and advertising your games. I'll be glad if it helps you.
       
       
       
  • Popular Now