Well..hmm. That is quite a large undertaking, especially for a first project. I really don't think you should start with something so large scale (if something of that degree can even be done in DB/Pro and still have any speed to it). However, if you want my highly opinionated approach towards getting good enough to undertake such a project, here it is:
Step 1: Get the tools required to program. Since you're here, I'll assume that would be DBPro.
Step 2: Start making tiny little programs that test out the various facets of the language, read the board a lot, and do some tutorials. This will help your understanding of both DBPro and Programming altogether.
Step 3: Once you have a lot of tiny little programs, make a larger scale game. Perhaps a full-fledged remake of an arcade game or something to that degree. You'll probably spend a lot of time here in the Newcomer's Forum in this phase (I know I did). (Also, make sure not to pester the kind people that help us who cannot wield the power of DBPro correctly yet.) Start out with 3D, not 2D. 2D's a bitch, as I'm learning myself (compared to 3D anyway).
Step 4: Improve this game. A lot. Go back through, brainstorm ideas to improve this game.
Step 5: Repeat steps 3 and 4 a lot, trying out different games, and doing more advanced games each time. Eventually, start making games look flashy and have all kinds of neat little features (those can be the hardest to code).
Step 6: Once you've got a good library of pretty good, complete games (perhaps not all complete, but at least something significant done in each of them), make sure you know these things AT LEAST (nowhere near a complete list, but it's a start)
A. How to make intuitive, responsive controls.
B. How to make the game look professional, complete with menus and help functions, etc.
C. How to load external data (hopefully when the data is encrypted).
D. How to output/save data (hopefully in an encrypted format).
E. How to work Multiplayer.
F. How to gain access to or make the media for your game.
...and much more that I don't have time to think about right now.
Once you understand a great deal of game-making, and you have at least a couple of games at which people will go, "Wow, that's pretty good," then you're set, I guess, to begin work on your dream game. Just remember, the high and mighty game programmers are paid to do it for a reason: they're good.
Another thing: Although DB/Pro can indeed do most of what someone could do with C++ and DirectX, I will say that it's not too well suited for many things. When your dream game is one of that caliber, I might suggest to you to learn DBPro thoroughly as explained above, make some cool stuff, and then move on to C/C++. There are still a number of bugs in DBPro, although by the time you get to the point where you're ready to begin on the dream game there may not be. But, if you go this route, be prepared to rip your hair out, bite your fingernails off, and scream your voice to the point where it bleeds. C++ is in NO way easy. I've came back to DBPro about 5 times from trying to move to C++ simply from the sheer difficulty.
So, to answer your question much more simply than the essay above, you'll need DBPro and something to make your game media with.
Good luck and happy coding.