yer but me and my friends want to make an awsome MMORPG :D
It's good to have stretch goals, but you should set yourself some more realistic intermediate goals first. The reality is, most professional development houses with substantial financial backing still fail to make an awesome MMO. The majority of MMOs are average at best.
Set yourself some milestones to focus on, each one bringing you a step closer to your ultimate goal. Start off creating some simple games, and after each one is completed, move on to something a bit more complicated. One of the important things to do though is to actually finish each game. You need to develop that discipline to see a project all the way to completion.
As your games get more complex, that last 20% gets more and more grueling, tedious, and frustrating. Many games end up being complete flops for no other reason than the development team failed in that last 20%. It wasn't that the concept wasn't any good, or that the talent wasn't there, it's the discipline was missing that's needed to put that final polish on the product that's often the only difference between a mediocre game and a AAA success.
Those articles show you some of the possible languages you can program a game in with their pros and cons (C++ is a good one to use). One of the articles even takes you through some suggestions like jRaskell's to get you from no experience to where you want to be.
Also several books are listed.
There is alot that goes into making a game. That step from awesome idea to playable game is an enormous chasm.
As you learn, your goal will seem further and further away. And then one day, you'll find yourself bored... and then start development on your MMORPG lol. That's how my game development started. That's also why I started minor hacking as well. Fortunately, I'm smart to stop where it gets illegal. :D
Creating a good game takes a lot of time/experience. It's not only about "imagining the game and how it would be played", but also,about being able to plan the execution of every little detail of it, and overcoming the large amount of unexpected challenges and obstacles in the way.
If you're starting, you should target small games. Games small enough to be covered by 1 or 2 guys. Learning to program is not a must, but its something you SHOULD think about in case you're serious on this. Learning to program properly takes years, and university is probably the best place around to learn (and master) computer programming. You can't even imagine the amount of technical details you'll have to face when programming a game.
If you're not so HARDCORE into game making yet, maybe you could give a try to beginner-friendly applications , such as Game Maker, Klik & Play or RPG Maker XP.
Not to put a downer on your enthusiasm, but if your MMORPG idea is on a similar scale, complexity to say World of Warcraft, it would take approximately 300 man years. (Worked out on the estimation that WoW took 5 years to develop (1999-2004), with an average team size of 60). So unless you have several life times, or a lot of good friends it isn't going to happen.
I also would not advice C++ as your starting language to program in, as many have stated here. Perhaps go and look at C# and XNA. There are a lot of resources, C# has a lot of similarities to C++, but not so many of the quirks that really irk and confuse you as a learner.
Start with something really simple, one of the hardest things with learning is thinking of achievable things to do. So what my gameplan would be, feel free to ignore this.
Get C# and XNA.
Learn to load and draw a Sprite.
Learn to move the sprite with keys.
Make a Pong Game.
Make a Pong Game with a simple AI.
Make Bomberman. Learn about 2D Arrays. Lists Simple Objects
Make Snake. Good early problem solving on getting the snakes tails to work, and grow. More complex then above.
And then whatever you want.
You could do the same with C++ and SDL, or Allegro.
The biggest time consuming process it seems is texture making, mesh making, and anything outside of code. Code can be rushed and fixed later (although not recommended) but textures and mesh making has to be thought out and designed a lot more often than code not to mention the difficulty of producing something good. I'd like to see how long a modern MMORPG similar to WoW and the size of WoW with up to date meshes and textures would take.
Not just in MMOs, but in any game, the biggest problem are the resources. Even more so in OSS projects. You can't throw a rock on the Internet without hitting a programmer who's willing to work in his free time. Try the same with an artist (any kind. 3D modeler, musician, etc.). Then try it with a good one.
Shadowraith... forget all of the 2d/3d APIs for now, don't even think about it. You need to spend the next year of your life just programming in C++. The APIs will get you no where fast if you can't understand the underlying concepts. APIs are easy to use after you've obtained a good understanding of C/C++. I think the dream of making an MMORPG should be put on hold for now, as others have stated. It's a project that would take several years to accomplish with a large cross functional team.
You also need to realize that an MMORPG isn't just C++. There is always a scripting language involved, and in the case of World of Warcraft, it's Lua. Here is the skill set you're going to need in order to develop an MMORPG (I'm going to assume it's 3d).
1. Core: C/C++
2. Scripting: Python or Lua. I recommend Lua :)
3. Database: You're going to need some database skills. Where do you think all that information is stored? Most large scale MMOs implement some sort of proprietary database, but you could always go with a SQL Server and hope you don't get hacked. You'll need a mastery of SQL.
4. 3d API: OpenGL (Recommend), Directx (hell no), Ogre3d (Recommend). You'll need an API to handle the graphics. This will take some learning as the APIs are freaking massive.
5. Audio API: For 3d your going to need OpenAL.
6. Network Programming... better have a full understanding... or you'll go no where.
7. GUI: Let's just assume you're creating your own... otherwise you'll need to pick up a GUI API and learn it.
8. Physics Engine: Don't attempt to write you're own, just find one that's out there that can accomplish what you're looking for and use it.
9. Tools - Level/Object Editor: It would take you an eternity to build the actual game without at some point developing a Level/Object Editor. The editor can be written in C/C++ or C#. Quite a few companies will implement the editor in C# for speed of development. Otherwise you're going to have to seek out a GUI if written in C++ which can potentially slow things down. But then again, either way you're going to have some GUI work ahead of you, whether it's QT, WIN32, or .Net.
10. 3d Objects: If it's in 3d, well then you'll need 3d models, be it NPCS, items, or building. You really only have 3 options at this point. I use Maya myself, if you go this route... which is not free, you'll want to learn Maya's scripting language MEL Script, which speeds up modeling insanely!! You can also go with 3dsMax, and learn it's MaxScripting... again, this is going to cost you and is very difficult. Or, the path I recommend if you don't have funds, pick up a copy of Blender and maybe a good book. It's a free 3d modeling tool which is pretty decent. I wouldn't compare it to Maya and 3dsMax and I've never heard of a commerical AAA game that used Blender for it's 3d goodies, but it'll get the job done.
11. All things 2d, interfaces, etc... Adobe Photoshop.
12. 3d Math... Pick up a primer... several available.
and much more...
Hopefully this helps you understand the MASSIVE undertaking that will be required to develop a 3d MMORPG. The list does not include design concepts, story writing, etc... which on it's own is just as difficult to accomplish. You could of course just buy the license to a Game Engine that suits your needs (which still requires programming!)... but unless you're sitting on top of $750,000 or more... which if you are you could simply hire me to write it for you... it's just not happening.
I wouldn't suggest a scripting language is needed and in some cases, not even wanted.
I truly agree with OpenGL in almost all cases. A low API of cross-platform and flexible functions that are as good, if not better than, DirectX. Although difficult to come across and understand without a little bit of research. Ogre3D is an engine, not an API.
Do not buy a game engine. That is over priced bullcrap that you'll probably give up on at first anyways.
but unless you're sitting on top of $750,000 or more... which if you are you could simply hire me to write it for you... it's just not happening.
Think you could make an engine on par with CryEngine? Albeit true that CryTek are pathetic at making story lines; their graphics and physics programming is immense. You need only look at this screenshot: http://atanok.files.wordpress.com/2009/05/31552_crysiswarhead-01.jpg from Crysis Warhead to understand. Also; I played the demo (the game is boring as hell in and of itself, definitely not worth buying... unless you're looking for a benchmarking tool with really nice pictures) and you can throw turtles and rock crabs and chickens at people.
Really? Cool; but I bet that would be difficult...
I'd say it would be very important to have a scripting language. But what do they use them for? A few games use Python or Perl so you can change things, e.g. on Counter Strike you can change the order you buy things in with "autobuy", i.e. the precedence of, for example, guns over armour over ammunition over equipment. What would an MMORPG use them for? I've heard games use scripting laguages for event handling or something.