Here is a new download link! Glow: I dont think i've seen any other code, maybe there was the Dream filter but it also takes some resources but you could try it out. I'm sure you can google it out.
I didnt play with more than 10 enemies so i cant say if i loose the red frame. I'll try it out later and tell you if i dont.
About single surface particle systems: It's fairly simple really. Create a mesh, create a surface, and add quads to it! You add quads by adding 4 vertices and then adding 2 triangles by connecting the vertices clockwise to the viewer. However since your sprites point at the player all the time you'd have to rotate each one constantly and since the 4 verts cannot be attached to a pivot on their own you'd have to use some math to make them face the player. I'm talking about the "space debree" particles, for which you currently have glowing star-like objects which i think should really be some stone-like objects! So in terms of that space debree you might be ok sticking with the sprites you are using now, or create very small very low-poly 3d objects that float around and look like stones. Also I hope you have the code to hide the sprites which are too far out or out of view.
When it comes to meshtrails like in HomeWorld i also think that would be cool. Here's a very long explanation on how you could do it. Once you learn the AddVertex, VertexCoords, VertexColor and AddTriangle commands, it's very easy! I'm using those commands quite a lot nowdays. Anyway, like in a particle system, you should create an array with vertex handles essentially, and perhaps make it two dimensional like this (4, number_of_quads) so each quad has 4 verts and then you iterate through each quad by increasing the second number, or if you want two quads to use same verts you can use (2, inbetween_quads) where you refer to the 'line' made up of 2 verts between quads provided you are connecting one quad onto the next one as the ship moves. It's what i use anyhow, hope you understand. Then as the ship moves, you give each quad a time for its alpha to decrease to 0 so after a ship passes through, you create the quad with the trail and use UpdateTrail() to decrease the alpha of each vertex each loop as time goes by. Once the vert reaches zero, move the quad (by moving the 4 vertices using VertexCoords) right behind the ship, set its alpha (using VertexColor and preferably EntityFX flag of 2+1+32). The vertices on the left side should have U=0.0 and on the right side U=1.0 (which u set using AddVertex). Then the texture will be streched between them and you can use v=0.0 on all vertices because you only want the texture to strech horizontally as a trail and remain the same as the trail fades away along its length. Hope you understand this, if you dont, read up on the commands and learn them well then read again and ask questions! Also, for best results, so that the trails fade on their sides and look nice, load a png with flag 2 (or 2+4), eg: LoadTexture("trails1.png", 2) and have the png masked in your editor (eg photoshop) gradually towards the sides so the masked area fades away. The most important part would be keeping track of which verts have faded fully, and where to reconstruct them (right behind the ship). You can also use Types instead of arrays to store info about verts, if you find it easier. You also need to decide on how many verts/quads you want the trails to be and the rate at which they disappear, but you'll have to figure those visual things out by yourself! :)
On my PC the good guys always win.
Have fun finishing this game!