Opened 13 years ago
Last modified 3 years ago
#1011 new defect
Projectiles have no actual collision detection
Reported by: | Aritra Chakraborty | Owned by: | |
---|---|---|---|
Priority: | Nice to Have | Milestone: | Backlog |
Component: | Core engine | Keywords: | |
Cc: | Patch: |
Description (last modified by )
Projectiles are purely graphical (and are indeed Local entities) and do not perform actual collision detection. This means they go through all obstructions on the way to their target, and also cannot hit "behind" the target if that is missed in a flat trajectory, requiring hacks such as the "linear splash" damage for bolt shooters.
The actual "hit" is handled via timers and DelayedDamage, completely irrespective of what the projectile is doing. There is primitive collision detection there (see #5964).
Relates to #5965 also.
Change History (5)
follow-up: 3 comment:1 by , 13 years ago
comment:2 by , 13 years ago
Priority: | Should Have → Nice to Have |
---|
comment:3 by , 13 years ago
Milestone: | Alpha 9 → Backlog |
---|
Replying to feneur:
I'm pretty sure this is intentional, the amount of work needed to get this working is higher than the relatively low level of additional realism.
Yeah, I don't see this changing any time soon, but I wouldn't mind seeing a better accuracy calculation for ranged units based on distance, possibly visual obstructions, and other factors.
comment:4 by , 12 years ago
It was discussed in IRC yesterday, that instead of arbitrary entities blocking a projectile (requiring messy slow collision detection), we could just make this a visual effect. Projectiles would have their initial angle set according to calculated static obstruction heights between them and the target. The accuracy and timing would be unaffected. I don't know if we'll do this for all structures, but at least walls was suggested.
comment:5 by , 3 years ago
Description: | modified (diff) |
---|---|
Summary: | Projectiles pass through structures → Projectiles have no actual collision detection |
I'm pretty sure this is intentional, the amount of work needed to get this working is higher than the relatively low level of additional realism.