|
|
Author |
Thread |
WarMage
Maniac (V) Mad ScientistFrom: Rochester, New York, USA Insane since: May 2000
|
posted 08-03-2005 20:49
I am trying to design an algorithm to success based on a sliding modification scale for succes attacker vs defender.
Say we have a mod range of -50 to 50. Hov do you determine success. How would you keep it fair if you then modify the range to -100 to 100 or even jump to -1000 to 1000.
Is this possible to design an algorithm that works in this case.
In my example I am trying to design RPG mechanics where the attacker can have a bonus to hit, the defender a bonus to defend.
totalMod = (toHit) - (defense)
If I do not want to define a hard upper and lower bounds how would I design a system to deterime hit success?
Dan @ Code Town
|
Slime
Lunatic (VI) Mad ScientistFrom: Massachusetts, USA Insane since: Mar 2000
|
posted 08-03-2005 23:20
I don't understand your question. Part of it may be the vocabulary. I don't understand what you mean when you say "mod" and "success". Can you more clearly explain what you're trying to do?
|
Skaarjj
Maniac (V) Mad ScientistFrom: :morF Insane since: May 2000
|
posted 08-04-2005 01:56
In basic DnD terms...
There are two components to every attack: The attack roll and the damage roll. Included in the attack and damage roll is the critical hit/fumble roll.
The attack roll, using a d20 die, is (1d20 + Dexterity Modifier + hit bonuses) vs Opponent's Armor Class. If the roll and bonuses combined total more than the opponent's armor class, then the roll was taken to be a hit. If the roll itself is a perfect 20 (or within the given weapon's critical threat range, which can be anywhere between 17-20) then another attack roll is rolled. If this also hits, then the hit is taken to be a Critical Hit and the damage is adjusted accordingly. If the roll is an imperfecf 1, then, likewise, another attack roll is rolled. If this one hits, then the roll is still a hit, if it misses, the roll is a Critical Fumble, and the attacker suffers a penalty for it.
Each weapon has a specified damage die that is used for its damage roll (example: a standard longsword has, I think, a damage roll of 1d8). You roll damage die + strength modifier + any damage bonuses. This amount (minus any resistances of the opponent) is then subtracted from the opponent's hit points, and any penalties (paralysis, slowed, burn, acid-damage, etc) are applied to them.
Justice 4 Pat Richard
|
warjournal
Maniac (V) Mad ScientistFrom: Insane since: Aug 2000
|
posted 08-04-2005 02:54
Mage, you might want to take a trip down to your local hobby store and see how the different systems work. They are all different, but if you get to know them you can take what you like and refine.
One of my personal favorites combat systems is ShadowRun 2nd Edition. SR combat is a bit tricky, but I enjoyed it quite a bit compared to simplier combat systems. I like it way more than the simplier SR 3rd Edition combat.
Another combat system I like is Champions. If you cut it down, could be useful.
If you want deadly combat, look into Twilight 2000. One of the more brutal systems I've played.
Then again, I haven't played anything other than AD&D 2nd for quite some years.
|
Skaarjj
Maniac (V) Mad ScientistFrom: :morF Insane since: May 2000
|
posted 08-04-2005 03:15
Personally I prefer the Dragonhunt combat system which, as it currently stands in the game-world, involves us saying that we're going to do something, and Alan telling us whether or not it works. That's more pure roleplaying, though, as opposed to strategic combat.
Justice 4 Pat Richard
|
tj333
Paranoid (IV) InmateFrom: Manitoba, Canada Insane since: Oct 2001
|
posted 08-04-2005 04:23
In general I think that if the modifiers for attacks and defenses are not out of line with each other or make the randomly generated part (I'm assuming you have some randomness somewhere.) insignificant it should work.
Look at D&D for example. It can do what you are asking for. You have a random range of 1-20+To-hit modifiers that needs to equal or exceed the 10+target's defenses. It can be expected for to-hit values and defenses to both continue rising at roughly the same speeds.
If you have +5 you can expect to be against a 20 defense or +5000 against a 5015 defense, the probability to hit is the same 25% in both cases.
This leads to a contest between two uneven character being easy to see who will win from the start. Is this any concern to what you consider fair?
Now games like Shadowrun with die pool and exploding rolls do weird things with the probabilities. You can check the Quick start rules here .
Also on that site you can find sample rules for Vampire: The Redemption. Where SR uses a variable target number on a pool of dice V:TR uses a fixed target number on a pool of dice that is varied for the difficulty.
__________________________
Eagles get sucked into jet engines and weasels are oft maligned, but beavers just make nice hats.
|
WarMage
Maniac (V) Mad ScientistFrom: Rochester, New York, USA Insane since: May 2000
|
posted 08-04-2005 14:56
Thank you for the responses.
I think that it comes down to me being unable to have a scale that grows too rapidly, and I must have an upper bounds on it.
The problem with scaling now becomes.
A player with a difference in scores of say:
attacker + 10, defender + 5 should be similar to
attacker + 1000, defender + 500
Now it comes down to usability.
Would a player be more content to work with smaller numbers. D&D has -5 to +5 for standard to hit enchantments. When you get into a hack and slash game this limit seems small. If you want lots of options in weaponry I would need a higher cap. A usable limit of say -20 to +20 might suffice.
More thinks to think about.
For a little background on my this came up.
I am working on a small combat engine. Two sets of stats battle each other and a win-lose-tie situation is the result. Nothing to complex, but it gives me something to do with my ever vanishing free time.
I didn't feel that the standard Ad&d combat mechanics would fit the bill for something like this, but the more I look at this problem it becomes easier and easier to just go with it.
The basic algorithm I was thinking of would be the following.
hitSuccess = Random(0 to 100) + (hitBonus - defenseBonus) > 50 ? 1 : 0
The range for (hitBonus - defenseBonus) should be -50 to 50.
Will have to run some tests.
Dan @ Code Town
|
WebShaman
Maniac (V) Mad ScientistFrom: Happy Hunting Grounds... Insane since: Mar 2001
|
posted 08-04-2005 22:26
WM, check out World of Synnibarr for a really cool combat system.
I have always been a fan of higher number ranges, instead of lower. Why? Because it leaves more "room" to play with.
Take D&D's D20 system - basically, it works on 5% increments. That doesn't leave all that much room in there, to differentiate things.
That is why the Ability score system is so screwed up. Ideally, you would have ability scores that would add/subtract at every point, for maximum differation. However, with D20, you will seriously saturate your number spectrum with relatively low scores, not to mention high scores.
D100 gives on a bit more room to work with.
D1000 gives one a lot of room to work with, but one now starts getting into areas where one really needs a calculator/computer to start working through rolls. Now, in today's day and age, I don't find that all that bad - in fact, a symbiosis between computer/rpg-game is a wanted thing, IMHO. Especially a main combat program/rolls program, that does all the number crunching.
Synnibarr uses some really complex formulas, to simulate real world type conditions. They can get really complex with pen and paper, but using a program makes it really easy.
All things considered, I have never seen a better system than Synnibarr's. Too bad it didn't really catch on. Here is a link - Synnibarr
(Edited by WebShaman on 08-04-2005 22:31)
|
WarMage
Maniac (V) Mad ScientistFrom: Rochester, New York, USA Insane since: May 2000
|
posted 08-05-2005 17:40
Thanks much, I will check it out and let you know how it goes.
Dan @ Code Town
|
bitdamaged
Maniac (V) Mad ScientistFrom: 100101010011 <-- right about here Insane since: Mar 2000
|
posted 08-05-2005 18:33
World Of Cinnabuns?
Sounds tasty!
.:[ Never resist a perfect moment ]:.
|
Skaarjj
Maniac (V) Mad ScientistFrom: :morF Insane since: May 2000
|
posted 08-08-2005 06:34
It is indeed. Don't forget to check out it's sister games World of Bearclaws and World of Crawlers (like World of Warcraft, only with a hell of a lot more sugar, and less undead and orcs).
Justice 4 Pat Richard
|
tj333
Paranoid (IV) InmateFrom: Manitoba, Canada Insane since: Oct 2001
|
posted 08-09-2005 05:20
quote:
WarMage said:
Thank you for the responses.
I think that it comes down to me being unable to have a scale that grows too rapidly, and I must have an upper bounds on it.
The problem with scaling now becomes.
A player with a difference in scores of say:
attacker + 10, defender + 5 should be similar to
attacker + 1000, defender + 500
Been doing some work with my brother Mark (way better at math then me) and I?ve found a simple way to get a near infinite level of modifiers with the above not just being similar but the same.
What you do is take the ln of the modifier. The windows calculator in scientific mode has it so I think it?s a fairly common math function.
The ln gives a diminishing return from the values put into it. Marks says, the slope of the functions is equal to 1/x.
Some Values:
ln(5)= 1.6
ln(10)=2.3
ln(500)=6.2
ln(1000)=6.9
If we take the above number and multiple by 10 it makes a nice percentile to work with.
For example the ln of the attack and defence in the formula:
hitSuccess = Random(0 to 100) + ((ln(hitBonus) ? ln(defenseBonus)))X10) > 50 ? 1 : 0
Use either the example of Attack10/defense5 or attack 1000/defense500 it works out to being the same 7% difference.
With ln doubling both of values involved always leaves you with the same difference.
This makes ln better in my view then log, sine, and other functions that we looked at.
The diminishing returns of the ln function compared to the constant climb of a linear function (D&D) lets compared values remain relevant longer.
So what do you think?
Notes:
Its at the a modifier of 150 that it gives a 50% bonus if unopposed; which in this system is an automatic success.
Putting negative numbers in ln gives you an imaginary number as the result.
Using -ln(x) gives a mirror of ln(x) along the x axis at 0.
__________________________
Eagles get sucked into jet engines and weasels are oft maligned, but beavers just make nice hats.
(Edited by tj333 on 08-09-2005 05:21)
(Edited by tj333 on 08-09-2005 05:27)
|