compared to coding, is gamemaker really bad? Is coding much more better or not?
Yes.
To put it in perspective, it's similar to the difference between making a website in Microsoft Word, or coding it by hand in HTML and CSS.
While Word can do what you want it to, it has it's limitations, and really only gives you a 'wysiwyg' feel, whereas coding it by hand gives you utmost control.
Gamemaker compared to a real coding language is the same way. In gamemaker, you can make a game, sure, but you have no control over how the game handles it's collisions, or the real meat of the application, etc. Whereas in C, or C++, everything is up to the creator, the only limitations are those set by the machine.
for a typical sidescroller, basic arithmetic will get you by. for decent physics or simple 3D, a working knowledge of trigonometry or at least a passing familiarity with it (combined with a willingness to relearn what you forgot since its been like 5 years since you last took math) would serve you well.
as far as languages go, that's not really a cut and dry question. C++ is not easy. It requires manual garbage collection, strict typing, object-oriented design, and can throw REALLY absurd errors when you make simple beginner's mistakes, like missing a semi-colon here or there. None of these things are easy for beginners!
That said, if you know C++, you can easily pick up any other language in a matter of days. However, if you have commitment issues, I'd suggest starting with something a little more simple that will introduce you to some of the basics of a C-style language.
Python would be a great place to start, it has good clean syntax that is similar to C, but has a very forgiving interpreter and it is very well-documented. Python also has available OpenGL and SDL bindings, so you can start to learn very useful graphic libraries without being hindered by a lack of a classical programming education. When you begin moving on to projects that require a little more muscle and complexity, C++ would be a good second step.
The Processing library for Java is a great place to start learning the basics of programming as well. Another C style language, Java does its own garbage collection and generally throws less cryptic errors than C. Processing is a fun graphics API for doing simple experiments and learning the ins and outs of basic graphics programming without getting hung up on syntax. It also has good documentation and a very active community. Processing also has its own IDE which can make experimentation and quick "sketches" very fast and easy!
My brother has been pressuring me to puck up python, and get into programming with pygame. Though i've read documentation on it's methods of redrawing the screen, and they appear to have some issues with some machines. (in the documentation i read, it said that on some PCs, redrawing the whole screen with no other overhead can only run at 28 fps. 0_o )
Although, pygame really appeals to me, since it seems a lot more friendly than C++, and it will be easier to narrow down the things i need for game development specifically. Also, it's multi-platform, which reeeaaally appeals to me. My brother is a hardcore linux junkie, and it would be awesome if he'd actually get to beta test games for me without having to switch over to his Windows partition every time.
I have begun to work my way through some online tutorials with pygame, so i guess i will just put off the coding part of my little project for a bit, and focus on learning pygame. (i can always do the artwork if i get bored, too.
)