One point we can say also when working on something is the need to have a little team, it help a lot to have motivation.
But since nothing is easy, having a good team is never easy.
I would be careful starting off as a Team with other people if you have 0 expierience.
There is a very good chance your first few projects fail horribly because of lacking knowledge, too ambitious expectations and general project management errors. Even if you complete a project, chances are good that your first few games suck. Its all part of the learning expierience, and failure during this period is actually good... a failure teaches you much more than a success.
But as soon as other people are involved, things get complicated. Failing no longer affects just you, but others. There is a good chance your Team will not survive the first or second failure, people will start pointing fingers and fighting even though they just had to high expectations.
If you have no expierience, don't start working in a team that tries to actually build something (as opposed to "just gathering expierience together"). In the best case, you are a burden for the team and will only drain resources from other people without adding value. In the worst case the other people in the team have just as little expierience and the project is certainly gonna meet an iceberg sooner or later because NOTHING will come out of it.
Then there are the many, many guys that are claiming to be interested in game development. But in reality they aren't.
They are interested in the sense that "they like to see how a game gets made"... but not in the sense "they like to WORK and HELP a game being made". These guys, again, only drain resources from other people in the team, and should be dropped. If you like 'em and don't want to just shoot them down, offer them a position as "playtesters" or "vote on ideas"... even these "lazy guys" can add value as long as you don't try to integrate them into the core dev team.
Long story short: IMO you should gather expierience on your own before approaching other guys to help in existing projects or start one of your own. If you have troubles working on your own, see if you can find people that are on the same level as you (total beginners or whatever your current "rank" is), and when asking them to form a team, make it CRYSTAL CLEAR what the goal of the team is: to gather expierience by trying to build actual games, not building the games itself.
That might prevent a lot of bad blood later when things certainly start to fail, and you either have to shut down a project, reset and adjust it, or complete something that is DoA.
As for Engines, I would recommend Unity 5 or Unreal Engine 4 for 3D engines. Both are feature complete, cutting-edge engines with large communities and lots of tutorials, both are free to use, and after a first steep learning curve reasonable easy to use.
For Unreal Engine 4 C++ can be used for ingame code and scripting. The engine also has a pretty useful visual scripting tool. Unity 5 uses C#. Don't let that hinder you though. The C# Programming in Unity 5 is pretty intuitive, and really, a good programmer should learn as many languages as possible (even though you will want to specialize on something).
As other have said, you will have an easier time starting off with just 2D graphics though. For this, there are simpler Engines that could be used, like Game Maker. You will have less "overhead" to get into 2D Graphics as opposed to 3D Graphics (modern 3D Graphics is an extremly vast topic of its own).
If you bite of more than you can chew with the project you describe here IDK... depends on different things:
a) what is your expectations when it comes to time to finish the project?
-> It might take you years just to get the needed expierience to be able to actually start working on the project you listed up there.
-> Even for an expierienced dev, that project might take a year or more to build alone.
b) how high is your threshold for frustration?
-> you will face a lot of topics that will be over your head... you will bang your head against walls many times. Can you take that?
-> if you need succeses to keep going, it is advisable to start with smaller games and keep growing your skills with completing these: Tetris, Pac-Man, and so on.
If you just want to work on your dream game and don't care if it might take you months to just see some small improvements, start building that today! Just don't expect to have a shippable product in a year or two, not gonna hapen this way.