Hi all. I know I'm on the outside, and linked in by
@Blake00 for some comments.
Firstly, it's been near on 15 years since I modded Civ4 or Civ4Col. So a lot of what I knew, has been replaced by what I now know, or lost to memory chips blinking out due to the passage of time and alcohol.
Blake is right that I've been working in Godot for the last year and a half, and yes it is a great engine. It's not as mature as Unity or Unreal, but it is comparable in power. Godot is written in C++ itself, and fully supports C++ code. However, it also supports natively C# and it's python-like script GDScript. GDScript is extremely powerful, and you can do everything you can do in C++/C# in it. I've also been working on prototypes of a couple of games, one is similar to the combat chess from Conquest of the New World, and the other is using Imperialism II as a base (I'm going to make Imp2 in Godot first, then iterate on it to my satisfaction). If you're worried about whether these three game engines will limit or slow you down, don't. I suspect you'll find it easier, cleaner, and definitely less bug-prone, if you use a game engine. That's also my professional opinion (we use Unity for Old World, and a couple of us are messing around with Godot successfully).
Anyways, onto what you're trying to achieve. I note I've really only read the posts on this page 7, plus what Blake mentioned to me. I gather the point of this project is to upgrade the Civ4/Col engine for modern times? Sorry, I don't know how to do that.
My advice would be to try to get everything running on Godot. Godot comes with baked in systems such as networking, UI, game loops, multi-platform support, hardware agnostic, etc. Using an engine such as Godot allows you to get into actual game coding very quickly, and using the existing baked in systems is pretty easy to add your own bolt-ons to make these systems do exactly what you want. I saw you mention using image fonts with re-scaling. Don't even bother, use Godot's UI and you can use fonts, automatic scaling, even translation services. Image fonts just aren't an issue because you would use Godot's UI instead.
The complex bit I believe, would be implementing an asset reader to ensure the use of original asset files (and keep the legal ownership bit alive). Or just make from scratch. Blender files plug natively into Godot, so makes the whole 3d pipeline very simple.
That would be my advice anyways. Happy to answer any questions you might have.
Edit to add: to ensure legal ownership, you probably don't even need to use the original asset files. You could convert them to what you want for Godot, and include in the first-run something where the player has to prove ownership. Maybe have it poll their steam library for game? Or ask to be pointed at the Civ4 game folder and do some checks to ensure a few files exist there? There's ways to do it, which also allow use of your own assets. Ownership checks shouldn't lock you into using their assets in game.