Its me again.

Started by
22 comments, last by TheUnbeliever 17 years, 4 months ago
Quote:So basicly I am not forced to create a 3D object with directx, right ?

That sounds a bit strange since DirectX is not / does not contain a modeling toolkit. But I think you got it partially right.

As said, DirectX and OpenGL are only interfaces. You tell DirectX/OpenGL in your code what polygons to draw and it passes this information on to the graphics card.

Where your code takes these polygons from is up to you. Usually, you read them from a file that was generated by 3dsmax, maya or milkshape. But you could as well produce those polygons in your code (eg. a terrain renderer usually does this).


Whether you learn DirectX or OpenGL first is entirely up to you.

For game programming, Windows is certainly the preferred environment. The vast majority of game developers use windows, thus, it's easier to get help, most tutorials you'll find are tailored to the Windows environment and you're sure to find drivers for your graphics card that support 3D acceleration on windows while it *may* become hard to finding suitable on linux.

-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.
Advertisement
Quote:Original post by Fares
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.
Object orientated programming is just a paradigm, and isn't automatically better for games. A lot of the most famous classic games from the early console years will have been written in straight assembly. Also; Java is not slow; at least, not since the introduction of a just-in-time (JIT) compiler. In fact, since it is recompiled to native code on the end-user's machine the first time it is run, code that relies on a JIT compiler can potentially be faster than native code as it will be optimised to the user's specific machine configuration.

If you're ultimately looking for ease of coding, I'd recommend looking into XNA (C#). If you prefer to stick with Java, you can probably use Managed DirectX alongside J#.

If you're set on C++ then so be it, but don't pick it for the wrong reasons (such as speed). [grin]

[Website] [+++ Divide By Cucumber Error. Please Reinstall Universe And Reboot +++]

Welcome to GameDev and Good luck!

When you learn C++ you learn basic textual input and output by cin and cout. These are part of the C++ standard and come with any C++ compiler.
If you want anything more advanced (widowns, buttons, 3d...) you need to include more code (functions and/or classes) that isn't part of the C++ standard. This code can be something from the operating system or from libraries you download.
These added non-standard code has many names with subtle differences such as SDK, API, Engine, library, DLL, and more... but its basically just ready functions for you to use.

You simply cannot do graphics in C++ without some added code.
DirectX/OpenGl is just another API (=added code for you to use) which gives you lots and lots of functions and classes to do (3d hardware accelerated) graphics.


When you make a game you have the exe file which has all the compiled code and you have data files such as mp3 for music and jpg for 2d art. You also have some model data files for the 3d models and game levels.
When you use blender or 3dMax or Maya to create models you save it to a data file, and later your code loads the data file (with DirectX function or a function you made yourself) keeps all the triangle cooridnates in memory and later draws the triangles to screen (with DirectX functions). DirectX is not used to create models, just to draw them and maybe load the data files (but if I remember correct it only support ".X" data format).

Making the 3d models and game programming are very different talents. They require very different knowledge and very different skills. If you are blessed to be skilled in both and have the patience to learn and master both then be happy. If you want, you can focus on programming and use free content (mp3, 3d models, etc...) from the net.
you can use OpenGL with java using JOGL bindings. google for them, they're not hard to use, or not harder to use compared to doing OGL with C++.

There is also another binding, "Light Weight" something or other, but I'm not overly familiar with it, but I think it can work a little better with MS Windows.

You don't really need to use the 'best' language for games, simply because it doesn't exist. You can hammer in screws, but a screw driver works better.
Old Username: Talroth
If your signature on a web forum takes up more space than your average post, then you are doing things wrong.
So you are sugguesting that I start learning game developpement with Java and once I am good (if ever) in it pass to C++ ?
That'd be my recommendation too. Stick with what you know.
Quote:Original post by Fares
So you are sugguesting that I start learning game developpement with Java and once I am good (if ever) in it pass to C++ ?
Yes. If you get good at OpenGL in Java there's no need to move to C++ at all, beyond adding another string to your bow. And if you do, you'd just be learning a new language, not a new language and a new graphics API.

[Website] [+++ Divide By Cucumber Error. Please Reinstall Universe And Reboot +++]

Quote:Original post by Fares
c++ [...] is Object-Oriented

C++ is not object oriented, it is multi-paradigm. If you want a language that truely supports object oriented programming, don't chose C++.

Quote:Original post by Fares
and faster then Java.

Speed should be your last concern when you learn a language.
Hi,

I decided to begin with Java then when I am good enought to start with C++.

I have another question.

I have been reading some of the threads in this forum to understand the role of every component in the game developement world. I see the word engine alot of times. I saw some people talking about commercial engine and free source engine or something like that.

What is an engine ?

I know I am annoying you with this stupid questions.

Best regards,
Fares.
Check this wikipedia link about what a game engine is.

This topic is closed to new replies.

Advertisement