Fair enough, a bigger problem than I thought. I'd still be interested in helping, what's the best way of communicating? IRC?
I don't really do IM or IRC, never really have the time. PM here is generally the best way to get me, and then something can be setup if needed.
From my viewpoint it seemed to at least half work at widescreen resolutions? Will the viewport culling be partially broken when I'm running like that?
All of the positioning and culling is based on the old software code, which assumed a 4:3 screen ratio. Well, I take that back, it's not the screen ratio itself that's the problem, it is that it's based on an orthographic view. The 3D elements in the game use a projection view, the 2D elements use an orthographic view, and that doesn't work out in the least when you need to get the two separate elements to line up. This is the main problem, and it affects you whether you use a widescreen resolution or not. The real difference is that with a widescreen resolution the problems are just more obvious, but widescreen doesn't actually
cause the problem.
It's easy to notice the positioning of the targeting brackets being off, and the culling is the same way since it's all based on the same stuff. If you run a widescreen resolution then the game will either not render things that it should, or render things that it shouldn't. In the first case, it's most obvious with the death screen (even on 4:3), since many ships/weapons just disappear strangely before they hit the edge of the screen. You don't really see the second case, but it causes a performance issue since it wastes time trying to render things that you will never see.
Most people who look at the widescreen issue just think that changing the interface graphics to not stretch out will fix it, but that has absolutely nothing to do with the problem. It can't be done with the HUD anyway, unless you rewrite most of that code.
The basic fix is to restructure the frame rendering code to keep 2D and 3D completely separate, but only when they are not related. The 2D elements on the HUD, for instance, are rendered after the all of the 3D view setup is gone, which means that you will never be able to get the brackets and ships to line up since you can't really figure out where they were on the screen (unless you are REALLY good at math that is). So this not only affects the basic HUD look itself, but it affects performance too since it's constantly switching between 2D and 3D rendering modes during the same frame, and it shouldn't. The HUD needs to be treated as a 3D element just like the rest of the view is, and that takes a bit of work to get situated. Unfortunately that's not even the best/proper fix, but the better fix would basically require rewriting a large portion of the code, which is why I ended up settling for this option instead.
