I'm making an OpenGL game in a small team and I'm expanding my OpenGL knowledge as I go along. I face a lot of backward compatibility problems. We're targeting a crowd that will not always have the latest hardware and drivers. What's the best way to make a game that will run on old OpenGL versions - around 1.5?
I do try to make use of newer features like FBOs and shaders for optimization, GPGPU and visual effects, but I write fallbacks for them so the game can run on old PCs too (sometimes with fewer effects).
We do target PCs with hardware acceleration only. So, unlike PopCap games, at least we don't have a sw rendering mode. But how do you people writing semi-casual games handle the compatibility problem?
As for shaders, I'm using the #version GLSL 110 directive since it's a LCD and that way I don't need to make different shaders for different GL versions.
We aren't using an engine, just OpenGL, since the game makes only limited use of the third dimension and we didn't want the learning curve or complexity of an engine.
Edit: I don't expect a silver bullet solution since there can't be one. Rather, I'm looking for ways and tricks you have used to make backward compatibility easier.