Archived

This topic is now archived and is closed to further replies.

DX9 - Managed or Unmanaged

This topic is 5175 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

Hi everyone I have experience with programming in OpenGL, and now i''m about to dive into DX9. The thing is, I''m seeing all these references to managed DirectX and unmanaged DirectX. Now, from what i understand, "managed" means that it''s integrated into the .Net framework or something like that. What I want to ask is which "version" i should learn... My general objective is game development, so I really wanna know which is easier to learn timewise, and which is better in performance, which of course is a key element. Also, in which version are shaders more accessible/faster, if that even matters... thanx everyone.

Share this post


Link to post
Share on other sites
The opinion seems to be that Managed DirectX is slightly easier to pick up (mostly because of all the nice syntactic sugar that c# sprinkles on it). But, managed directx is still just a wrapper, and thus alot of the calls are just direct counter-parts to their COM bretheren. There will be *some* performance penality if you use a managed environment (you don't get garabage collection and all that jazz for free), but the amount of the performance penalty is a debated issue. Finally, even if you do choose managed directx you are going to need to refer to the C++ documentation, as the documentation for MDX isn't quite up to snuff yet. But even that isn't a big deal, since almost all of your calls in MDX land are pretty much the same in c++ directx.

I myself am using Managed DirectX. Just remember to follow the managed best practices (such as if something implements IDisposable, then call Dispose on it when your done with it), and you should be fine. If you do choose the C++/COM route, it shouldn't be that much harder.

[edited by - nerdboy80 on October 10, 2003 3:07:45 PM]

Share this post


Link to post
Share on other sites
- Keep in mind that the C++ documentation isn't always enough. When you get to advanced stuff, the lack of managed samples and documentation can hinder your development.

- Worse than that, the managed wrapper is somewhat buggy. It's fairly new, and stuff is getting fixed every now and then - but we still see a lot of bug reports regarding the managed wrapper on DIRECTXDEV.

Muhammad Haggag
MHaggag's corner

[edit] Grammar

[edited by - Coder on October 10, 2003 4:52:21 PM]

Share this post


Link to post
Share on other sites
Note that the managed docs in the Summer Update are greatly improved over what''s in the 9.0 SDK. I''ve only glanced over them but my impression is that if you were to get the latest SDK you''d rarely need to refer to the C++ docs.

And while there are fewer managed samples (25 vs. 44), the difference is mostly in the new samples that were recently added and presumably just haven''t been ported yet. The six tutorials are also represented on the managed side.

If you''re looking at making real games for real users, keep in mind that your app will be dependent on the .NET Framework being installed on the player''s system. This is a 20MB or so download, which is a lot to ask of modem users. Eventually all mainstream Windows systems will have it but for now this is a big problem. Of course if you''re distributing on CD then you can probably find room. Just don''t tell the publisher you''re using .NET -- they might freak out.

At the very least, MDX is a good candidate for learning and for internal tools.

Share this post


Link to post
Share on other sites
Just a note about the DirectX for Managed Code Documenation released with the DirectX 9.0 SDK Update - Summer 2003. This update covers the core area of Direct3D and the D3DX library. It includes accurate reference pages and will evenually include some task pages to assist developers. In the other areas of DirectX, you will (unfortunately) not find updates to the documentation. There is currently no plan to update these other areas of the documentation.

Share this post


Link to post
Share on other sites