RPG Mechanics...?

Started by
7 comments, last by JayeAeotiv 18 years, 7 months ago
I'm looking for some good information on how to develop a system for doing skill checks, attack & defense, etc. Like the d20 system. I'm thinking of ranking skills on a percentage level. x% fighting skill vs x% blocking skill = 50% hitchance. the above is before things like weapon modifiers are applied. I think this should work for my combat system. But then what should the base armorclass type style be? I'm not sure how I should rank that. Skill checks are going to be skill% vs difficulty class. Not sure of a good implementation yet. The combat system is almost the same as a skill check. almost. but how to apply modifiers to keep it balanced? Players have a fighting skill, optional blocking skill, armor class. Negating any modifiers, how should I figure the chance to hit? Should I have a default armorclass for unarmored characters? How to figure out my scale for mods? Attack modifiers can't go to high. I think everyone should understand what I'm trying to figure out. Thanks for any help. If you direct me to an existing system. (d20 etc) note whether or not the license for it's use extends to videogames. d20 is not allowed for videogames as per the wizards of the coast license v6.0. Thanks, J
--before honor is humility--
Advertisement
First, you should consider all of those entities to have DEFENSE. Player A might have 30 DEF, when equipped with ArmorX they may have 38 DEF. The damage dealt could be read as Attacker Power - Defender Defense = Damage Dealt. The To-Hit chance should be done outside of defense/power. If there is a shield skill, etc, you should weigh that as well, say Defender Agility - Attacker Accuracy = "Miss%"; then if we have the ability to use a Shield we can go with something like re-weighing the ToHit% and Checking it, maybe a person with Medium Shield Skill will be able to have that algorithm "checked" two times. SO:

Person with a medium shield skill (2X attempts in our case) attempts to defend,
:Defender Agility - Attacker Accuracy = Miss%
:CalculateHit(Miss%, MISS), this would take the Miss% and determine if Miss = true;
:CalculateHit(Miss%, BLOCK), this would take the Miss% and determine if Block = true;
:CalculateHit(Miss%, BLOCK), this would take the Miss% and determine if Block = true;

If Miss becomes true then the Attack completely fails and "ATTACKER MISSED" is displayed.
If at any point Block becomes true the Attack fails and "DEFENDER BLOCKS" is displayed.

I've never played any D&D/d20 games, so I know you don't need to rely on some outside source for creating your combat system. I find the combat system to be one of the most entertaining parts to create in the RPG genre.

[Edited by - ferr on September 8, 2005 2:07:35 PM]
Very useful stuff. It's so simple it just might work! Though what I'm mostly concerned about is how to come up with the min/max numbers that the characters will actually have. Ex. 0-1000 range for ATTACKER ACCURACY would be a bit too big of a range. Basically here's how I want to come up with my numbers. I could probably sit down and use your system and determine the numbers I need via some basic algebra (I LOVE MATH).

If ATTACKER ACCURACY == DEFENDER AGLITY : 50% chance to hit.

In your method, this might be true occasionally. So as you can see I'm sort of at a loss for how to figure this.

Any thoughts?

I'm thinking that 100 ATK vs 0 DEF = 100% hit

100atk vs 0def = 100
30atk vs 30def = 50 or (x)atk vs (x)def = 50

What I really need to do is come up with a formula. Is this just a linear equation where a line plots between 0 and 100? y=mx+b. If atk=x and def=y. If point(x,y) falls on a line with a slope of 1. 50% chance. With a slope of 0 or an undefined slope. 100% for one or the other. Slopes in between somehow have to be converted into percentages. My brain hurts now.

-J



--before honor is humility--
A system I like is from Civilization: You combine factors and use each side's total as a percentage.

For instance, if you have 50 ATT vs. 50 DEF, you get a total of 100; The attacker's is 50/100, and the defender's is 50/100. This is then used for chances of success. What's nice is that the system works no matter how big the numbers get. If you have 195 ATT vs. a 311 Def, you'd have 195/506 (38.5%) versus 311/506 (61.4%).

You can then determine the number of "rolls" (tests) you want to determine success. I think Civ does about a 100 per each attack and gets a nice uniform average out of that. The higher the number, the less variation you'll have (statistically speaking).
--------------------Just waiting for the mothership...
You should start out by coming up with the stats that every combat entity will have.

You can do this in somewhat an object-oriented manner:

All Combat Entities Can Attack
All Combat Entities Can Defend
All Combat Entities Can Deal Damage
All Combat Entities Can Miss
All Combat Entities Can Block
All Combat Entities Can Dodge
All Combat Entities Can Die


Now that you have an idea of what is needed in your combat system, you can come up with the stats that you may want to use to perform these actions.

Let's look at Deal Damage, what should be required to deal damage? Possibly an amount of Strength great enough to reduce HitPoints when measured against Defense. With that you can come to the conclusion that a formula as simple as..

AttackerStrength - DefenderDefense = DamageDealt; DefenderCurrentDamage += DamageDealt; DefenderCurrentHP = DefenderTotalHP - DefenderCurrentDamage;

So in this instance, 100 AttackerStrength vs 0 DefenderDefense would be:

DamageDealt = 100 - 0 = 100;

Although, this is a very simple example, possibly the most simple. This could be done a million different ways, and I'd definitely suggest coming up with a better way. The more stats you toss in, the more complex and fun it may be to customize your character.. the diversity amongst characters will be much greater. Do keep in mind that Strength/Defense in my example only affects DamageDealt and Accuracy/Agility only affects Dodge/Miss/Block.
Quote:Original post by Wavinator
A system I like is from Civilization: You combine factors and use each side's total as a percentage.

For instance, if you have 50 ATT vs. 50 DEF, you get a total of 100; The attacker's is 50/100, and the defender's is 50/100. This is then used for chances of success. What's nice is that the system works no matter how big the numbers get. If you have 195 ATT vs. a 311 Def, you'd have 195/506 (38.5%) versus 311/506 (61.4%).

You can then determine the number of "rolls" (tests) you want to determine success. I think Civ does about a 100 per each attack and gets a nice uniform average out of that. The higher the number, the less variation you'll have (statistically speaking).


That's pretty cool, I don't think I've seen it before. Though I could perceive a problem that two EVEN players will have a 50% chance of hitting each other.. I would think they would have a 100% chance at that point. I'm assuming the ATT=DEF since when you flip here "195 ATT vs. a 311 Def, you'd have 195/506 (38.5%) versus 311/506 (61.4%)" you maintain the same stats for the odds.
I think that's a pretty radical system. With civ.

It's my view that two even players should have a 50/50 chance at one another with a non-turnbased style. Exactly what I'm going for.

-J
--before honor is humility--
slightly off topic:
I was pumped to see a role playing game about fixing cars. Oh well.

On topic:
You can take the basic civ method and expand on it. For example if your planes have advanced to super sonic, then they get a double defence versus balistic attacks.

You can split label the attack and then modify things based on attack versus whatever. Artillery does double attack on buildings. With very little effort you can turn this simple system into a strategic one.
[s]I am a signature virus. Please add me to your signature so that I may multiply.[/s]I am a signature anti-virus. Please use me to remove your signature virus.
Yeah it's pretty nice. Though out of curiosity I'm going to see if I can come up with an intersting linear equation.
--before honor is humility--

This topic is closed to new replies.

Advertisement