1. DirectX/Direct3D/DirectSound/DirectInput
Microsoft's big baby, the Directwhateverthehell library of programs will do everything but code the game for you. From graphics and sound to joystick config, it does it all. This is probably the biggest pack out there, the SDK in and of itself being over 200 megabytes of fun stuff (But the code isn't that big, the 200 megabytes are mostly demos and the like). It runs on Windows, XBOX, the XBOX 360, and basically anything with a Microsoft logo on it.
DirectX has a few flaws, however, which is why I plan not to use it in my game.
PROBLEM THE FIRST: DirectX is Windows based. Sure, 99.9% of my gamers will be running on Windows. However, because DirectX is so Windows based, we could run into a plethora of problems. First of all, we will never be able to adequately port our game to Linux or OSX. Plus, the latest DirectX (DX9) won't work on some older video cards. Sometimes, it just won't install. Some people don't even HAVE DirectX. That's how the ball bounces. Most video cards, integraded or not, try to support DX9, but only ones made SINCE DX9 came out support it, thus a problem- if you want to use the plusses of DirectX, you better hope your target audience has a compatible system.
PROBLEM THE SECOND: DirectX is a pain in the ass to run. Setting up even MSVC++ with DirectX is like trying to summon something out of thin air. Sure, it might be easier when I would use a non-beta version of MSVC++, but I'm a cheap bastard. So, I'm using Dev-C++ and NOT directX. Now, if you're a hardcore 3D programmer, this isn't a problem. See problem 3 for why this is.
PROBLEM THE THIRD: No 2d Support. Seriously. To do 2D, you have to set up some complex perameters to get the 2D working in a 3D environment. DirectDraw = GONE. That means that DirectX is DEFINATELY not the platform for a 2D MMORPG.
PROBLEM THE FOURTH: Oh yeah, this is extraneous, but if you ever plan on programming for the Playstation or the Gamecube, you have to run OpenGL.