Hi!
As you can see from the title I´d like to know where i should start if i´d like to become a game "programmer". Which skills are requiered, and where to find them, and if there are any free "tutorials", on the web.
Thanks

P.S.
this is my first post on a forum so sorry if my answer is kind of "confusing".

You should start by learning some programming languages.
http://www.freenetpages.co.uk/hp/alan.gauld/
this is a programming tutorial wich learns you the basics of programming using python. It is a totally free tutorial wich i followed myself.

Python is my favourite programming language that I've learned by far. They all have pros and cons of course, which means some are better suited to projects than others. Python has a simple syntax and is easy to get into, but slower to execute as it's highly interpreted. Whereas C or C++ is more difficult I find, and the syntax is less inviting, but you get much faster speeds (which is why it's used for games, especially 3D).

Here's a good free Python book, Dive Into Python. It's fully available for free online :)
http://diveintopython.org/

Ok Thanks very much....
but is Python a very common language even in professional levels or is it just to learn how everything works? i have learned some of the basics of C++ and i dont think that was so hard to understand(i did follow a like 25 tutorials on youtube but i cant find any others on how to develope games in C++)...should i continue with C++ or learn Python? and if i should continue with C++ where to find new sources(free of course)
P.S.
I dont have to hurry because i do this like an hobby for now but i hope i can become a professional someday

If C++ is working for you, then that's great. It's really popular because it stems from C, which has been around a long time. Python is relatively new in that regard, but is becoming popular and widespread too.

That being said, I would not try developing games (any visual stuff) with C++ yet if I were you. I've been programming heavily in Python for over two years now, and I've just started to get into 2D visual stuff. You'll want a very, very good understanding of the language before you do game stuff, and if you're going to do 3D stuff especially, you'll need a strong understanding of mathematics; matrices, vectors, 3D geometry, etc. And knowledge of a whole lot of other things...

Alternatively, get a good knowledge of the 2D, 3D, game mechanics and programming concepts in general, then you can take that to ANY programming language (within reason). You need to learn one language to get started with the concepts, but it doesn't really matter which language you learn first, as long as you're just doing it for the sake of learning, and accept from the beginning that you're not going to make a 'great game' the first, second, third, maybe not even the 10th time you start.

C++ doesn't have any 'builtin' graphics functions, so you have to pick a graphics library, e.g. for 2D games you'll want to learn either SDL, DirectDraw, or Windows GDI, for 3D games you'll want to learn either OpenGL or DirectX. The advantage of a language like say, Java or Phython is that there are either 'builtin' or at the least 'de-facto' libraries for almost everything you need to do with graphics. That's only really a short-term advantage though, IMHO, because getting hold of and configuring libraries is the easy part.

Actually math and phisics are my greatest interest...:) (of course even programing in fact i do try to put this together:) )
so the thing is...if i learn Python is it going to help me later in understanding C++?
in that case i should learn those things in order:
Python
DirectX
C++
?
thanks for all the help :)

When I first learnt, Basic (DOS and then Visual Basic) was the standard 'beginners' language. Python seems to be one of the beginners languages of today. Personally, I don't care much for Python, but that's probably just a personal preference.

If you learn Python it may help you learn C++ later. Java is 'closer' to C++ in terms of syntax and language capabilities though. Some things you might take for granted in Python aren't in standard C++, like closures and weak typing. Still.. weak typing is (IMO) more trouble than it's worth (especially in a big project), and closures are mostly just a convenience.

It really is up to you. If you read some tutorials for Python and feel that the language appeals to you, go for it. If you have the math and physics knowledge already, then you'll find you have one less hurdle to overcome.

In case it helps, I learnt in this order:

- DOS Basic/Basic-A
- Visual Basic with 2D graphics
- DirectX and a little C++
- Java with 2D graphics
- Java 3D
- C++ in alot more detail
- OpenGL

And loads of other stuff inbetween. These days, you probably don't want to follow that order, if I had to go from the beginning again today, perhaps I'd learn C# and XNA first, and then DirectX and C++ and/or OpenGL and C++.

I think i have got the answers now...
one last question:
1. i now use a mac with windows installed in it, but windows is very "slow". do you know if i can program on my mac directly or if i have to buy a pc. in case i have to buy a pc do you have any tips.

Yes, you can program in a Mac OS environment. I don't have any experience doing so, though.

Programming in a very cross-platform language like Python wouldn't be much different between win/mac.

It would be harder to write C# in Mac, because it's very much a Microsoft thing and it's integrated well with the Microsoft Visual Studio IDE. (although Mono http://www.mono-project.com/Mono:OSX would let you develop C# code on a Mac, if that's what you wanted to do)

i have decided to increase my knowledge in c++ i tried Python now for a while but i didn´t like it so now i have decided that i wil learn C++ and DirectX do you know where i can find free tutorials?

Heres a good starting point: http://www.riemers.net/eng/Tutorials/DirectX/C++/series1.php

unfortunately, the navigation of this site isn't obvious, the tutorial steps are in the 'contents' box on the right of the page, see attached image.

That should give you enough to start something.. I've not followed the C++ versions of these tutorials, but the C# ones were quite useful.

Thanks a lot ;) i will see what i can create...hopefully i will learn very fast (as usual) to make great games ;) my "dream" for now is to work at DICE but I think its pretty hard to get in there so i have to "study.study.study.study.study.study.study.study"
thanks very much.....

commented: not gonna happen i think -4

A note about your programming on a Mac:
As far as I know, the DirectX SDK is Windows only.

Choices in preferable order...

1) Go back to school, get your Bachelors Degree in Computer Science.

2) Go back to school, take game development - programming at one of those I.T. schools.

3) Teach yourself, if very good and extremely lucky and beat out the interview competition, you'll get the job.

But with option 2 and 3, what happens when you get too old and get squeezed out of the industry. Right now you're probably around 20? So those you'll be working with will be around ages 22 to about 32. But then once you're pushed out, which McDonalds will you be working for? Because you don't have the piece of paper. You most likely won't be allowed in to do program in other industries. They is a stigma of game vs application (non-game).

By the way, you mentioned Engineer/game programmer. You need a four year degree to be an Engineer, otherwise you're just a programmer, with out a degree. But without the degree you'll have holes in your education! The shortest path is not necessarily the best path!

Actually Im only 15... :P
so i can take the longer path...if better ;) thanks you have been very helpfull

Still in High School? Perfect!

Join your High School Robotics club. It involves Engineering, and Computer Science. Part of being a good programmer no matter how you learn is learning to work well on teams. And you are in a very good position for that! This Summer start on learning C, then ease off over the school year (or school breaks dependent if you're in regular schedule or year round schedule) and concentrate on your mathematics and science classes. ALL of that will apply for games!

Of course your English class too. Computer Science isn't just programming. It's a lot of technical writing and design documents. GDD (Game Design Document), TDD (Technical Design Document), etc.

actually my school doesnt have any Robotic club :( :'( i would like to start building my own robots but dont know where to start or nothing so i put that "dream" in a box... do you know any good start points?

Vex Robotics or Lego Robotics.

For a High School student interested in Engineering, Vex is a better launching platform. I would suggest you buy the base kit, then add-on as you can afford it!

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.