Sign in to follow this  

Some Questions for the experienced among you

This topic is 4401 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hello I am currently learning a book about game programming using the Win32 API language. I don't really like it and I was wondering what my other options are... I've heard of SDL, DirectX, and OpenGL, but I am not really sure what each one is. Here are my questions: 1. Having minimal to average experience with C++, having just gotten into windows programming pertaining to video games, what are my options when it comes to game programming languages right now? 2. What is SDL and what are the advantages to using it? Should I jump from windows API to SDL right now or stick with windows API? 3. When can I start looking into "advanced" languages like DirectX and OpenGL? What exactly are DirectX and OpenGL and what are so special about them? 4. Once I get decent at 2D programming, what is the leap like from 2D to 3D like, and what do I need to be knowledgabal (spelling?) in to make that leap? (I have some experience in Cinema 4d and modeling) So I guess that is it for now, thanks in advance for your answers.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
1. I would stick to C++ while you know it, Perhaps try C# when your bored?

2. (Almost) Everything you need is bundled in a nice, clean, cross-platform package for you :)

3. Whenever you like :P I guess for both DirectX and OpenGL, rendering is hardware accelerated.

4. You don't need to be particularly knowledgable to use 3D computer graphics.
Although having good knowledge of math / vectors / matrices helps when you need something more complex. (I learned OpenGL as I was learning C++ and did not find it that difficult, Except for the first tutorial on the WIN32 API, but i skipped that and the rest was a breeze)

--Steven Ashley

Share this post


Link to post
Share on other sites
1. My recommendation is to keep practicing with C++ until you feel rather confident with it. Perhaps try and write some simple games in a console window (such as Tic-Tac-Toe, a Guess the Number type game, etc.) if you want some C++ exercises related to games.

2. SDL is an API facilitating various fundamental functionalities needed for games, such as graphics, audio and input. It is built ontop of OpenGL, which is a low-level graphics library (Open Graphics Library) for communicating with the graphics hardware (see my answer to number 3). In effect, SDL is a layer of abstraction between your game and OpenGL.

3. DirectX and OpenGL are not languages; they are APIs just like Win32. They have similar purposes, namely to abstract low-level hardware functionality. DirectX is technically the aggregate of several disparate components, each dealing with different respective classes of low-level functionality (input, music, sound, and graphics, basically). Direct3D is the component which is analogous to OpenGL.

Essentially, all video cards operate slightly differently from one another. It is the job of Direct3D and OpenGL to translate the commands you give them into equivalent commands understandable by the specific hardware in use on that particular machine. Without DirectX or OpenGL, you would have to have different rendering code in your game for every video card out there (not good).

To elaborate on SDL: SDL is not the same as OpenGL and Direct3D in that it is merely a utility library which aids in the use of OpenGL. It is not a substitute for OpenGL in that it itself uses OpenGL under the hood to relay your messages to the hardware.

OpenGL (and Direct3D) is a rather complicated technology and takes some time to become familiar and effective with; SDL attempts to remedy this by making certain things easier to do, of course at the loss of flexibility in what you can and cannot do.

4. The leap is a significant one. Specifically, the math of 3D graphics is considerably greater in complexity than that of 2D graphics. You should be thoroughly familiar with linear algebra, series, and basic calculus if you want to do interesting effects (in addition to the high school math of algebra, geometry and trigonometry).

As for modelling, this is nearly as involved as programming (not quite in my opinion), and takes considerable practice to churn out anything of commercial quality (in short, don't expect to be able to). Common programs used are 3ds max, Maya, trueSpace/gameSpace, Blender (free), and Milkshape 3D (also free... I think).

HTH,
nilkn

Share this post


Link to post
Share on other sites

This topic is 4401 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this