I wrote stuff in the beginning to achieve what we needed to achieve, no more, no less. However, being a software engineer of many decades, I have a strange instinct for things that things might one day need to do and how to put things together in a way that doesn't make it so hard to change later. Coupled with this strange instinct is a totally fearless bite-the-bullet-and-just-fecking-do-it attitude to refactoring, re-engineering and rebuilding things. If we needed to make a change to the sprite engine for Revenge of the Titans that broke the other three game using it, we made that change, and then went and fixed everything that broke.
Having now got to the point where we have four games relying on the library of code we've developed over 10 years it's pretty hard now to justify doing that, so I've forked the lot, refactored it, took a fork of Titan Attacks, and I'm making this new version of Titan Attacks work properly with it by way of being an awesome real-world system test.
Along the way I've added every single new feature that Chaz has asked for. Nice
SPGL2 as it is know makes a mockery of all other 2D game engines, or so I think, anyway
Well, it does exactly the job we need it to, and that's good.