There has been advice on managing expectations, what is it like and the need for passion, and all those I agree with. I guess I just go with some concrete steps.
First, decide which aspect of games development you are going to take on. Long ago, it is possible to be the programmer, the artist, the musician, the sound effect guy, the marketer and play-tester all at the same time. Nowadays independent games have to be polished, and even a Flash game need enough draw for people to stay on before they move on to something else.
I can only speak for programming, but I do know some game artists, and both disciplines require one to put in gruelling hours of practise and mistakes.
For programming, there’s Game Maker and Multimedia Fusion; those are drag and drop based authoring software, though Game Maker has the better scripting IMHO. As introduction to programming, some of the other platforms are DarkBASIC and Blitz Basic.
Stay away from engines which promise “no programming required”. If you use those engine, you will forever 1) not know how to create your own logic and 2) be at the mercy of the engine’s developers. The biggest offender here is 3D Game Studio.
Another route is to do modding, so that you can get familiar with the pipeline. For level design and modelling, Unreal / Crysis Sandbox are cool, particularly Unreal if you stick with its visual programming language.
The usual hardcore approach to learning game development is to pick up a language, understand how a computer work, learn a graphical API and finally get down to work. This is a process which could take years. Something which would allow you to roll out something fast is Flash ActionScript; you may not publish anything with ActionScript, but you can get to know the various aspects.
The traditional approach is C++, OpenGL/Direct3D and finally, game engine. However, a full-fledge 3D game involves lot of components which usually require an understanding in physics and other esoteric computer science discipline to code, such as collision detection, physics, geometry, computer graphics, artificial intelligence and etc.
Which is why there are libraries, so that helps with lots of pain. There are also beginners’ library/engine, such as XNA from Microsoft; many are not intended for beginners.
Okay, I ramble a bit; so here’s the summary: learn programming, learn game development theory, pick an engine, code, rinse and repeat. I would recommend against anything 3D or multi-player to begin with - however Unity3D is a great engine for experienced programmers moving to 3D or wishing to try a high-level engine which has great scripting support.
Good luck, asante!