RPG Weapon Stats

Started by
2 comments, last by laztrezort 12 years, 7 months ago
I have a weapon generator for a 2D roguelike RPG I am developing. It has variables that store the name of the weapon, the base damage output, the base attack speed, the required strength to equip, and the gold value of the weapon. For example.... A Short Sword could have 5 base damage, and 3 attack speed with 10 required strength to equip and a gold value of 200. But what would be a good way to add weapon "levels"? So the damage would be greater if the level was higher. I don't want the attack speed to change but what would be a good equation to use to increase the damage, required strength, and gold value of the weaon if the weapon is of a higher level?
Advertisement

I have a weapon generator for a 2D roguelike RPG I am developing. It has variables that store the name of the weapon, the base damage output, the base attack speed, the required strength to equip, and the gold value of the weapon. For example.... A Short Sword could have 5 base damage, and 3 attack speed with 10 required strength to equip and a gold value of 200. But what would be a good way to add weapon "levels"? So the damage would be greater if the level was higher. I don't want the attack speed to change but what would be a good equation to use to increase the damage, required strength, and gold value of the weaon if the weapon is of a higher level?


One possible way is to add a level scaler variable such that when you create the weapon variable, you would supply it's level along side with its power, requirements etc. All its attack or level sensitive data would be multiplied or added to the level scaler. For example, the attack would be: attack = level*(attack_increase_per_level) + baseAttack You may also use this on other variables so that it scales with level. You might want to add a levelUp() function to the weapon so that you can change the level.


Youtube:
My Channel

Video Lessons:
Java Programming Lessons

Tutorials Written (Not-Active):
Introduction to A.I.

I have a weapon generator for a 2D roguelike RPG I am developing. It has variables that store the name of the weapon, the base damage output, the base attack speed, the required strength to equip, and the gold value of the weapon. For example.... A Short Sword could have 5 base damage, and 3 attack speed with 10 required strength to equip and a gold value of 200. But what would be a good way to add weapon "levels"? So the damage would be greater if the level was higher. I don't want the attack speed to change but what would be a good equation to use to increase the damage, required strength, and gold value of the weaon if the weapon is of a higher level?


One possible way is to add a level scaler variable such that when you create the weapon variable, you would supply it's level along side with its power, requirements etc. All its attack or level sensitive data would be multiplied or added to the level scaler. For example, the attack would be: attack = level*(attack_increase_per_level) + baseAttack You may also use this on other variables so that it scales with level. You might want to add a levelUp() function to the weapon so that you can change the level.


Youtube:
My Channel

Video Lessons:
Java Programming Lessons

Tutorials Written (Not-Active):
Introduction to A.I.

I have a weapon generator for a 2D roguelike RPG I am developing. It has variables that store the name of the weapon, the base damage output, the base attack speed, the required strength to equip, and the gold value of the weapon. For example.... A Short Sword could have 5 base damage, and 3 attack speed with 10 required strength to equip and a gold value of 200. But what would be a good way to add weapon "levels"? So the damage would be greater if the level was higher. I don't want the attack speed to change but what would be a good equation to use to increase the damage, required strength, and gold value of the weaon if the weapon is of a higher level?


One possible way is to add a level scaler variable such that when you create the weapon variable, you would supply it's level along side with its power, requirements etc. All its attack or level sensitive data would be multiplied or added to the level scaler. For example, the attack would be: attack = level*(attack_increase_per_level) + baseAttack You may also use this on other variables so that it scales with level. You might want to add a levelUp() function to the weapon so that you can change the level.


Youtube:
My Channel

Video Lessons:
Java Programming Lessons

Tutorials Written (Not-Active):
Introduction to A.I.
I can give you an example for the multiplier. In this example we add 0.1 for each level, but you can change it with whatever you want. Of course this would be a linear incresing, but they're simple maths, and I hope you can do it with this example.

level1 - multiplies by 1
level2 - multiplies by 1.1
level3 - multiplies by 1.2
and so on

we can see we add (level-1)/10 to the base multiplier, which is 1. So we got it:

1+(level-1)/10 = (9+level(/10


int multiplier = (9+weaponlevel)/10;
attack = damage_it_should_do*multiplier



That's an example, I hope it helped.

I have a weapon generator for a 2D roguelike RPG I am developing. It has variables that store the name of the weapon, the base damage output, the base attack speed, the required strength to equip, and the gold value of the weapon. For example.... A Short Sword could have 5 base damage, and 3 attack speed with 10 required strength to equip and a gold value of 200. But what would be a good way to add weapon "levels"? So the damage would be greater if the level was higher. I don't want the attack speed to change but what would be a good equation to use to increase the damage, required strength, and gold value of the weaon if the weapon is of a higher level?


There are numerous ways this can (and has) been done. One way is as suggested above to simply multiply the level by a value and add it to the base stat. You could have different multipliers for each stat, or you can base certain stats (such as gold) off the others.

Instead of a simple level, you can have descriptive tags that get added to items, each tag having its own modifiers. Examples include material ("Mithril knife", where "mithril" has +2 damage and +500 gold), a quality ("Well-balanced cudgel", +1 speed, +1 damage, +20 gold), or magical ("Katana of Destruction", +10 damage, +10 min strength). Certain tags can get mixed for powerful items: "Epic Dragonbone Spear of Slaying Rodents". In this scenario, tags are statically defined, but added randomly to items during generation.

Expanding on the "tag" system, you could have special items ("runes", "enchantments", etc.) that get added to items to enhance their effect. Items only get a certain number of "slots" for enhancements. This could be a form of rudimentary crafting, where enhancements can only be added to items at special places (e.g. a forge) or by certain NPCs.

Whichever path you choose, you are going to want it to be easily tweakable - balancing these types of games can be a major (oft times seemingly impossible!) task. Keep all multipliers, tag modifier data, etc. in a single place, separate from your logic that uses them, and somewhere that it can be easily changed, like a config file or a section of static code.

This topic is closed to new replies.

Advertisement