Didn't see this until today, but yes the codebases are different. There's really almost no files in the whole "Arcen platform" that escape changes 100% between games. I think the FInt and Compression classes tend to get copied over verbatim, and the MersenneTwister implementation does, but that's about it. Everything else -- from the GUI onward -- tends to evolve on its own.
Here's why: the Arcen "platform" isn't a general-purpose platform. It does exactly what it needs to do for a specific game, and no more. The methods aren't generalized to be able to build any framework on top of any other framework. For instance, look at the debug info in the F3 menu. There are a few things in common between all three of our games about that, but the vast majority of the info actually IN the F3 debug screens are wildly different.
And the reasons for us not making a consolidated platform are: 1) that would take a lot of time that, since we're not planning on selling our platform to others, is better spent elsewhere; 2) each game has unique needs, and by tailoring the general platform to each game we get something with as absolutely little bloat in it as possible; 3) we can retrofit prior games with new platform additions at our leisure, or not at all -- when making a change in AVWW, we don't have to consider if that's also compatible with AI War or Tidalis, both of which have really different architectures.
I'm a huge fan of code reuse, but there are limits. Having created many large component libraries in the past, and used many by third party vendors, I had the sense to not try to put that into something that is as high-performance as a game like these.