OpenGL learning

I am just 15 and I know C . Next year I am getting 3 months holidays which i don’t to waste . Well I got some complex things[like MSVC++] from the library running on my system with which I used to try Quake3 coding using some tutorials. I would like to learn OpenGL ,please someone tell me right from the scratch what to learn to get my own games running .

Other than OpenGL you should learn linear algebra.

Trigonometry is also a requirement.

But trigonometry, linear algebra, and the graphics API is not enough. If you want to code them somewhat efficiently, then design, analysis, algorithms is of even greater importance. And these things is not something you learn by reading books/tutorials, you learn by several years of experience.

Can anyone recommend any good sites to remind me of all the linear algebra I’ve forgotten since leaving school?

Well you guys are no where near to my answers
I am asking again more explained which are the languages I should learn to move to OpenGL ? Sorry for the wrong question .

Depending on what kind of game you want to make, you’d most likely want a language that compiles reasonably effeciently. Which realistically gives you two choices - C/C++ or Delphi. Delphi is probably easier to learn from scratch, but C/C++ is ultimately a more powerful language.

well folks,

linear algebra is useful of course, but you’ll get it soon enough.
san, if you really want to learn opengl, then you should check out nehe.gamedev.net. you might’ve seen that it’s the most suggested site. good luck :wink:

best regard,
Tolga.

Originally posted by San:
I am just 15 and I know C . Next year I am getting 3 months holidays which i don’t to waste . Well I got some complex things[like MSVC++] from the library running on my system with which I used to try Quake3 coding using some tutorials. I would like to learn OpenGL ,please someone tell me right from the scratch what to learn to get my own games running .

Stick with C/C++ but I recommend C++ since it’s superset of C, good luck

I think everyone should learn assembler before C/C++. The amount of people I’ve seen who can’t get their heads round pointers in C, are usually people who dont know assembler.

It will also give you a very good understanding as to the whole CPU instructions, compilers, object code and everything.

Heck I’ve even seen university students who dont know what object code is! Cos they didn’t learn assembler.

Read Michael Abrash’s Zen of Assembly, then learn C, then C++.

IMHO of course.

i totally agree to you, nutty, that everyone should know assembly.
nowadays university students even don`t need the “art of programming” at all… i believe, i could get a diploma without knowing, how to code (no, i’m not kidding :frowning: )

san, if you know c, but no assembly, i too suggest you to learn assembly first, then c++.
so long,
Tolga.

Everyone have their own way of learning programming. I got to admit knowing assembly is a big advantage but is not compulsory. I never learn assembly, but I have no problems in pointer after coding for while and examine some source code. Just some comment.

You don’t need to learn assembly, if you have the time it won’t hurt. If pointers are a problem then I suggest you learn pointers from a good C book. C++ has call by reference which is handy for avoiding pointers without copying loads of data onto the stack, but you still need pointers. Everyone should know the basics of memory, heap, stack, registers & types, but this does not require knowledge of assembly.

How many C or C++ books teach you about memory, heap, stack, registers & types?

Not to mention, instruction caches’, data cache’s, pipeline locks, memory addressing modes?

If you’re gonna learn that, you may as well go the whole hog, and learn assembly language. Syntactically, it’s much simpler than C, and C++, and by learning it, you will have a much better understanding of the way your C/C++ code is translated into machine instructions.

Also debugging of your C/C++ programs is eased significantly, if you can look at the disasemmbly of your code, and understand whats happening, at the cpu level.

If you want to go on to further your ability as a good programmer, by being able to write incredibly fast and efficient code, then knowledge of what instructions your compiler is generating, and how long these instructions take to execute, and execute together in the pipeline is crucial.

Sure you don’t need to learn assembler to write C or C++ code, but you’ll write even better code if you do.

Nutty

Any good websites for teaching me assembler then?

Go to your local library, and ask them to get in Michael Abrash’s Zen of Assembler. It’s a big book, and your library should be able to get it sent in from one of it’s departments.

In UK, it only cost a very small fee to get the library to do this.

There might even be an online version somewhere. I think the publishers released some of Michael’s books online in PDF form.

Learn assembler then C then C++?
Good luck! And good time!

Ummm. Why are you relating Object-Oriented Coding with assembly language? I can see the small connection between pointers and assembly because you are working with memory adresss and such, but Object Oriented doesn’t have anything to do with assembly. My assembly experience is limited to writing a few loops that alter numbers and that’s it, yet I understand a large portion of Object-Oriented Programming concepts. Stop scaring the newbies dude, they just want to get their feet wet!

Hey, newbs, the nehe tutorials ARE a good place to start. I also reccomend the “Open GL Game Programming” Book from the Game Development Series. It goes over not only Open GL, but some cool Direct X stuff you’ll need as well.

Ace Corbain

The Redbook of OpenGL is a good book too. The great thing is that the whole thing is published online! Check out http://fly.cc.fer.hr/~unreal/theredbook/chapter01.html

I’m not relating assembler with Object Oriented methods.

I’m saying, if you want to write really good code, it is an immense help to know the really low level stuff. And the best way to learn this stuff is by coding in assembler alot. The best way to learn is practise.

I think everyone should learn assembler before C/C++. The amount of people I’ve seen who can’t get their heads round pointers in C, are usually people who dont know assembler.

I don’t agree. You can do quite fine in C/C++ without knowing assembly language. And you can certainly understand pointers without knowing assembly (I did for 3 years. Learning assembly didn’t enhance my understanding of pointers one bit). Newbies shouldn’t be trying to understand assembly if they barely have a grasp on C or C++.

You may need assembly (or at least a general understanding of what happens when you press F7 in VC++) in order to code more efficiently. Games may need low-level optimizations, but precious few other types of programs do.

Why are you relating Object-Oriented Coding with assembly language?

Nutty said object code, not object-oriented code. Two very differnt things.

[This message has been edited by Korval (edited 01-04-2002).]