On the subject of OpenGL:
I personally realized it ran on OpenGL 1.2 a week or so ago, trying to find out it's minimum OpenGL version... which was incredibly low, but incredibly nice, especially seeing as how pretty the game is anyways.
I however, like someone else, use a nice old laptop. In particular mine only supports OpenGL 2.1, with some old intel graphics card. I do have a gaming pc, but I just don't use it till late-game bases.
In anycase, an alternative of just 'jumping' to OpenGL 4.1, is doing similar things as 0ad/Xonotic (and probably many others): Load-in OpenGL extensions if available and then use them. In both 0ad and Xonotic on the highest settings they both use sharers (and possibly other things) to enhance the graphics... quite significantly. They're also opensource, so if you guys go about that route, you can have some sort of reference for how this is being done.
In practicality, I realize that if you have to switch away from allegro, that this may not be the 'desired' route, as it would add complexity, and limit the power of the shaders/etc.. ie, you wouldn't be able to simply pass everything needed to the shaders, and just have them handle the rendering. - For raw CPU performance, this _could_ improve that. (But if cpu usage on rendering is almost nothing, then meh.)
However, it does seem that in allegro (5) there is some ability to get the underlying OpenGL functions.. (
http://liballeg.org/a5docs/5.2.0/opengl ... oc_address)
But you then would have to deal with whatever data-types allegro uses internally.. or maybe everything is nice, and are just simple wrappers over OpenGL, I have no idea. There can always be those wonderful complications buried somewhere too.
And as a last-resort, limiting your OpenGl version to 3.3 would be nice, as that's where the software render's for OpenGL stop being fully functional. (Only linux, anyways, Idk if any other OS even has software renders... /shrug maybe osx? ... and only if you're not using nvidia.. you don even get the software renders on nvidida unless /everything/ is in software.. )
In any case, my point is simply that it's possible to have it factorio work on various-levels on differing OpenGL versions, so that the lower-end systems, just get the low-end graphics. Where more powerful computers get more graphical enhancements (usually just as sharers/post-processing). Furthermore doing it that way, MacOSX support could still be retained.. and in general, it doesn't make anything worse due to gfx-incompatibility, while still letting more features of OpenGL to be available. (Unless, just requesting more OpenGL extensions is a higher-level of opengl... but that shouldn't be higher than 2.1, which, I'd very much argue is a safe increment... ~15 years ago? yeah, probably okay... given this is an argument for ~8 years ago... so idk.)