Public Group

# Resources to research rpg level growth + combat damage

This topic is 2135 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

## Recommended Posts

I am just looking for a good starting point which describes how to build your own combat mechanics and player growth mechanics. This obviously varies from game to game, does anyone know any books which covers the match required to build the basic mechanics common rpgs would use, or perhaps a detailed article.

I don't have a lot of math education so I need to cover what aspects of algebra and pre-calculus would help when making these calculations, things like linear vs exponential algorithms for stat / combat calculation.

Anyone know a good article or book to get started?

##### Share on other sites

I'd imagine the math that they use in combat calculation and the growth of characters in a level style game wouldn't go any further than the bare minimum required in Highschool Math.

Traditionally it has been that the basic stats would corellate with basic effects on the character. Strength is to damage, vitality is to health, dexterity is to attack speed, luck is to chance of "critical" hits, etc..

But there have been other types of systems that while they do stick somewhat to the roots, they have weapons scale to the stats of the character. For example in a game like Dark Souls I believe the katana type weapons were based heavily on the Dexterity attribute. Raising your Strength did little to improve the damage you did with a Katana.

Simply looking at the graphs of linear and exponential functions should reveal effect they have. A game doesn't require complex math for the calculation of damage inflicted, or the players health, or the speed at which a player attacks.

// Players damage is influenced by his strength and his skill with a sword
Player.Damage = Player.Strength + ( Player.SwordSkill / 2 );

// Players health is 1.25x his vitality attribute
Player.Health = Player.Vitality * 1.25;

// Players attack speed relies on dexterity, but having a higher strength makes him move slower.
Player.AttackSpeed = Player.Dexterity - ( Player.Stength * 0.05 );


These are all simple calculations but will get the job done.

##### Share on other sites

It's funny you should use Dark Souls as an example as that is one of my current favorite games.

To me a system like that would make sense, I suppose a more complicated equation would only be required if you had need for controlling the growth of the player in a certain way. Leveling faster in the beginning for example, or having a large leveling curve the higher you get, which would be similar to Dark Souls 'cost' to level using souls.

I was hoping to more or less get a math primer geared towards gaming, both for a reference and to brush up on some math I haven't done in a few years since high school :P.

You make up your example on the fly?

##### Share on other sites

Many of the RPGs I have played use a wide variety of combat rules for progression and growth.  A common thread is some sort of a random number, many based on dice rolls.

For example: 1d6 or a random(6), 2d4 or a random(7)+1 or RandomA(4) + RandomB(4).  Some systems use a Percentage roll Example: 69 percent chance would be ..

If Random(100) <= 69 then successful.   For charactor progression usually is measured by the accumulation of points, as a whole or part of a skill set.

Example :  If the Charactor has a skill of Boxing, for each success in the use of that skill, they can points in that skill in order to advance that skill to the next level.

Ultimately it is up to the game designer to develop the restrictions on how these items are used.

Math wise, keeping it simple is better.  Or, Less is More.

##### Share on other sites

To me a system like that would make sense, I suppose a more complicated equation would only be required if you had need for controlling the growth of the player in a certain way. Leveling faster in the beginning for example, or having a large leveling curve the higher you get

I struggled a bit with experience requirements for levels but in the end that links to how much exp you reward to player. You could have even linear experience requirement curve and constant experience reward or you could have exponential experience curve and linear experience reward.

How I did it was that I had all the monsters reward a percentage of the experience requirement on the level the monster is currently at. IIRC I used something like (n = 2 for me)

exp_reward = (1 / (n*monster.level)) * get_exp_req(monster.level)

This achieves 3 things:

- on earlier levels you need to kill fewer monsters to gain levels

- killing lower level monsters doesn't gives you less exp and higher gives more related to your level

- rewarding percentage of the level requirement keeps your design consistent and helps you evaluate the gameplay goals

Few examples:

level = 2: exp.reward = 1/4 of exp requirement meaning you need to kill 4 to level up

level = 16: exp.reward = 1/32 of exp requirement meaning you need to kill 32 to level up

The "magic number" n is needed to deal with the fact you could have anything from like 8 levels to 120 or more. Though chances are if you're going for something extreme you should probably tweak the coefficient (n*monster.level) a bit further, perhaps towards (n + (monster.level/m)) direction.

EDIT: In this model the exp curve shape doesn't have that great impact on how the game plays out as killing equal level monsters always yields you that guaranteed amount of exp. But OFC exponential exp curve gives bit more more impact on lower/higher level scaling and also the increasing exp numbers give a sense of progress to the player. (The player DROOOLS for big numbers in RPGs, be it exp points or damage )

• 13
• 18
• 29
• 11
• 20