Ah, building a game on a limited budget. Something I know a bit about

Here is my $0.02
Allow me to add Milkshape3D to the list of modelers. It\'s not free (about $30 to register it IIRC), but it\'s the best 3D modeler I\'ve seen that isn\'t outragously priced. It\'s very 3DSMax-like, without the price tag. Also it supports about a zillion file formats. I highly recommend it. It\'s what we\'re using for Sovereignty. It\'ll do the usual 3D modelling stuff, allow you to set texture coords (although to be honest, I\'m not thrilled with the way they handle this, but it works), set bone structure and handle animation. Its a pretty impressive package, IMO.
For a paint program, the only choice is Paint Shop Pro. Also pretty cheap, about $100 IIRC. I don\'t think there is any other option

For C++ compiler, I agree with Andrew, you get what you pay for. GCC is workable, but I wouldn\'t want to use it

MSVC++ is the industry standard, but I also would urge you to look into Borland\'s line of compilers (Builder), they are very good. You won\'t want to use the VCL or MFC for your game proper (too slow, their not designed for fast paced games), but for tools (like terrain editors or database management programs), those libraries are invaluable, and my feeling is that the VCL (Borland) is far superior to the MFC (MS). Just my opinion. Either way, this will be your big expense, the compilers aren\'t cheap (about $500 for the professional versions for either one). But this is definately where you should invest your money, a good compiler is *essential*.
As for a 3D engine, you can buy one (or use a free one), or roll your own. For Sov, we did the latter. PS did the former. The advantage to rolling your own is that you will be able to modify it to work best with your game without any problems, rather than wait on the desingers of the engine to work with you. The disadvantage is that you just added a year\'s worth of work to your project

Take your pick, it\'s a personal choice. If you get a pre-existing one, Crystal Space seems to be about the best (that I know of anyway, I\'m not an expert in this area).
If you need a database, use MySQL. No reason to use anything else. The only drawback is that MySQL is under the GPL license, which means that (unless you want to open source your game or pay the licensing fee) you can only use it for the server, not for the clients. But that\'s probably okay, you don\'t want to have a database system on the client end anyway, database work should strictly be on the server end.
As for knowledge:
Know C++ *well* (or Java, if you are going that way). This is a absolute prerequesite. As Andrew said, the more you learn about C++, the more you will realize you don\'t know

If you know classes and inheritance and operating overloading, and understand the concepts of object oriented programming, you\'ll probably do okay.
For networking, know sockets. WinSock if you are intending a windows platform, BSD sockets if not (pretty much the same thing anyway). If you are talking about a MMOG, you probably want UDP packets with an IOCP model for the server. The clients can use a simpler model (we use asynchronous socket model for the Sov clients).
Know DirectX, if you are doing Windows. Especially Direct3D, DirectSound, and DirectInput. There is also DirectPlay, which has mixed reviews. I prefer Sockets over DPlay, but that\'s up to you. The jury is stilll out on whether DPlay can handle MMOG levels of players.
For the database access, you will need to know the MySQL language. It\'s not too hard to pick up though.
That should get you started, I think. None of these is a real prerequesite except the knowledge of the language you are using. For instance, when we started Sov, I knew JACK about Winsock, and within a couple of months, studies up enough to put together an IOCP server (the most complex but powerful type). If you know *nothing* about 3D programming and are planning on building your own engine, that might be an updward climb, but it can be done.
Above all, break your game down into systems and implement them one at a time, using OOP techniques. You can\'t finish the whole thing in a day or even a year probably. Stick with it, be willing to learn and learn from your mistakes (you will makes lots, trust me, hehe), do lots of research, and be willing to ask when you don\'t know (you will sometimes make yourself look foolish, you should see some of my posts on gamedev, heh).
Wow, this became a much longer post than I intended. I just meant to recommend Milkshape

Sorry \'bout that, LOL.
Good luck,
Ron