a question of language to choose (its new)

Started by
4 comments, last by GameDev.net 17 years, 9 months ago
Hi, I'm new to your site and i have a big question. I know u guys talked about choosing a programming language, but my question is different and I couldnt find it on previus threads, so i made a new one. my question is between MANAGED DIRECTX & OPENGL & NATIVE DIRECTX. no one (as far as i searched) didnt talk about advantages & disadvantages of MANAGED DIRECTX. i know C# and C++, but more C# than C++. to let you know i made a SNAKE clone some years ago with C. I want to make a First Person Shooter or a Third person game (like Hitman, Tomb Raider,Max Payne,etc) and I have 2 main questions: 1- by choosing Managed Directx, I know that i will get more simple code, but how much performance i will loose? could you show me a proof on that (no offence). 2-do i need to be very good with C++ to work with either DirectX native OR openGL? thanks in advance.
Advertisement
0) If you have to ask these questions, you're not making an FPS any time soon. Sorry.

1)

2) You should be quite good with C++ before you attempt working with *any* graphical API, to be honest. Actually, you should have a solid grounding in *any* language before you attempt working with any graphical API in that language.
Well, I can tell you that when rendering an empty scene using C# and Managed DX 2.0 (VS 2005), I got around 700-800FPS. In pure DX/C++, doing the same thing (empty scene), I get 1000-1020 FPS. =) I have a GeForce FX 5200 128MB PCI video card.

I don't think MDX is widely used in commercial. Not that that matters really, but I thought I'd mention it.

I DO like C# quite a bit. I do a lot of my programming using C# (started C# about 4 months ago), but I've been doing C++ for about 6 years. I've done quite a bit of C++/DX. But I have experimented with C#/MDX. That's where I get my results from. LoL.

If you are looking for performance, I'd say you might want to go with C++ instead. But I may be wrong. I'm not into the really technical details when it comes to subjects like this one.

But if you're just looking for something that can get the job done, I'd have to say stick with the language in which you are most comfortable. In this case it seems to be C#.

That's just my view on it. Maybe someone could offer you some more detailed advice or something. =)
:==-_ Why don't the voices just leave me alone?! _-==:
If you are coding a game for your own enjoyment just do it in C# managed mode. You will be happier and the application will be developed quicker. The performace will suffer but not enough for you to care about. Immediate mode does not really on windows to communicate with the hardware. Managed mode just means that windows gets involved and slows the communication down between the hardware and your app. I have seen some very cool projects done in managed mode. As for me, I thought about managed mode -- for about 3 seconds. I do not use managed mode. Each to his/her own. :)
first of all, thanks alot to you who answerd && cared.
second of all, i'm not (atleast now) targetting the game industry and i dont want to make next DooM4 or Half-Life3.
but I want to be able to have my own engine(but if u say i have to use other engines, i will think about it too) to render some objects from Maya or 3DSMAX and make some lightning and add some logic like openning a door by pressing space or like that, and if it runs on reasonable speed, that's good enough for me.
is Managed DirectX able to do those things?
I think the question is "What are disadvantages of Managed DirectX",i think that will solve some problems here.
and when/why u should choose C++/openGL or native directx instead.
i saw a .Net Show which they used Managed DirectX to make a simple game, and they said "you cant make a cutting edge game with it", but they didnt say anything bad about it, u know, cuz it was from microsoft, home of DirectX.
So, If you could tell me "Disadvantages of Managed DirectX", I think it will help me to choose between C++/openGL && C#/Managed Directx.

Thanks in advance to all.

p.s. i passed Computer Graphics 1 and i have some info about it, and even on curves & a little on surfaces.

Managed DX should be able to the the same things normal dx does (though it uses a bit more cpu power to do it), OpenGL is the most flexible and is also the API that gets access to the latest features the fastest. (through the really horrible and messy extensions).

the performance difference between DX and MDX is AFAIK only on the cpu side and thus hardly matters unless you start throwing in advanced physics and AI or other cpu intensive features. (and ofcourse if you are making a comercial game you would want the system requirements to be as low as possible so that as many as possible can buy and play the game).

as for OpenGL vs DX the performance part should be pretty identical (though the drivers play a very large part here).

imo OpenGL is easier to get started with since its fairly straightforward, but when you start to do advanced stuff DX quickly becomes easier to work with and OpenGL gets messy since you need to use extensions.

C++ and OpenGL has the advantage of being fairly portable (DX and MDX only works on windows)

This topic is closed to new replies.

Advertisement