Where do I start?

Started by
14 comments, last by chad_420 18 years, 10 months ago
I really want to begin to program games, but I dont know where ot start? Should I pick basic, or C++ as my first language? How long will it take to gain a good knowledge? Where do i start?
Advertisement
Start here with the Forum FAQ [wink]
Quote:Original post by T0t@L_N00b
I really want to begin to program games, but I dont know where ot start?


What do you know so far? What is your background?

Quote:Should I pick basic, or C++ as my first language?


I suggest you start with python.

Quote:How long will it take to gain a good knowledge?


Depends on the language. Depends on how high you set your sights. Depends on how hard you work. Depends on what you learn from.

Quote:Where do i start?


Well the info linked to by Drew above is a bit outdated, but you can always have a look at the Forum FAQ
"Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it." — Brian W. Kernighan
I am also a newbie here and want to ask the same question but don't wanna clutter the boards with any more similar threads.
I did little research on the net of what should I learn and came to these conclusions:
- i need to learn c++ (already know c, which might be helpful)
- a little windows api tinkering
- prefer directx over opengl (because portability isn't that much important) and, thus, i need to learn A LOT directx
- learn some more math, physics, and algorithms so I can apply them in game dev
- learn general basics of game design
- do games in meantime!

Now, I am not asking you dor elaborate comments (but would like them), so you can post simple "yes" or "no", depending on whether I've got these things straight. Thanks!
Learning C or C++ isn't mandatory for making games - it's possible to make games in languages like Visual Basic, Java or Python. However most games tend to be written in C++ bacause of the languages popularity and it's a lot faster than Java/Basic.

Having some knowledge of the Win32 API will stand you in good stead - in particular for DirectX. You won't need to learn the whole API but knowing how the message loop works and how to create a window will serve you well.

You will need some knowledge of linear algebra and to a lesser extent calculus, for simple 2D games you won't have to worry too much about how much maths/physics you know but if you decide to take the step up to 3D then you will need to know a bit more maths to fully understand the material.

When you are first beginning games programming the emphasis should be on finishing what you start, sure the code may be messy and less than optimum but those are issues which can be addressed later on. First get a good idea of the game development process then later on as you learn new algorithms/designs you can begin to apply them.
Quote:Original post by n0mad
- i need to learn c++ (already know c, which might be helpful)


You can also think about using C#, because you`ll be able to almost completely bypass this step:
Quote:
- a little windows api tinkering


And, you`ll get your games up and running much faster...

Quote:
- prefer directx over opengl (because portability isn't that much important) and, thus, i need to learn A LOT directx
- learn some more math, physics, and algorithms so I can apply them in game dev
- learn general basics of game design
- do games in meantime!


Also, don`t waste time on writing basic math stuff (matrices, vectors) as you have it all in DirectX already...
Bulma
Quote:Original post by Bulma
Quote:
- prefer directx over opengl (because portability isn't that much important) and, thus, i need to learn A LOT directx
- learn some more math, physics, and algorithms so I can apply them in game dev
- learn general basics of game design
- do games in meantime!


Also, don`t waste time on writing basic math stuff (matrices, vectors) as you have it all in DirectX already...

True, he shouldn't necessarily spend time writing his own vector/matrix library, but he should still learn the basics of how they work if he is going to do any physics (vectors at least aren't that complicated anyways). Add data structures to that list. Again, most of the time you shouldn't be writing your own code for them, but it helps a lot to be able to if you have to.
I'd agree with some of the others that Python is an excellent language to learn with. It's much simpler than some of the other common recommendations (such as C/C++) and will allow a beginner to get some decent results reasonably fast, but isn't as likely to impart bad habits as a lot of BASIC variants. After learning the basics of the language itself, the PyGame library provides a lot of the functionality required to create some nice looking 2d games, and after learning the techniques involved in creating games in Python it will be far easier to pick up a language such as C++ as an additional language.

How long it takes to learn depends on a lot of factors - the most important ones being how much time and effort you actually put into learning. Game programming isn't particularly easy, but it can be done and is very rewarding for those who stick with it.

Check out some of the information in For Beginners and the For Beginners Forum FAQ. In particular, if you read nothing else from those (although I recommend you read everything you can), this article is an excellent place to make sure you don't set your sights too high when you're just starting out. You need to learn the basics and start simple, and then later on you can progress to creating your dream game. I'd also just like to make sure you notice the list of basics tutorials in various languages here (in the forum FAQ).

Hope that's of some help. [smile]

- Jason Astle-Adams

Thanks, guys.
But I guess I was supposed to write what I know already.

I'm very proficient with C and algorithms (I know "C Programming Language" and "Algorithms in C" all five volumes by Sedgewick by the letter, I'm currently reading some Knuth stuff), but I never wrote anything that's not console app (so, practically, I've never used any windows or any os specific functions).
And I'm studying theoretical math, and right now, I signed up for additional college - quantum physics. And, though I'm still a freshman, I do think that I have all the neccesary knowledge in math and newtonian physics (linear algebra, calculus, and classical mechanics).
If you're already proficient with C, then you may want to look into some C++. Python is probably still an alright choice, but with a background in C you can probably handle C++ if you want to - it is a bit of an industry standard, and there are a lot of resources available.

Getting yourself comfortable with the basics of the language (a few more console apps) shouldn't take you overly long, at which point you could probably try moving into some 2d graphics work. Pong is an excellent first graphical game to make, as is snake. When you're ready to try graphics, you could either learn the Win32 GDI (although it isn't the best thing around for games, you'd have to learn something else later) or try an API such as SDL, Allegro, DirectX or OpenGL.

- Jason Astle-Adams

This topic is closed to new replies.

Advertisement