You need to decide what engine you want to use, if you're going to use an engine at all. From there, you'll end up using whatever language the engine uses. For Unity, you'll use C#, and for Unreal you'll use C++ (I think, I never got far enough with Unreal to get to where I was coding things, I only ever messed with the map editor).
One thing I want to address here is that if you want to make a GSG-type thing (though it sounds like your thing will end up being turn-based if you're wanting to have RTS battles like in Total War), start by fleshing out the military system. It sounds like you already have an idea for how you want your battles to play like, so spend your initial efforts figuring out how to make battles work and prototyping them. From what I've seen, the GSG's that have come out that Paradox wasn't involved with all just became forgotten, and the one thing they all had in common was that their battle systems were afterthoughts:
>Age of Civilizations II
I didn't play this one personally, but from the LP's I've seen it looks like the entire battle system is making your number bigger, and whoever has the biggest number wins. There didn't seem to be anything indicating that unit composition went beyond anything other than "big number".
This one intentionally avoided having the type of battle system where you make armies and then direct them to do things, everyone ended up sleeping through this game. It got a sequel recently that I have yet to see an LP of by someone not being paid to promote the game.
Technically this one has a fleshed-out battle system, but then the execution fucks up. Every time I declare war and invade, the CPU sends its entire army to the one city that I invaded, so there's only ever one huge battle where I fight the opposing country's entire army in any given war, after which I just spread out to the other cities and overtake them easily since the other country just spent its entire military on one battle.