Wow, this thread's really gone off topic
) But in a good way I guess, the OP needs to learn programming. So here's my take on this.Language options
- pascal - good for learning and getting started in programming but not anything else
- C - just as good as pascal for learning, with the advantage that you can after this easily transition to languages like C++ or java or C# or Objective-C or whatnot. Not that good for making large scale apps/games due to not being OOP
- C++. The de-facto these days in gaming industry. Can get quite complex with templates, but if you ignore that, can be just as easy as java. Downside is poor and few free libraries to help you make games, and those that are, are pretty low level. There are lots of commercial ones though.
- C#. I never used this one personally, but for that, there's the famous XNA to help you make games, and I'm sure lots of other libraries too.
- Game Maker. Never used this one either. I know and heard it's easy to make games with it, but I see it like a trap. You learn it fast, you make some games with it, then you hit its cap and need to go back to square 1 and learn a real language so you can do really cool really tricky really custom stuff. That's why I personally never bothered with it. And I doubt anyone will ever hire you for your skills with Game Maker
So my advice? Start with C. Learn the basics:
- backtracking, divide et impera, dynamic programming, greedy, the bunch
- learn data structures: basic data types, vectors, structures, lists, trees, graphs etc.
(if you're weak, you'll stop at these two, and programming was never for you to begin with. Go do some art instead: GIMP, Photoshop, whatnot, Blender, Max, whatnot). Else, you're just a few steps away from making your first game. Go on.
- learn the runtime API: string functions, math functions, input/output functions, etc.
- solve related programming excercises as you go
- use a third party library to make yourself a small fun little game
Next step, learn an OOP language. I'd go with C++:
- classes, inheritence, the bunch
- templates. I think java has something similar, but I forget the name
- programming patterns: observer pattern, visitor pattern, factory, etc.
- start learning new things on your own. For a programmer, the learning never stops
- make a real game.
That's only a stripped down version of the stuff you have to learn, there's still the Windows API, OpenGL/DirectX, shaders, etc. Be prepared.
Remember to learn to read and understand code. Best and fastest way to learn, by learning how others do things.
My two cents, hope it helps.