Jump to content
A 2021 backup has been restored. Forums are closed and work in progress. Join our Discord server for more updates! ×
SoaH City Message Board

RPG Stats?


Recommended Posts

I'm sure if I should put this in the help section as I am not particularly seeking help.

Anyway, I was wondering if anyone knew anything about how RPG stats work? Like how strength determines how much you take off or how much defense you have reduces damage.

((2A/5+2)*B*C/D/50)+2)*X*Y/10*Z/255

A = attacker's Level
B = attacker's Attack or Special
C = attack Power
D = defender's Defense or Special
X = same-Type attack bonus (1 or 1.5)
Y = Type modifiers (40, 20, 10, 5, 2.5, or 0)
Z = a random number between 217 and 255

This supposedly poke'mon's rpg/damage calculation.

Now if I had to guess, in MMF, it might look something like this:

2*Level( ".Rockman" )/5+2*ATKP( ".Rockman" )*STR( ".Rockman" )/DEF( ".Rockman" )/50)+2)*ATKB( ".Rockman" )*SWATKP( ".Rockman" )/10*200/255

I might be to come up with my own system though.

Link to comment
Share on other sites

  • 2 weeks later...

Honestly with the way MMF works you can almost keep it in the exact same format. I tried to make a pokemon game in byond it was pretty intense. But a lot of those variables are changed by like 70 different things but once you have each variable set you use that formula and its all good. But also that type modifier is either old or wrong. I could easily help you with rpg formulas even though you arent really asking for help.

Back on topic you need those ('s otherwise it will calculate things in the wrong order

Link to comment
Share on other sites

((2A/5+2)*B*C/D/50)+2)*X*Y/10*Z/255

A = attacker's Level
B = attacker's Attack or Special
C = attack Power
D = defender's Defense or Special
X = same-Type attack bonus (1 or 1.5)
Y = Type modifiers (40, 20, 10, 5, 2.5, or 0)
Z = a random number between 217 and 255

I don't believe that's a good equation, because level shouldn't really be used at all when attacking, simply because that what stats are mainly for. That's all I can say about it though, but I don't see the point in the equation being so long there though.

Link to comment
Share on other sites

About the only type of game that factors Level into battle damage are MMORPG, and usually use them for bullshit restriction systems.

Really, its whatever you want it to be. Play around with the formula until you get it to work how you want it to, and even then play around with it at higher intervals to find out if it stays consistant at "endgame" stats. it can be as complicated as you need it to be, but since you only have to write the forumla once, its not that big a deal.

You can actually put some real mathematical curve forumals into it, but i doubt you'll need it for a fangame.

Link to comment
Share on other sites

remember to put things in parenthesis.

Im pretty sure thats not going to work the way you want it to with all the multiplication and stuff all over the place.

instead of :

1+ATK( ".RockmanStats" )*STR( ".RockmanStats" )/DEF( ".RockmanStats" )*4/2

i think it would work better as:

1+( ATK( ".RockmanStats" )*STR( ".RockmanStats" ) ) /( (DEF(".RockmanStats" )*4) /2))

this window is clipping the text so sorry if i messed it up myself.

Link to comment
Share on other sites

  • 1 month later...

I happen to be working on RPG myself, and I can tell you that the kind of formula you use relies heavily on how your game is played. For example, since my game is more of an action/beatemup hybrid, I don't rely on exponentials very much when calculating damage. It's definitely something to consider if you're going turn-based, though.

The following post is quite long, but hopefully you find something of use in here. xD; Also bear in mind that I'm citing examples from my game, and this isn't the only (or best) way to go about it. It might give you some ideas, though.

In my game, I simplify things by separating the attack power from defense so that they're both in different equations. In other words, I calculate how much damage a monster would do if the player had 0 defense, and I transfer this number to a variable stored in the player object. From here, I plug it into a separate defense equation before finally subtracting it from the player's health.

Another thing you should ask yourself is how quickly you want your characters to grow as far as damage, HP, etc go. If you're going for something like Final Fantasy where you start off with 200 HP and end up with hundreds of thousands of HP's by the end, then you should use exponentials. That way, the amount of HP/attack/whatever you gain with each level will increase over time. For example, I use this equation to determine the player character's max HP:

HP = -208+Level+(Exp((Defense+Level)*0.025)*300)

This gives her a starting HP of 100 that starts increasing very slowly at first, but as the player gains levels and/or increases their Defense stat, it starts to skyrocket near the end of the game.

Of course, I find that you shouldn't use exponents (in most cases) with attack power, especially if you plan of having the player collect different weapons and equipment throughout the course of the game. Here's the equation I use to determine the damage of the player's normal sword swing:

BaseDamage = (Strength*(EquippedSword*1.5))

This, of course, is the base damage. If you use something like this, you should try adding randomness to it by adding Random(BaseDamage / 2) once the blow connects.

Also, take note of the EquippedSword*1.5. What this means is that each sword the player collects in the game will increase her attack power by 150% (1.5). She only gets two different swords in my game, though, so if you plan on having more dakka, you should lower this multiple to something like 1.2. Aaand of course if you use this, you need to make sure that the swords are sorted in order from weakest (EquippedSword=1) to strongest (EquippedSword=9001).

If you wanna add elemental damage, what you could do is if the blow connects, set a variable in the monster (say, AttackedWith) to a particular number. For example, in my game, when the player attacks with fire, I set AttackedWith in the monster to 1. Then you run a check to see if this number is ever anything other than 0 (which is non-elemental damage), and if it is, multiply BaseDamage by 2 for double damage.

Hope that makes sense. xD;

Link to comment
Share on other sites

Yeah, it depends on the system. For example, the Castleroid system is often very simple. For example, Castlevania: Order of Ecclesia uses this stat system:

ooestats.png

(From this specific FAQ.)

There's also an FAQ that goes in-depth into the combat mechanics of Castlevania: Symphony of the Night, which is here. I like to do a mixture of SOTN and OOE, myself, OOE's stats calculations, and SOTN's damage calculations.

Link to comment
Share on other sites

  • 5 months later...

Hm... I'm curious, what do you think about Level-based stats, and Point-buy stats?

That is to say, Level systems follow distinct structure, often surrounding the character's class or race, whereas Point-buy systems measure power directly, as to make the system more flexible and balanced.

I personally prefer point-buy, but it seems so hard to develop something like that.

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...