A beginners path?

Started by
5 comments, last by dilyan_rusev 17 years, 1 month ago
Ok, I am currently reading C++ Primer 4ed. I was wondering after this what should I move on to? Should I learn windows programming? Or is there something before that? Should I learn OpenGL or DirectX? I am not really sure on the path I should follow.. Basically I am looking for the right way to go to learn quickly. Some say don't use c++ as a beginner language others say its fine. Personally, I think its the same as learning python. I learned a bit of that and a bit of this and it seems the same when you just start. So I rather learn this because I understand all of what I have learned so far. My question though is. Can I learn Windows programming just straight after this book? Is there something else I should do first? My goal, as most peoples on here, probably, is game design. But I don't need to rush and not learn all I can on the way. Plus from what I've seen there are things you have to know before you can even program a game that has nothing to do with games. So basically, after this C++ primer, then what? I need a direction. I need to know the path of the beginner programmer. I want to learn OpenGL, but should I learn Windows Programming first? And if I learn Windows Programming before OpenGL is there something I need to know before that?
Advertisement
OpenGL from what ive heard is easier to learn.

you should start here
http://nehe.gamedev.net/
and work your way through the lessons starting with the windows code
all the lessons is greatly commented so it is a really good place to start.

i also recommend you to buy Beginning opengl game programming
since it offers really good commenting to opengl
Here is an EXCELLENT source for directX, and infact, you might even want to go there before NeHe's tutorials evenm if you learn OpenGl because it teaches you the basics of windows programming (which NeHe uses, I believe as his main example).
Computer graphics is a huge subject and you need to know many things.
- C/C++
- Computer graphics (background knowlegde, how are things done)
- API specifics (Opengl/Directx)
- Mathematics
- Operating system knowlegde (read: your target platform)
etc.

As said before, for a beginner it is easier to start with opengl.
With opengl you will have a fast result. Learning directx by a beginner is not impossible, it's a little harder to understand (in the beginning).

On our site we have some book reviews, take a look. (For now just a few, more to come in next couple of days)
www.nextdawn.nl
I would recommend the book "OpenGL Programming Guide 5ed".
Before you move onto Win32 API, I would strongly suggest you learn and get used to c++. Just work with the simpleset console applications until you get the basic hang of it. Then, move to Win32; mind you, it's a bit different than console programming and has its own weird quirks (handles, oh god the handles!) But once you grasp the mechanics of it, every new aspect will come to you easily. Once you feel comfortable with that, move onto 3D. I haven't done openGL but I've been learning DX for some two months now and enjoying it quite a bit!

As for C++ being too difficult, I don't know about that. I honestly think that if you are determined and have good logical thinking skills, C++ wont be a problem.

Here's some links to start you off:

General C++:
C++ Reference
C++ essentials, straigh to the point
The Standard Template Library documentation (I like this better than the c++ reference site)

Win32:
The Forge's Win32 tutorials
ToyMaker's extensive Win32 and DirectX tutorials

OpenGL:
Nehe's OpenGL tutorials

Direct3D:
Official DirectX SDK
DirectX Tutorials
Two King's tutorials
Drunk Hyena's tutorials
Code Sampler samples (poorly documented but have a big variety of useful samples; excellent source if you can decipher code well)
(I would honestly suggest you look at all four above tutorial sources if you go for DirectX. I have browsed all of them when learning and found that each one is missing some bits that another mentions.)

And last, but not least:

Microsoft Developer Network - your number #1 source for windows programming. Believe me, once you move to Win32 and above, you'll be visiting this page every day :D

[Edited by - Koobazaur on March 23, 2007 4:58:33 AM]
Comrade, Listen! The Glorious Commonwealth's first Airship has been compromised! Who is the saboteur? Who can be saved? Uncover what the passengers are hiding and write the grisly conclusion of its final hours in an open-ended, player-driven adventure. Dziekujemy! -- Karaski: What Goes Up...
The best advice I can possibly give, is quit asking people what to do next. Just focus intently on what you are doing now, and the next step will become obvious when it is time to make it.
Sure is a big 'ol world.
Quote:Original post by Foot Soldier
The best advice I can possibly give, is quit asking people what to do next. Just focus intently on what you are doing now, and the next step will become obvious when it is time to make it.


Well, in time you will learn to appreciate this advice. However, I'd like to give you an alternative (no, the advice is perfectly all right).

You said that you want to use OpenGL. This leads me to the conclusion that you don't need to learn (let alone use) the Windows API at all. OpenGL needs only to be initialised; however, it covers only graphics. For user input and (probably) audio output, you will need a separate means. IMO Windows API is too complex, too ugly (blahhh, I really hate the coding style it enforces!) and messes up too much your idea of program flow and user input (it literally *makes* you do it its way). With alternative libraries, however, you have greater freedom.

One such library is SDL (search on google for Lazy Foo's tutorials - they are great and cover SDL; the aforementioned NeHe OpenGL tutorials' codes are ported to SDL). The basic library has a 2D graphic engine (well, not quite - it's rather a shell, or, as others prefer to say - wrap) similar to DirectX's DirectDraw (you won't need it, as you will use OpenGL, which in its turn is initialised by SDL quite easily), basic audio system, user input, threading and quite basic CD-rom support. With an add-on you could add some more advanced audio features, or even use an external audio-dedicated library.

What I advice you is to consider the following scheme:
- OpenGL for graphics
- OpenAL for audio
- SDL for user input, timing and threading

In conclusion: the choice is yours. SDL is far easier and more intuitive to use than the native Windows API. If you use MFC, it will be just another wrapper (and IMO just as enforcing as the Windows API itself). You could use the SDL add-on library, called SDL_mixer. OpenAL is simple and that is why some people prefer using it instead of DirectX's DirectAudio. And, by the way, all this stuff is OS independent and comes with almost non-restricting licences (SDL and OpenAL are open-sourced). They all have big communities, so it will be easy to find some information.

This topic is closed to new replies.

Advertisement