Its me again.

Started by
22 comments, last by TheUnbeliever 17 years, 4 months ago
Hi, Today I understand that c++ is probably the best language to use in game development, because it is Object-Oriented (not as c) and faster then Java. I am also aware of the fact that game development is not like learning Java(which is easy) but a long process which involves research, reflection and practice (lots of it). I do not expect to become an expert in the few years to come. As I was taught in my first C++ course, always try to create a top-down program. In other words understand the role of every component in order to put it together successfully. Therefore I have a series of questions that I hope you can answer. What is the role of directX or OpenGl ? What is the role of 3D modeling ? What programs do I need to use for 3D modeling ? What books do you recommend I buy ? What software do you recommend I use during this learning process ? Best regards, Fares
Advertisement
Quote:Original post by Fares
What is the role of directX or OpenGl ?
Direct3D and OpenGL provide libraries to abstract different kinds of hardware to simplify hardware-accelerated graphics programming.
Quote:What is the role of 3D modeling ?
To produce 3D art content, such as character models and worlds, for use inside the game.
Quote:What programs do I need to use for 3D modeling ?
I'm not an artist, so all I use are cheap tools (Milkshape, Blender). I'm told Maya is popular in the professional games industry for an art solution.
Quote:What books do you recommend I buy ?
I strongly recommend Eckel's Thinking in C++. A great series of books (he has them for Java and a few other languages too).
Quote:What software do you recommend I use during this learning process ?
Not so much software as general guidelines -- make sure you read things and do them. If you don't understand something, don't skip over it and assume you'll pick it up later.
Hello Ravuya,

Quote:Direct3D and OpenGL provide libraries to abstract different kinds of hardware to simplify hardware-accelerated graphics programming.

Please give me a concret example of what is directX or OpenGl in a game like Battle 2 or Command and Conquer.

Quote:To produce 3D art content, such as character models and worlds, for use inside the game.

Like cars, maps, weapons etc... ?

Quote:I'm not an artist, so all I use are cheap tools (Milkshape, Blender). I'm told Maya is popular in the professional games industry for an art solution.

I am not an artist neither but I am taking art classes.
So the answer is Maya ? What about 3Dmax ?

Quote:I strongly recommend Eckel's Thinking in C++. A great series of books (he has them for Java and a few other languages too).

And for 3D modeling ?

Quote:Not so much software as general guidelines -- make sure you read things and do them. If you don't understand something, don't skip over it and assume you'll pick it up later.

I meant softwares like Visual C++ 6.0 . Do you have any better softwares ?

Best regards,
Fares
Quote:Original post by Fares
Please give me a concret example of what is directX or OpenGl in a game like Battle 2 or Command and Conquer.


As you probably know, everything you see on the screen when playing a game is made up of small polygons -- triangles to be exact. The graphics card does not only display the image nowadays, it is also responsible for drawing these triangles.

Said oversimplified, DirectX and OpenGL are interfaces through which a game can send polygons and textures to a graphics card to be drawn. The graphics card driver implements these interfaces and translates the interface methods into commands that the respective graphics card can understand.

So basically, DirectX and OpenGL are standardized interfaces through which a game can give drawing commands to the hardware, no matter whether it's an nVidia or ATI card, or what model it is.

Quote:Original post by Fares
Quote:To produce 3D art content, such as character models and worlds, for use inside the game.

Like cars, maps, weapons etc... ?


Exactly. The visual representation of these things is, like said above, made up of triangles. You build the shape in a convenient modeling software of your choice and then export it into a format where your game can read the individual triangles that make up the model and send them to the graphics card!

-Markus-
Professional C++ and .NET developer trying to break into indie game development.
Follow my progress: http://blog.nuclex-games.com/ or Twitter - Topics: Ogre3D, Blender, game architecture tips & code snippets.
DirectX and OpenGL are libraries that allow you to interact with your 3D card. In other words, you call some initialization functions and render functions and be done with it. They take care of the rest. Take a look at some tutorials (NeHe's for example), that should give you a better idea.

Basically, yes, 3D modelling packages allow you to create any 3D object. Larger games frequently use a specific program to create levels with, though, and that's often the tool where models are placed in maps, as well as game scripts and such. But, that's surely not the only approach. For some games 3DS Max or another package is used as the level-editor/modeller.
Again, there is a lot of info on this subject on the net. :)
Create-ivity - a game development blog Mouseover for more information.
Quote:I strongly recommend Eckel's Thinking in C++. A great series of books (he has them for Java and a few other languages too).


I second that, you can even download a free copy (scroll down) on his website but you'll probally want to but it as it doesnt have solutions to any of the problems/exercises in the online version.

Quote:I meant softwares like Visual C++ 6.0 . Do you have any better softwares ?


VC++ 6.0 is a horrible thing you can get VC++ 2005 Express Edition for free from microsofts website.
Let me get this straight. I create 3D objects with softwares like Maya and 3Dmax, which the directx receives and sends it to the Hardware, which will draw it ? So basicly I am not forced to create a 3D object with directx, right ?

I have another 2 questions:

1) What should I learn first, Directx or OpenGl ?
2) Should I practice in Windows or Linux ?
Quote:Original post by Fares
Let me get this straight. I create 3D objects with softwares like Maya and 3Dmax, which the directx receives and sends it to the Hardware, which will draw it ? So basicly I am not forced to create a 3D object with directx, right ?

I have another 2 questions:

1) What should I learn first, Directx or OpenGl ?
2) Should I practice in Windows or Linux ?


1) Either will do fine, both can do anything you want.
2) Doesn't really matter either, practice in whatever system you're using.
[size="1"]I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!
Quote:Original post by Fares
1) What should I learn first, Directx or OpenGl ?
2) Should I practice in Windows or Linux ?


DirectX is only available for Windows, so if you choose DirectX you have no choice. OpenGL on the other hand is cross platform, and works on both Windows and Linux. So if you want to develop on Linux, then OpenGL is your best choice. The best thing would of course be to learn both, but you have to start somewhere.

There has been many discussions here on gamedev about whether one should use DirectX or OpenGL, so I recommend that you do a search on the forum. My opinion is that OpenGL is easier for a beginner to learn, but that is only my opinion.

If you want to learn OpenGL, this is the site to visit. Also check out SDL, a library that enables you to write OpenGL apps that compiles on both Windows and Linux.
Quote:
Let me get this straight. I create 3D objects with softwares like Maya and 3Dmax, which the directx receives and sends it to the Hardware, which will draw it ? So basicly I am not forced to create a 3D object with directx, right ?


Kinda...
You have to create or find 3d models in some format, then load those into memory and pass them to the DirectX/OpenGL API in a way
that API understands.

With DirectX, you can save a model in .x format from within most 3d modeling programs. From there the DirectX API provides
a way to load those .x files.

With OpenGL you are stuck creating or finding a library that can load and display the models for you.

If you get started with something like the Ogre SDK you can bypass a lot of this trouble, since Ogre provides many
intefaces for loading models and textures into a 3d scene. But this is even further abstraction from OpenGL or DirectX.
So if you are intent on learning the API, this isn't quite for you yet, but if you want quick results you should
consider using this to bypass some of the learning curve and "recreate the wheel" issues you will run into if you
go directly to the graphics API's.

I should also note that for OpenGL there are libraries like SDL and GLUT that you can use to help load images
and setup the display window. I'd check out NEHE for some good OpenGL tutorials and
starter code.

This topic is closed to new replies.

Advertisement