There is no shortage of gamers who want to make their own computer games. There is also no shortage of material on how to get started. But few have given advice as good as Jay Barnson's: Make Pong.
As I [[Walk_before_you_run?|pointed out previously]], game development is hard work not because of the programming (as many seem to think), but because of all the other stuff that goes into making a game. The development process itself is not simple. Mr. Barnson points out many of the issues; but he still glosses over an important part.
Your game must end up in the hands of an audience.
My first serious title (never published) was a Reversi game written in Tcl/Tk. The AI was awful, but the few people who played it weren't any stronger anyway, so they liked it. And the interface was reasonably polished, in a Minesweeper sort of way. Wish I still had the source...
My first published game was a more primitive version of Marocco, itself a clone of a little Windows game the author never bothered to sign. This one was also written in Tcl/Tk, and that was a problem. Soon enough, I received e-mail from a poor soul who couldn't figure out how to run my game. I tried to guide him through the process of downloading and installing an interpreter, but he didn't seem to get it. Keep in mind, that was exactly the same process you'd have to go through in order to play a demo of the latest first-person shooter. Guess he never did play many games at all, since that was long before Steam or the Playstation Network. But! He was a potential player, and any game developer will have to deal with this sort of person.
Fast forward to the present day. [[Square_Shooter?]] was the first game I could watch my friends playing, and believe me, it was a shock. Some of them didn't even try to click the mouse, instead asking me what to do. I added a three-sentence instruction list, but it usually went unread, or they would click on their own ship (no, really... but at least that was fixable in code), or held the mouse button down for way too long... In the end, enough of them got it and found it fun that I knew it wasn't a failure. Still, version 2 (which I intend to do someday), will have to be different in many ways.
For [[Buzz_Grid?]], the first beta-testers never realized the little lightning bolts that chase you around appear in place of the green bubbles you collect, and kept running into them from turning around too soon. Yes, the little timers were somebody else's idea. And people kept asking, "why WASD and not the arrow keys?" even after I added an explanation to the game's page. I guess this control scheme is still unusual after seven years of WoW and fourteen of Quake 2. But there you have it; if two people say you're drunk...
Yes, developing a game is hard enough already (and programming is only a small part of that). But that's peanuts compared to the job of testing, polishing and tweaking the game, and getting it out to a public. In the interactive fiction community, they say good beta-testers are worth their weight in gold, and few things earn more scorn than a game that wasn't properly tested. And it's no coincidence that the premier authoring tool comes with the ability to create an elegant distribution website for your latest creation.
So I second the Rampant Coyote: if you're just starting out with game development, make a Pong first, so that development proper will be trivial and you can focus on the other aspects; it's going to be hard enough as it is. Of course, you can also try a Tetris (or a board game, as in my case); it's the principle that counts.
Ambition can get you started, but being realistic ensures you can finish the race.