You sound to me like:
Hi, how does one make the smallest possible drawing to construct a ship?
I want to build a nuclear sub capable of going 2000 miles/hour, be fully silent, and users will be able to modify the internals of the sub while submerged.
In short, if you have to ask what programming language to use (without even considering “optimal”), you're not ready to make the game you describe.
Things may look simple and logical at the surface, but what's simple and logic to a human is not simple to a computer. Computers don't understand “harvest”, “fight”, “interact” or “aren't protective enough”.
So I'd suggest you postpone aiming for your game for now. Find out what programming languages are supported by the target systems, although you should not want to program it in that way.
Instead, find a game engine for those systems like Unity (but there are a gazillion such engines) and learn how it works and how to make a game with it. [These engines generally also support some programming languages, so you may want to learn them anyway.]
At first aim at learning the software without taking needs of your game into account. When you feel like you understand it, try an experiment in making a very small (and I mean very small, take ⅓ or smaller of your initial estimate) of some small part of your game. Be prepared that it will be difficult and will likely fail (if not, hurraay!, but making something that is not explained at length in some tutorial is much more difficult).
Once you understand what it will take to make a game like you propose, reconsider its feasibility with a better understanding in what it takes to make it a reality.
EDIT: To be clear, I don't know if Unity works for the target systems that you mention. Check their feature list and supported systems!