This looks weird when ships fire from a position that's not on an edge. I noticed this with Dwarg Masters. They should be consistent, probably underneath because you're trying to hide the fact that shots appear fully formed rather than emerging from the ship. (The ideal solution to that would be to mask the shot so that only a fraction of it equal to the distance it's traveled divided by its length is shown, but that might cause a performance hit.)

george moromisato on 2/26/2015 1:23 AM:

You're exactly right about the reason. I need to mask it out somehow, but that's not super easy right now.

However, a subset of effects (like the beams) handle this issue correctly, so perhaps I can at least show these on top.

nms on 2/26/2015 4:30 AM:

I'm not a graphics expert, but I guess the procedure would be something like this:

- Spawn all shots with the forward-most visible point (tip) at the firing point.
- For each shot, check if the distance it's traveled is greater than the length of the visible part of the shot. You could use speed x age or just keep track for shots that aren't constant speed.
- If it's not, create a mask of the same size as the regular mask by drawing a line normal to the direction of travel and a distance rearward of the tip equal to the distance traveled. Fill in the part forward of the line 'white', then AND it with the regular mask.

I can see how that might be too much work both for the programmer and for some computers (adding a check to each shot every frame might be the worst part). I'd settle for the "muzzle flash" effects being consistent with the weapon shots, either for everything or on a per weapon or per ship basis.