When firing at a stationary or very slow moving mech, where your crosshairs will actually be aimed at the mech, this system works perfectly. However, due to the relatively slow speed of the ballistic projectiles in the game, shooting at any target that has lateral velocity in relation to you (moving from left to right or right to left on your screen) requires you to lead the target, so that your crosshairs are no longer on the mech that you are trying to shoot at. Deflection shooting isn't all that hard to wrap your head around, but in actual combat conditions where you are actively maneuvering and being fired on, calculating the necessary lead distance from moment to moment can be tricky. That's fine, except for that, with the current system, as soon as your arm crosshairs (well, fine, circle) slips off of the target mech, your point of convergence is now somewhere between the target and infinity. So instead of your projectile being fired at the angle required to intersect the point in space in the same plane as the target mech, but a little in front (to the left or right of) it, the projectile is fired to hit a rock, tree, or patch of sky in the background.
It means that, for players using mechs with arm mounted projectile weapons, in addition to having to calculate lead distance for your shots, you also have to unfocus on your target and estimate where your convergence point is in the distance to predict the trajectory of your shot. Doing both of these things at once, while maneuvering and being shot at is a giant chore, and it isn't necessary. Furthermore, it penalizes people who use arm-mounted projectile weapons.
I know this has been brought up before, and shot down, but it is an issue that continually frustrates me and plenty of other players, many of whom probably don't even realize what it is that makes these shots so difficult. So, since the squeaky wheel gets fixes first, here is a possible algorithm for choosing between different points of convergence that would work well in actual mech combat.
TL;DR
All fixing this problem requires is to switch between different points of convergence when some conditions are met. The priority would be to keep the point of convergence in the plane of the user's field of vision, with the distance the same as the distance to their current target, if they have one. If the player has a target locked, then their convergence should stay at that distance, until they point their crosshairs (or circle rather) at another enemy mech.
If the user does not have a target locked, then the old system should apply, using the first object intersection as the point of convergence, until the user points their crosshairs (or circle rather) at an enemy mech. This should cause the convergence plane to lock on the distance to that enemy, until either the enemy leaves the player's field of view or the player places their circle on a new target mech. This system would take advantage of player behavior to intelligently guess the convergence point that would be most helpful to them, and would not require any more calculation than the previous system. Instead of running a constant ray trace to see how far the first intersected object is, convergence would be determined by enemy distance, which is always being calculated anyways regardless. Also, it would allow 'smart' convergence even if the player had no target, or if they temporarily wanted to shoot at another target, so long as they first touched the target with their circle hairs. Think about it, it's an easy fix, easy algorithm, and it would make a world of difference, especially to all the poor ******** driving dragons out there.
Edited by Postumus, 19 March 2013 - 05:56 PM.