Personally I feel the need to make good games because not many other people are doing that. But what constitutes a good game? Would I know how to create a decent game that people would want to play? I cannot stand playing Halo and do not know why people enjoy it so much. Does this kill my dreams? I do happen to enjoy the likes of Guitar Hero II, Resident Evil 4, The Legend of Zelda: Twilight Princess, Metal Gear Solid (the first one and its remake), and also Unreal Tournament. All is not lost; I can and will put together a marketable game.
That seems like a pretty bold statement. How am I supposed to achieve this admirable goal? What skills do I need? First I need to learn how to program. Second I need to learn mathematics. Thirdly I need to come up with a game. Doesn't seem too hard, right? What if I want to do this in the next 4 years? I'm asking for trouble.
Learning to program competently seems like the biggest challenge. Learning syntax is easy, learning semantics, not so much. I always start out strong but seem to never finish anything. I chose to learn the C# programming language due to support. Support from the workshop. Support from MSDN. I have a long road ahead of me. I would like to be rather competent programmer by the end of the year.
Learning math shouldn't be much of a challenge. I was always very proficient in math during school. I just need to learn math that is relevant to programming and game programming. I am debating going to school for this (as well as other things). I am not very interested in the best graphics. I just want to make games. Games that people will find fun and enjoy.
Coming up with a game shouldn't be too hard, it is my passion after all. I have already filled pages with scribble about the types of games I need to bring to the world. That's what I get for working security. Boring as hell, but plenty of time. What kind of games you ask? That'll be another post most definitely.
That's it for now. Hope you could get through my babbling nonsense and poor literary skills. I shall return, and hopefully with some code!!! Thanks to all who left comments.
Anyway, since it sounds like you're pretty much starting from scratch, I thought I might give you a couple of tips. Firstly, learning to program in a particular language is not a hugely difficult challenge. However, game programming (for anything non-trivial) requires a good knowledge and instinct for performance/algorithm tweaking (among other things) in order to produce applications that perform reasonably (Ie don't shudder to a halt under pressure). Unlike "regular" applications, games have to be doing a multitude of things every display frame. If your algorithms for doing these things use "naive" methods, your game will run badly. For this sort of thing, I'd definitely recommend a degree, but if that's not an option, my best recommendation would be to *read* *read* *read*. Read as many tutorials or articles on aspects of game programming (or even books if you're willing to fork out the dough) that might be useful to you. Coupled with trying out lots of what you're reading, this will give you a great sense of how to put together a game that runs smoothly as well as plays well. There's a fair bit to learn, but if you start with small projects first (pong/breakout clones, etc), you'll get a lot of this experience without getting bogged down in a large production that'll have to be re-written several times (while you're still learning) and probably sap all of your motivation.
Sorry if you've heard all of this stuff before, just though I'd chuck in some advice. If you don't go for unreasonably huge projects first-off, game programming can be a hugely-satisfying experience and lots of fun.
All the best,
Lachlan.