Dreaming big is super fun. Though before getting too carried away about re-programming a new version of the game, there's something often overlooked that I'd like to point out.
Open up Outpost 2, and on the main menu, click on "About Outpost 2".
Human resources:
2 Directors/Designers
5 Programmers
20 Artists
2 Music/Sound people, plus an external company
27 Quality assurance people
One, programming was just a small part of the effort. Two, these were likely all professional people, with training and years of experience, being paid for their time and skill.
So you say you're just starting out programming. Excellent! It's a wonderful pastime. I highly recommend it!
In terms of game engines, I don't think Outpost 2 used one. It appears as if they coded things against DirectX ... directly.
If you'd like something cross platform, SDL might be a good choice.
As for higher level games engines, I'm not much familiar with them, so I can't really comment. You'd have to figure out yourself which ones were suitable.
Though if you're in this for learning, where do you want to start? If you start with a high level engine, and have no foundation, there might be so much going on under the hood that you never really develop any confidence in what you're doing. Or maybe you only care about the high level picture and don't want to be bothered by the minutia of the low level details. This really depends more on who you are as a person, and what your goals are.
I'm not aware of any shared OP3/remake code being released publicly. Or at least I've never looked at it long enough to remember it.
... would it be better to rewrite op2 in c++ or maybe c#?
These days, people would use JavaScript!
(Yes, I'm being subversive, please ignore)