So I’ve gotten through most of the issues preventing me from building VectorStorm games on Linux.
But in order to do it, I’ve had to disable my normal attempt to take over memory allocation; that’s all still causing compilation errors inside STL, via Box2D. More investigation required. I really do want to keep control of memory management as much as possible; giving that up really relinquishes too much debugging power for my comfort.
But it works. Both 2D and 3D rendering, all hardware-accelerated, with bloom, lighting, and other shaders all functioning correctly.
As part of this, I’ve upgraded VectorStorm to use Box2D version 2.2.1. This was a pretty big API change and required a lot of under-the-hood changes to VectorStorm’s collision and physics classes. But it’s also a lot more stable and reliable than the old version 2.0.0 that I was using before. Not seeing bullets bounce off of asteroids any more, yay!
I’m now treating Box2D as an external dependency; that is, I don’t provide it inside my source control repository any more (again, except for under OS X, where I provide a pre-built framework binary. Because Box2D doesn’t provide one, or a way to build one).
So I’ve verified that graphics, keyboard input, sound/music, and file reading/writing all work under Linux. I have not yet verified threads or networking, or gamepad support. But I imagine that those should be fine.
I have more cleanup to do, though; in the process of making Linux work, I’ve broken OS X and Win32. So now I have to re-fix those. Hopefully tomorrow I’ll get stuff to a point where all three platforms will work at the same time!
…and then I’ll get to think about iOS again. It never ends!