Hello! I am very interested in Programming, and Game Programming in particular, but everything seem so overwhelming right now.... (Keep in mind, I am 15 years old). The biggest problem I seem to have is understanding some general concepts, because a lot of the explanations of them are not exactly beginner friendly, and I usually need to learn by having things explained very specifically for me.
From what I can tell, to program a game, you need to know a programming language, and also how to use something called an API, as well as a compiler. (Correct me if I'm wrong)
I have already learned the basics of C++, but I guess I would be willing to switch to C# if that is really a better choice. I think I pretty much have the idea of a compiler understood pretty well too.
Apparently, the API thing is very vital for making something like games. I have heard of OpenGL, DirectX and SFML for C++ and XNA for C#. I just have a problem with understanding what exactly these are supposed to do.
If I'm correct, when using something like Open GL or SFML, pictures have to be drawn using coordinates. Excuse me if this sounds extremely noobish, but is there any better way to do this? Maybe something like flash, where you can actually draw things on the screen?
I know I sound pretty stupid, but I really do want to learn this properly, especially with the last question, i don't want to spend years using the coordinate method, and then find out there was an extremely simple flash-like method out there all along.
So, to summarize
1. Should I use C# or C++ ?
2. What exactly are APIs?
3. What exactly is OpenGL, DirectX, SFML and XNA?
4. Which would be the best for a beginner to use to make games?
5. How exactly do the APIs work (With coordinates, or is there an easier way?)
6. What are good tutorials for learning the language and/or the API you have previously recommended?
Thank you for politely listening to my rant about how stupid I am, and hopefully you guys can/are welling to help me!