Skip to main content
GameDev.net gamedev.net
🔒 Locked

Language Question

Started by Matt James Jan 16, 2007 at 5:07 AM 3 replies 800+ views
Original Post
Matt James
Matt James
Hi. Apart from Sinclair BASIC many years ago (I'm 38 now) and a little Scheme recently, I've not much coding knowledge (I've had a little play around with C/C++, but nothing really useful). Even though I'm not afraid of some hard work, I don't really want to spend months/years writing console apps just to learn alot of C++ stuff. I'd just like to get some code working and do some fun things with 3D. I know that maths will come into this somewhere, but thats no problem for me. I have the Visual Studio Express versions and even managed to write a simple app (in VB/C#/C++) that counted from 0 to 10000 and displayed the time taken (nothing too exciting really). I see that DirectX is possible with VB/C#/C++, so I'm wondering if any language is 'better' than any other. Thanks Matt
Demus79
Demus79
Quote:

I see that DirectX is possible with VB/C#/C++, so I'm wondering if any language is 'better' than any other.


The languages you listed have differences. C++ is the only language listed which produces native program code which means that it can produce the fastest code and is the most suitable for high end game programming. With DX SDK you can dive into 3D programming directly, but I am not saying that it will be simple. You'll need already a lot of code to initialize D3D and to draw some triangles.

Of course, VB and C# have their uses too, and both can be used to make 3D games, but they won't achieve the same performance as C++ program.

One cannot say that one language is better than other. For example, with C++ programming the win32 api is quite awful (without MFC or something similar) compared to visual editing in VB.

You could start with C# and move to C++ if you feel that you'll need to squeeze all the juice out of your machine.

Cheers !
sirob
sirob
If you have no personal preference between C# and C++, and have no practical experience in either, I'd recommend you start with C#, since it is simpler to learn, and the Managed DX API (either MDX or XNA) is more user-friendly.

I'd recommend you start with XNA, since it really would provide a nice environment to get started in, and allows quite a bit of room to grow. Also, it should provide you with the background you need in both Graphics Programming in general, and in the DirectX API. This should make it easier to move to a different platform (even C++/OGL) with relative ease.

Either way, the choice is not critical, but I would recommend getting at least a basic background in the language you plan to use before doing anything graphics-related. Also, getting a firm background in 3D Graphics Mathematics would be a wise move, in my opinion.

Finally, I highly recommend you ignore any "faster", "more stable" and such reasoning for chosing one language/API over another. It should be blatantly obvious to anyone who's been doing this for a bit that these factors have absolutely no weight when attempting to learn about a new subject.

Hope this helps.
Sirob Yes.» - status: Work-O-Rama.
Krohm
Krohm
Quote:
Original post by Matt James
Hi.
Apart from Sinclair BASIC many years ago...

If you still like low-level stuff then C++ is the way to go. Unluckly, you'll need the few months of training.
Managed stuff (or "very high level" languages in general) does not really fit. Also, the specs are written with C/C++ in mind so there's no really a choice.

You should really get a quick overlook at a few of them and see what fits best your likings.

Quote:
Original post by Matt James
I have the Visual Studio Express versions and even managed to write a simple app (in VB/C#/C++) that counted from 0 to 10000 and displayed the time taken (nothing too exciting really).

Whoops! That won't be really as easy as you expect (unless you encode digits as textures and this would be somewhat easier).

Despite of the API you choose, I believe taking a look at the GL specification will help you a lot (you should not try to read it all, it's long, long, long). I know I should not say that here but I've found the DX docs somewhat confusing.

Have fun!
Previously "Krohm"
Spoonbender
Spoonbender
Quote:
Original post by Krohm
Quote:
Original post by Matt James
I have the Visual Studio Express versions and even managed to write a simple app (in VB/C#/C++) that counted from 0 to 10000 and displayed the time taken (nothing too exciting really).

Whoops! That won't be really as easy as you expect (unless you encode digits as textures and this would be somewhat easier).

Eh? He's jsut saying he's already made those apps.

Anyway, C# is a good starting point. It's nice and easy to work with, it's fast and works well with either DirectX or OpenGL.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.