I can't provide you with specific code or a tutorial, because I've never done it before. But if you're at the stage where you're going to be trying different effects, you should be able to do the coding, but I'll tell you how I'd do it. It's also been a long time and no one has answered, so I hope this helps.
First, because you want:
- Straight exhaust
- Flame is only seen from behind and to the side
- Performance is important
I would go with a textured cone. Or maybe a cone + a cylinder. The texture could be animated somewhat if you really wanted; but most likely I would use my frag shader to offset the texture lookup coordinates in a repeating ring according to time. So this "ring" of offset texture coords moves down the cone+cyclinder over time and repeats a bit. Probably start with a function of sin. This would be like a heat wave repeatedly washing down the length of the exhaust. Maybe add some other offsets to give the whole thing a slight wiggle as well.
This will mean that from directly behind, you would see very little except a ring from the inside of the cylinder and the smaller cone nestled inside. So from behind it would basically be two circles.
As your view moves to the side you can see more.
Now, to make it non-visible from other angles you can just use the camera position in the frag shader to determine the view vector and change opacity accordingly.
These simple shapes would have more performance than particles.
As for the texture, I wouldn't actually use one. But it helps to think of the above with texture lookups (in my opinion). Instead, I'd just use a colour ramp in the frag shader to colour texels different colours based upon how far the are.
An additional variable, "thrust", could be used to determine how far down the colour ramp it should be sampled. This way, one end of your colour ramp is always going to have alpha 0. With low thrust, this alpha 0 part starts half-way down your cylinder. At high thrust the alpha 0 is further toward the tip.
The values closer to the rocket could be more orange or something.
Finally, I'd use the thurst variable to bring the overall luminance of the colour up. So higher thrust drives us closer toward a white-hot flame.