One drawback of 2D games is that only so much around your player can be visible at any one time. For most shoot'em-ups this is no problem, the game is designed around this and the player needs only be concerned with enemies that are on the screen.
This is not the case in a modern 2D flight sim however. In a fast moving large gameworld, the player may want to know that another plane is approaching in the distance, but how to show this on the screen?
Some previous 2DFSs have zoomed the camera out, so the on-screen objects are tiny, but I dont think this fully addresses the problem, and the graphics end up very tiny, and frankly basic looking.
Originally I had a system in my game where distant objects were drawn at the edge of the screen, semi-transparent & scaled to represent the distance. E.g. When a plane was approaching the player, it would remain at the edge of the screen, and grow bigger. Then when the plane was close enough to appear on screen, it would simply transfer from semi-transparent to opaque.
Here is what this looked like:
This system seemed to work reasonably well, but has one very big drawback - it uses the edge of the screen, and the XNA XBox guidelines
suggest you only use the inner 80% of the screen to show important information. This rule is designed to protect XBox users who may be using old TVs that dont display the entire picture. Well I'd like to release my game on the XBox if possible, so I had to come up with another way to represent distant objects.
My current solution, which I think works quite well, is similar to the above, except instead of displaying the distant objects at the edge of the screen, I arrange them in a ring around the player. A circle graphic is used to denote a 'long distance' ring, and I even have a gunsight in this ring, so when the gunsight appears over the object, the plane is flying directly at it (which doesnt necessarily mean a direct hit if you pull the trigger, you've got to lead the target).
A picture is worth a thousand words.:
My major worry is that it is not at all intuitive. Time will tell wether I get used to it, but does that mean anyone else will like it? Another thought is that it will get in the way of other objects actually on the screen. So far this proves to not be the case, there is never that much on the screen at one as it turns out. This may change as I develop the game though, only time will tell for sure I guess.
The good side is - I am fully aware of objects around me as I fly. The gunsight is a nice feature that adds to the aiming aspect of dogfighting. I plan on a bombsight too, allowing the player to drop bombs with a degree of accuracy. I believe this system could be extended in some way to represent a radar too.
I'm looking on ways to improve this idea, and make it more intuitive - any ideas?