An open source XNA 4.0 Game called TIE Fighter Forever, inspired by the original TIE Fighter game.
Please read the LICENCE file, before reading this so that you do not stole any ideas from me :-)
I've decided to release this work of mine to the public as it seems I rarery touch it now but people might get interested... Historical note: I'm only doing this now as a girl friend of mine asked me to do some I-never-did-it little changes to the code so that the demo game becomes more enjoyable, but I got the idea of "oh... why not make this open to public?" so read on ;-)
This is a game written in C# using the XNA 4.0 framework for my BSc thesis theme. I had big plans with this game, like adding a big tactical map somewhat resembling a part of the "real" star wars universe (see the Essential Atlas maps for example) where you can build your fleet of capital and smaller ships and make tactical moves in a wing commander armada-like fashion.
The battles would be after that automatically generated: The ships and they position/orientation, the old TIE-Fighter-like primary and secondary objectives, and even issued commands towards you and othere ships by the strategist AI that you should go to that point in space shooting down all missles in your cubic space you are in (effectively shielding a capital ship against torpedoes) etc.
So the main idea was that in start of a battle scene, the objectives would be generated, but there are also these changing little quests for which you will see a yellow arrow about current targets if you accept an arising "quest" (in the above case you will see a yellow arrow towards the cubic space around the ship to defend, if you comes there, automatically you get targets for incoming torpedoes).
More about "Centrality": http://starwars.wikia.com/wiki/Centrality
There was an idea that you could go with several kind of characters in battle-mode: 1.) You could pilot unnamed pilots and kind of switch to an other already engaded fighter when you die. You can choose the craft you want before start or after you die one craft. 2.) You could pilot with Priest: in this case you will have a special dark-prophet skill that is like an extra hud and extra quest interface. Game should generate quests for disabling ships to board, finding special cargo and so on. Also you might get some battle benefits by providing the player much more information than usual.
Other ideas: Different starships would not only get different weapons like in other games, but even they should be differently controlled, should have different targeting computers and semantically different hud. So the hud is not only different by having this and that at another places, but for example a TIE hud can have the standard tie/xwing radar half spheres in the top corners that show what is behind you and before you, while some centrality ships might have a radar on the center of the bottom of the hud like in ELITE games (just start elite or oolite to see what I'm talking about). Also some primitive ships might even have only 2 dimensional radar where you cannot know how much above is an object.
I had the idea of beautifully glowing laserfire. We do have it!
We have normal mapping, environment mapping, particle system for explosions....
We have a nicely done collision engine: There are collision classes like big ships, small ships and bullets. Small ships collide with small ships with fast collisions by thinking about the ship as a sphere, small ships collide with big ones by having a pre-compiled octree data structure and per-triangle collision (it is pretty fast as it only computes the fighter's collision against the triangles of the big ship in octree nodes the fighter is in - this even works if the big ship moves or changes orientation as it is all done translated to that coordinate system.
Also there are methods for bullets hitting big and small ships. The bullets are entities on they own so you can friendly fire easily.
big ships never collide with big ships!
TODO: I've planned to include a dynamic octree for collisions between fighters and between lasers and fighters. I think I can implement this and after that there can be no 50s-100s of fighters but maybe thousands!
The collision engine really lies many times and unreal, however I wanted speed there not precisity. For the given cases the models are "precise enough" for having fun while playing. Even old TIE and XWING was not physically correct never, but they anyways had the simulation feeling so I wanted to have the same for my game ;-)
The game was developed by having X-BOX in mind, however I do not know how much of this is lost. I think it can be made compatible even now.
Also the game not only scales well, but in the current demo state it runs well on my laptop where I did started to develop this back in 2008-2009: An ASUS with a single-core (!) 1.6Ghz processor, having an 256Mb video card that uses my system ram, 896MB of system ram (I think even 512Mb is enough!) and has shader model 2.0 in it. Now it generally and practically should run on all possible machines however I think the effects are still not that bad. If you start working on this, I ask you to please introduce changes only if the sysreq does not get much higher as otherwise I could not play it anymore :-)
There are interfaces for AI, menus and stuff.
Also because this was a thesis work, the code has documentation comments and also there is many technical details in the (Hungarian) thesis document of mine. I will put it into the repository however I think only few people could read Hungarian (anyways it's a pretty nice language really mystic and loreful, so you could check it out). Maybe once I will translate at least the table of contents and will answer to emails if there are any questions....