I agree that there must be better ways than multiplying all numbers by some power of ten but the variety of damage increases with larger numbers, I think. See, if in the system the original poster proposes the damage ranges from 2 to 6, it still has to be an integer (I don''t think anyone wants to start tallying damage in floating-point). Now if that damage can be between 200 and 600, the randomness of the damage calculations becomes a little more apparent. It just seems to me like a nice way of taking advantage of such a powerful (pseudo-)random number generator. I think that well-seeded pseudo-random number generation algorithms far outdo dice in creating randomness in damage calculations (if you reseed them often enough, that is).
Also, IMHO capping the maximum damage is as much about aesthetics (sp?) as it is about actually crunching the numbers. Four digit numbers fit well on a screen... as do five digit numbers to an extent (I''m thinking of breaking the damage limit from FFX and FFX-2) but once there are more digits than that I think the display of the number might detract from the rest of the action.
Combat System for an RPG
Over the centuries, mankind has tried many ways of combating the forces of evil...prayer,fasting, good works and so on. Up until Doom, no one seemed to have thought about thedouble-barrel shotgun. Eat leaden death, demon... -- Terry Pratchett
quote: Original post by Saiyanoflibertyquote: Oh my aren''t you impatient.. you waited for a response for less than two hours and got tired of waiting?
sorry, im used to faster forums, i''ll get used to this forum eventually
Tought so
quote:quote: **Comment:You probably noticed the formula makes the attacker''s streght more important than the weapon, I mean, having streght = 2 and weapon = 1 is better than streght = 1 and weapon = 2
Actually, i just realized that it makes them equal, because both strength and weapon are being multiplied and then divided by constitution,
It wasn''t that confusing but I would have been a lot better if he wrote it as a formula. Also, he says that:
Damage = (AttackerStreght/DefenderConstitution * Weapon) + (rand(1 to AttackerStreght))
The part where he adds the random is what makes the Streght more valuable. It was sayd that "This number will be added onto a random number generated between 1 and the attackers strength.", this number being the part of the formula before the plus.
quote:
the way my friend described it made it confusing and I just used his words, but in the eqn, strength and weapon are equal, which still doesn''t make sense, the weapon is more important than the wielder, it seems, and we are trying to fix it, what would you suggest?
If you want the weapon to be more important than the wielder, then you just have to use the weapon after the plus instead of the streght. So the formula would be:
Damage = (AttackerStreght/DefenderConstitution * Weapon) + (rand(1 to Weapon))
quote:quote: **Comment: I didn''t quite understood this part. I mean, in the battlefield, are there trees ,cliffs or bushes? If so, which advantage or disadvantage would them give? If you can act based on what is around you, what advantages and disadvantages would that give? For example I could cover behind a bush but I would have to get out for some or all attacks to work, because you can''t just attack as if the bush wasn''t in the middle!
While climbing up trees and hiding behind bushes won''t do much for melee combat, it will give an advantage to ranged combat, also, climbing up trees will give an advantage to melee, for jumping attacks, a strike from the air of sorts. You can take advantage of the environment in this game, but prolly the most the environment will have is cornering an oppenent. When cornered, the opponent will lose some dexterity bonus, because its harder to dodge with in enclosed areas.
-are you going to be able to control more than one character? How many? How many characters do you have at the start of the game?
**You will have access to multiple characters
-How much hard do you want the game to be from 0 to 10(1 being you do nothing right and you still beat the game and 10 you have to do EVERYTHING right)?
**aiming for a 7-8ish
-Which kind of items are you planning to have in the game? How would you get them? How big is the inventory?
**healing items, probably some kind of special ammunition for ranged characters, status improvments, etc
-Are you going to fight inside a different place that the one you walk?(You know, like final fantasy or Breath of Fire does that when you fight there comes a battle transition and you are in a battlefield now)
**the map in which you walk will become the battlefield when a battle sequence ensues. so ur walking along and enemy ambushes you and instead of going to a separate map, like most rpgs, you stay on the field, kinda like chrono trigger
It looks like you still have a rough idea of what you want to do. I mean, like when you say "healing items, probably some kind of special ammunition for ranged characters, status improvments, etc", do you know which healing items you will have already?
Altought it''s complex to say everything but anyways, just because I have the impression you haven''t designed everything. I mean you should design every little detail about the game BEFORE coding, but prolly it''s not what the big ones do sometimes(I think they prolly design, but just not every detail, we don''t live in a perfect world ).
The problem with not knowing every detail is that if you add something after you carefully balanced the game, you need to check if there is still balance, otherwise the players could discover a "trick" to gain some advantage he wasn''t meant to get. The one I''m going to give is a cheap example but:
Let''s say that in some game there is a boss that avoids being in front of you because your main attack just hits that area so he gets away from it so you have to find another way of attacking the boss. If the boss was planned to keep away from the player at all times, and at the last minute someone suggested to make him to come near you in just one situation in which being far from you isn''t good. Then when the player finds the boss, finds the way to make him come closer and is able to take him down easier that expected, because the designers forgot to check that after he got closer and got the advantage, when it was a disadvantage again he should get away. It may sound like the designer''s were stupid but when you have to check a whole game, you have so many things in mind and it gets complicated. So it''s just a away to try to mess up less.
As I said it is a lame example, but I''m tired and sleepy, and this post is prolly hard to read also
Btw to all readers, if I screwed up with the quotes pardon me... I think that now a preview post feature would be good for gamedev
Thanx a lot for the help!
We don''t have any items as of yet, because we are just werking on the developing the engine.
that would make weapon power too strong, so how about we opt to remove the weapon power from the first part of the eqn and make the eqn like this...
Damage = (Str/Con) + (rand((.75 * weapon power) to weapon power)
...but that seems too close to DnD mechanics, which seemed heavily relied upon the weapon for damage. As you can see that makes the weapon power the the major stat for damage, however, im trying to find an equal balance between Str and weapon power, because ideally in my mind they are equal or 55/45 with the advantage on weapon power. Hmmmm this is going to require a lot of thought, any ideas?
O and to address the larger numbers issue, its not really a problem for us, we''re just used to smaller numbers for rpgs(the major one being DnD), maybe later if it doesn''t disrupt the system too much we could make the numbers larger.
We don''t have any items as of yet, because we are just werking on the developing the engine.
quote: If you want the weapon to be more important than the wielder, then you just have to use the weapon after the plus instead of the streght. So the formula would be:
Damage = (AttackerStreght/DefenderConstitution * Weapon) + (rand(1 to Weapon))
that would make weapon power too strong, so how about we opt to remove the weapon power from the first part of the eqn and make the eqn like this...
Damage = (Str/Con) + (rand((.75 * weapon power) to weapon power)
...but that seems too close to DnD mechanics, which seemed heavily relied upon the weapon for damage. As you can see that makes the weapon power the the major stat for damage, however, im trying to find an equal balance between Str and weapon power, because ideally in my mind they are equal or 55/45 with the advantage on weapon power. Hmmmm this is going to require a lot of thought, any ideas?
O and to address the larger numbers issue, its not really a problem for us, we''re just used to smaller numbers for rpgs(the major one being DnD), maybe later if it doesn''t disrupt the system too much we could make the numbers larger.
quote: Original post by Saiyanofliberty
Thanx a lot for the help!
We don''t have any items as of yet, because we are just werking on the developing the engine.
Design first! Design first! Did you designed the engine? Already? Did you started the coding of the engine?
quote:quote: If you want the weapon to be more important than the wielder, then you just have to use the weapon after the plus instead of the streght. So the formula would be:
Damage = (AttackerStreght/DefenderConstitution * Weapon) + (rand(1 to Weapon))
that would make weapon power too strong, so how about we opt to remove the weapon power from the first part of the eqn and make the eqn like this...
Damage = (Str/Con) + (rand((.75 * weapon power) to weapon power)
...but that seems too close to DnD mechanics,
It doesn''t matters if it looks like anyother game mechanics, the point is that it works but anyways, your formula seems good to me, if you like it like that.
quote:
which seemed heavily relied upon the weapon for damage. As you can see that makes the weapon power the the major stat for damage, however, im trying to find an equal balance between Str and weapon power, because ideally in my mind they are equal or 55/45 with the advantage on weapon power. Hmmmm this is going to require a lot of thought, any ideas?
O and to address the larger numbers issue, its not really a problem for us, we''re just used to smaller numbers for rpgs(the major one being DnD), maybe later if it doesn''t disrupt the system too much we could make the numbers larger.
The thing about your battle system is, if you don''t want it to be boring you should make the player think what he should do, not just always knowing which attack he should use, and it''s specially boring if it''s always the same attack (prolly the strongest attack your player has). However I see two points in the system that helps thinking, and they are that you can only use the items you have(the smaller you make the capacity of a character to carry items the harder for the player obviously), and that you can hide behing bushes and stuff. However the bushes part gets boring too if you have a long range character and every time there is a bush you know that he should hide behind it.
You should make that game in a way that every move the player does could be bad in some situation, and that the situation shows more or less frequently.
I have a question. Which parts of your game have you designed? If you have a cool idea for the game don''t just tell someone else about it. Write it down! Because usually(or at least me) you don''t remember the cool idea exactly the way you tought about it at first.
Also, here are gamedev in the articles and resources seccion there is excelent help for newbies in the design deparment.
I think i found a damage eqn that works. It places equal importance upon strength and weapon power.
Damage = (random(.75*str, str) * random(.75*wp, wp))/ con
it makes str and wp equal, and is proving to be balancing through some tests.
and for making use of the environment, there will be of course disadvantages. Like hiding in a tree shooting at enemies, you lose dex bonus because the tree makes it hard to shoot through. Or cornering an opponent, its gonna take time, because any competent swordsman knows how to avoid being cornered, but cornering an opponent is a huge advantage, so that kind of offsets it.
Damage = (random(.75*str, str) * random(.75*wp, wp))/ con
it makes str and wp equal, and is proving to be balancing through some tests.
and for making use of the environment, there will be of course disadvantages. Like hiding in a tree shooting at enemies, you lose dex bonus because the tree makes it hard to shoot through. Or cornering an opponent, its gonna take time, because any competent swordsman knows how to avoid being cornered, but cornering an opponent is a huge advantage, so that kind of offsets it.
Learn Math. Or at least learn how to properly desing this. There is somewhere book about probabilities, so download it.
So first engine, then design, then redesign the engine? Your choice.
I''d just give you a little question let say you need a random number from 1 to 45. Random generator would give you 32 bit number. What bits would you use? And what equations?
Java has proven, but just a linear c generator. For majority of APLICATIONS it works fine. Do you know what should you do with it? Results from equation: Rand().nextInt()+Rand().nextInt()+Rand().nextInt() migh look weird.
Have you played Crawl? Looked at a source code? Have you listened about Kanga.nu? Look at archives they could be helpfull.
That last equation had two Rand calls in succesion. Would you care to explain why didn''t you use 3/4*str to str+(1/4*str) instead? It''s possible that you need to imagine what happens when you do that equation. So it seems that someone would attack and the second parry, but wait. How parry? With what? Would parry decreasse damage if partialy unsucessfull?
He would be still alive before the second would finish cornering? O_O Wow. You need a little experience with actual combat. Also I hope you didn''t mean that example with the tree literaly. Trought? Not around? It would be nice example of a blindfight, probably also deaf fight. ~_^
So first engine, then design, then redesign the engine? Your choice.
I''d just give you a little question let say you need a random number from 1 to 45. Random generator would give you 32 bit number. What bits would you use? And what equations?
Java has proven, but just a linear c generator. For majority of APLICATIONS it works fine. Do you know what should you do with it? Results from equation: Rand().nextInt()+Rand().nextInt()+Rand().nextInt() migh look weird.
Have you played Crawl? Looked at a source code? Have you listened about Kanga.nu? Look at archives they could be helpfull.
That last equation had two Rand calls in succesion. Would you care to explain why didn''t you use 3/4*str to str+(1/4*str) instead? It''s possible that you need to imagine what happens when you do that equation. So it seems that someone would attack and the second parry, but wait. How parry? With what? Would parry decreasse damage if partialy unsucessfull?
He would be still alive before the second would finish cornering? O_O Wow. You need a little experience with actual combat. Also I hope you didn''t mean that example with the tree literaly. Trought? Not around? It would be nice example of a blindfight, probably also deaf fight. ~_^
something that might help is to write small programs to test your formulas. just little apps that you program with your equation, and let you type in the stats of the two combatants (and their levels, weapons, or whatever other variables you want to test)... then have it calculate a million attacks/fights between the two, and spit out some percentages for you. when you find something you like, you found a good balanced formula.
--- krez ([email="krez_AT_optonline_DOT_net"]krez_AT_optonline_DOT_net[/email])
quote: Learn Math. Or at least learn how to properly desing this. There is somewhere book about probabilities, so download it.
So first engine, then design, then redesign the engine? Your choice.
1) thats pretty harsh
2) when trying to balance everything, you have to start somewhere, because everything has to fit into each other. If I started designing the items first with out any idea of how they would fit into combat or any numbers to judge wats good and whats not. Like DnD for example, the designers built the engine and then all the modules and stuff that fit with it.
quote: That last equation had two Rand calls in succesion. Would you care to explain why didn''t you use 3/4*str to str+(1/4*str) instead? It''s possible that you need to imagine what happens when you do that equation. So it seems that someone would attack and the second parry, but wait. How parry? With what? Would parry decreasse damage if partialy unsucessfull? [/quote
1) .75*str to 1.25*str won''t work for damage because it doesn''t account for the weapon involved. The reason I chose my eqn(which is still subject to change with constructive criticism) is because it makes the users strength and his weapon equal in determining damage
2)Stuff like parry will be included as special skills(not special attacks)quote: He would be still alive before the second would finish cornering? O_O Wow. You need a little experience with actual combat. Also I hope you didn''t mean that example with the tree literaly. Trought? Not around? It would be nice example of a blindfight, probably also deaf fight. ~_^
1)I suspect trought = through
2)When in a tree, you don''t have the freedom of motion or balance that you have when on flat ground, so it seems to be represented accurately with a loss of dex.
-I think I may have come off as offensive or harsh, but I really don''t mean it.
O and thanks krez for the idea about making a little aplication to calculate things to test the balance.
Take my apology if this was too harsh, I tried to be straight and clear.
While it might be true that for some people it could be easier to start from a choosen/given poin, you look too concetrated on just a one equation.
You however didn''t answered my question about 32 bit number conversion.
(random( .75*str to 1.25*str) * random( .75*we to 1.25*we))/ con
(random(.75*str, str) * random(.75*wp, wp))/ con
(random(.25*str, str) * random(.25*wp, wp))/ con
(random(-.75*str, str) * random(-.75*wp, wp))/ con min result 0
What is better? And why?
Krez advice was nice. It''s the first thing that is done when someone tries to do this.
And then included in engine v2. Alas amount of special cases would grow, and after while it would become unmaintainable. However parry is quite common part of the combat. Translated it might be bad idea to throw it away from main calculation.
ADnD history is certainly very interesting, especialy when it comes to part who copied from whom. Also word like drow could fly around nicely. It should be noted that ADnD went throught several years of testing, so major inconsistences have been removed, or become part of tradition.
However, 3.0 and 3.5 shows that it could be hard to do it right even with experience. To name just few problems... Dispell.
Back on topic. Sometimes rules in ADnD were created just from experience, or becose they felt good. Sometimes apeared just from necessity. Advice could be."try to do as much different test with different proposals as possible"
When ON the tree, you could fire aprox as well as standing on the ground. Dodging is the problem. Persons hiden IN the tree are pretty much dead.
While it might be true that for some people it could be easier to start from a choosen/given poin, you look too concetrated on just a one equation.
You however didn''t answered my question about 32 bit number conversion.
quote:
1) .75*str to 1.25*str won''t work for damage because it doesn''t account for the weapon involved. The reason I chose my eqn(which is still subject to change with constructive criticism) is because it makes the users strength and his weapon equal in determining damage
(random( .75*str to 1.25*str) * random( .75*we to 1.25*we))/ con
(random(.75*str, str) * random(.75*wp, wp))/ con
(random(.25*str, str) * random(.25*wp, wp))/ con
(random(-.75*str, str) * random(-.75*wp, wp))/ con min result 0
What is better? And why?
Krez advice was nice. It''s the first thing that is done when someone tries to do this.
quote:
2)Stuff like parry will be included as special skills(not special attacks)
And then included in engine v2. Alas amount of special cases would grow, and after while it would become unmaintainable. However parry is quite common part of the combat. Translated it might be bad idea to throw it away from main calculation.
ADnD history is certainly very interesting, especialy when it comes to part who copied from whom. Also word like drow could fly around nicely. It should be noted that ADnD went throught several years of testing, so major inconsistences have been removed, or become part of tradition.
However, 3.0 and 3.5 shows that it could be hard to do it right even with experience. To name just few problems... Dispell.
Back on topic. Sometimes rules in ADnD were created just from experience, or becose they felt good. Sometimes apeared just from necessity. Advice could be."try to do as much different test with different proposals as possible"
quote:
2)When in a tree, you don''t have the freedom of motion or balance that you have when on flat ground, so it seems to be represented accurately with a loss of dex.
When ON the tree, you could fire aprox as well as standing on the ground. Dodging is the problem. Persons hiden IN the tree are pretty much dead.
What I mean about the thing with design was, just don''t start coding before designing. You can start to design the part you are now focused at, but until you design all the parts of the engine, and you are sure they work well don''t start to code.
And about Raghar being harsh, I don''t think that was really being harsh, it''s not like he insulted you or something He just said things the way he tought, so don''t think that he is an asshole just because of that.
And about Raghar being harsh, I don''t think that was really being harsh, it''s not like he insulted you or something He just said things the way he tought, so don''t think that he is an asshole just because of that.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement
Recommended Tutorials
Advertisement