Graf Zahl wrote:Absolutely. While you are at it, how about WAF_NOGHOST?
Sure, what would it do? Remove the ghost check or remove damage for ghosts?
Enjay wrote:I note that this attack means that the target will be hit even if other actors are standing in the way. If a check to see if actors are in the way is being made (I'm not sure that it is)
The reason the target is hit even if other actors are in the way is because there are no such checks at all.
The normal hitscan functions work like this:
1. Verify that there is line of sight. (This only checks level geometry, actors never block line of sight.)
2. Compute horizontal angle between shooter and target.
3. Optionally add some random deviation to angle.
4. Trace line along that path.
5. Hit the first shootable actor that is met along the line.
The Wolf hitscan function works like this:
1. Verify that there is line of sight. (This only checks level geometry, actors never block line of sight.)
2. Compute distance between shooter and target.
3. Compute probability of hit depending on distance and other factors.
4. Compute damage depending on distance.
5. Damage target.
Doom is therefore a lot more "realistic" (as far as realism can be applied to faster-than-light attacks...) since the bullets are actually projected; whereas Wolf merely rolls to hit. There are a couple of niceties in the Wolf function, though, like the "dodge" effect (enemies are less likely to hit you if you see them, to simulate you seeing they aim and trying to move out of their crosshair) and the enemies having a harder time aiming you when you're moving fast. And a downside of Doom's approach is that, since it's exclusively 2D, a flying cacodemon can "intercept" a bullet from a zombie that had a clear shot at you.
[quote="Graf Zahl"]Absolutely. While you are at it, how about WAF_NOGHOST?[/quote]
Sure, what would it do? Remove the ghost check or remove damage for ghosts?
[quote="Enjay"]I note that this attack means that the target will be hit even if other actors are standing in the way. If a check to see if actors are in the way is being made (I'm not sure that it is)[/quote]
The reason the target is hit even if other actors are in the way is because there are no such checks at all.
The normal hitscan functions work like this:
1. Verify that there is line of sight. (This only checks level geometry, actors never block line of sight.)
2. Compute horizontal angle between shooter and target.
3. Optionally add some random deviation to angle.
4. Trace line along that path.
5. Hit the first shootable actor that is met along the line.
The Wolf hitscan function works like this:
1. Verify that there is line of sight. (This only checks level geometry, actors never block line of sight.)
2. Compute distance between shooter and target.
3. Compute probability of hit depending on distance and other factors.
4. Compute damage depending on distance.
5. Damage target.
Doom is therefore a lot more "realistic" (as far as realism can be applied to faster-than-light attacks...) since the bullets are actually projected; whereas Wolf merely rolls to hit. There are a couple of niceties in the Wolf function, though, like the "dodge" effect (enemies are less likely to hit you if you see them, to simulate you seeing they aim and trying to move out of their crosshair) and the enemies having a harder time aiming you when you're moving fast. And a downside of Doom's approach is that, since it's exclusively 2D, a flying cacodemon can "intercept" a bullet from a zombie that had a clear shot at you.