[COMPLETED 0.78.0] Weapons Innacuracy
Posted: Wed Oct 26, 2005 2:51 pm
Ok not to harp or anything but this is a major feature lacking that to me seems like one of the easier features to be implemented. I could be wrong as I am no programmer but I would think it would basically involve giving the gun firing code a random rotation variable. Or even better a progressive random rotation variable. That is able to be called from the Weapon.ini
I think I've also realized that programmers don't like vague ideas on things. Like "I want X!" So here is what I believe we need to have a truly fully functional weapons system in RF.
We need something like 3 new values in the weapon.ini
Something along the lines of...
Saccuracy = X
Eaccurcy = Y
ProjNumber = Z
The first one stands for starting accuracy. Which for example set to "0.0" would be a laer gun like we have now. The second one is the ending accuracy or the maximum amount of innacuracy. The third is to tell it how many projectiles to fire each shot.
I'm not sure what the weapons code looks like but basically it needs to generate a random angle offset progessively starting with the Saccuracy and progressing to the Eaccuracy.
Perhaps a fourth variable is need to tell it the size of the progression. So lets say it looks like this...
Saccuracy = 0.0
Eaccuracy = 2.4
Progression = 0.4
ProjNumber = 1
So the code will start with an offset of "0.0" and then on the next loop it will be 0.0 + 0.4 + random rotation. So it will angle the projectile 0.4 degree's and then apply a random rotation out of 360 degree's. Sort of like offsetting the firebone at and angle along the Y plane and then applying a random amount of rotation along the Z plane. I hope that makes sense.
So basically as long as the trigger is being held down. Each loop will be the previous Saccuracy + Progression. Untill that is equal to or greater than the Eaccuracy. At which point the angle offset will stay 2.4 with a random rotation of the firebone along the Z plane. Relative to the bone of course.
So for a shotgun it may be...
Saccuracy = 2.4
Eaccuracy = 2.4
Progression = 0.0
ProjNumber = 8
Which should tell it to fire 8 projectiles with an angle offset of 2.4 degree's and a random Z rotation of the firebone for each projectile.
Or perhaps the shotgun needs it's own segment of code since having more than 1 projectile could complicate things too much.
This will be far from Rainbow 6 innacauracy. However it will still allow for decent and simple weapon innacuracy setup.
Which plays a huge role in game balance. Which is the player needing to decide to use the right weapons in the right situation.
He should not be sniping people with a chaingun, or an uzi for that matter.
I don't know if this helps any or not. And I know the programmers are always and already busy with other tasks. However to me a fundamental element should take at least some priority.
This is not just for me either as it will benefit anyone creating a game in RF that does not involve swinging a sword or throwing spells. Heck RF guns are more accurate than laser guns in other games. Fact is if it's a gun and it shoots. Whether your working on a Rainbow Siz type of shooter or a Quake type of shooter. It's just a necessary feature.
I'm not trying to tell anyone to drop what they're doing. Just consider it for your next task when your done with what you are currently working on.
I think I've also realized that programmers don't like vague ideas on things. Like "I want X!" So here is what I believe we need to have a truly fully functional weapons system in RF.
We need something like 3 new values in the weapon.ini
Something along the lines of...
Saccuracy = X
Eaccurcy = Y
ProjNumber = Z
The first one stands for starting accuracy. Which for example set to "0.0" would be a laer gun like we have now. The second one is the ending accuracy or the maximum amount of innacuracy. The third is to tell it how many projectiles to fire each shot.
I'm not sure what the weapons code looks like but basically it needs to generate a random angle offset progessively starting with the Saccuracy and progressing to the Eaccuracy.
Perhaps a fourth variable is need to tell it the size of the progression. So lets say it looks like this...
Saccuracy = 0.0
Eaccuracy = 2.4
Progression = 0.4
ProjNumber = 1
So the code will start with an offset of "0.0" and then on the next loop it will be 0.0 + 0.4 + random rotation. So it will angle the projectile 0.4 degree's and then apply a random rotation out of 360 degree's. Sort of like offsetting the firebone at and angle along the Y plane and then applying a random amount of rotation along the Z plane. I hope that makes sense.
So basically as long as the trigger is being held down. Each loop will be the previous Saccuracy + Progression. Untill that is equal to or greater than the Eaccuracy. At which point the angle offset will stay 2.4 with a random rotation of the firebone along the Z plane. Relative to the bone of course.
So for a shotgun it may be...
Saccuracy = 2.4
Eaccuracy = 2.4
Progression = 0.0
ProjNumber = 8
Which should tell it to fire 8 projectiles with an angle offset of 2.4 degree's and a random Z rotation of the firebone for each projectile.
Or perhaps the shotgun needs it's own segment of code since having more than 1 projectile could complicate things too much.
This will be far from Rainbow 6 innacauracy. However it will still allow for decent and simple weapon innacuracy setup.
Which plays a huge role in game balance. Which is the player needing to decide to use the right weapons in the right situation.
He should not be sniping people with a chaingun, or an uzi for that matter.
I don't know if this helps any or not. And I know the programmers are always and already busy with other tasks. However to me a fundamental element should take at least some priority.
This is not just for me either as it will benefit anyone creating a game in RF that does not involve swinging a sword or throwing spells. Heck RF guns are more accurate than laser guns in other games. Fact is if it's a gun and it shoots. Whether your working on a Rainbow Siz type of shooter or a Quake type of shooter. It's just a necessary feature.
I'm not trying to tell anyone to drop what they're doing. Just consider it for your next task when your done with what you are currently working on.