[.net] MDX - confused

Started by
5 comments, last by daviangel 16 years, 3 months ago
Hi all, I am getting starting with MDX, specifically for VB.NET. I am a little confused about all this MDX 1.0, 1.1, 2.0, XNA...Microsoft really made it as hard as possible for newbies. Anyways, I currently have MDX version 1.0.2902.0. I cannot do anything related to DX8 or 9. I can use Directdraw fine, but DirectXEvent8 can't be found. I have added the references to my project and imported them to my class. My app runs fine now, but I am trying to add DirectInput. I want to use the SetEventNotification(), but I am having a ton of trouble. I want an event to fire instead of me doing Pooling(). Is there any example or any tips of how I can enable DX8 and 9 to use? This is what i want, but this properties/methods don't exist for me: http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/dx81_vb/directx_vb/Intro/ProgramVB/ClassRef/directxevent8.dxcallback.asp Thanks a lot. Zach
Advertisement
Well I was able to the find directx8 library - udner the COM references. Are these what I should be using? My understanding was I wanted to use purely the MDX (.net references?)

Thanks.
It sounds like an old VB6-era library and not MDX. I've never heard of a version of MDX for DX8, only DX9.

Anyway there are really only three versions of DirectX for .Net:

MDX 1.1 - Discontinued, but the closest you'll get to a real wrapper for DX9, most of the functions take the same parameters as their unmanaged counterparts. Unfortunately I've heard it doesn't work on 64-bit operating systems, and it looks like it never will(Thanks MS).

SlimDX - This is an open source wrapper, similar to MDX but with support for both DX9 and 10. It's managed by several people here on GameDev.

XNA - Microsoft's "new" API, works on Windows and XBOX360(although you need a subscription). Abstracts a lot of things to make it easier to develop with. There's also an editor that allows you to drag-and-drop different components, similar to the GUI editor, but for games.

[Edited by - Scet on January 12, 2008 9:21:24 PM]
Thanks for your reply.

Do you know if MDX version 1.0.2902.0 is 1.1? I can not find a download for 1.1 from msdn.com or google search.

I will check out the SlimDX.

Thanks.
Yes 1.0.2902.0 appears to be the last version(although I have a 1.0.2911 version of D3DX). I think the reason for the "1.1" is that when it was developed there was only .Net 1.0 and 1.1, and it only worked with .Net 1.1(and over, of course).
This should clear up your confusion over the current state of MDX:

1. Managed DirectX 1.1 is frozen. Its still a great API and since its part of DirectX 9.0 will be supported for a a reasonable period. DirectX 9 ships with Vista and the Aero shell uses it so its not going to die. There are probably some bugs but it went through several versions and is pretty stable. However bug fixes are unlikely.
2. Managed DirectX 2.0 was cancelled in favour of XNA development. Personally I think of XNA as most of what MDX 2.0 was going to be with the added bonus of content management, xbox 360 deployment and a nice game architecture.
3. XNA is the only managed directX API that Microsoft are actively working on to my knowledge. As mentioned above it has several advantages over MDX 2.0 however it also has several segments of the API missing such as parts of D3DX. Its currently the best choice if you want support in the forums or future bug fixes. There has been public talk of future/pro versions. The XNA team is far bigger than Managed DirectX ever was and there has been lots of high profile marketing too. On the whole this seems like a safe bet.
4. Neither MDX nor XNA has 64 bit native assemblies - more and more people are asking for this. The 32 bit assemblies run just fine on 64 bit machines but since there is a 64 bit version of native DirectX we feel a little left out.
5. None of the APIs give managed developers access to DirectX10 abilities - this isn't huge deal as there is limited/expensive hardware and since its only available on Vista the customer base is much smaller. However every day this becomes a bigger issue. Ralf has been working on an independent wrapper. Since XNA has a large Xbox 360 focus and Xbox 360 is not DirectX 10 there could be a feature conflict here.


[size="2"]Don't talk about writing games, don't write design docs, don't spend your time on web boards. Sit in your house write 20 games when you complete them you will either want to do it the rest of your life or not * Andre Lamothe
Quote:Original post by Scet
Yes 1.0.2902.0 appears to be the last version(although I have a 1.0.2911 version of D3DX). I think the reason for the "1.1" is that when it was developed there was only .Net 1.0 and 1.1, and it only worked with .Net 1.1(and over, of course).

Yes there is also a good explanation of all the file number differences here:
MDX1.1 - wraps the d3dx9_nn.dll functions. Because this DLL changes every SDK release there is also a new MDX wrapper each SDK.

[size="2"]Don't talk about writing games, don't write design docs, don't spend your time on web boards. Sit in your house write 20 games when you complete them you will either want to do it the rest of your life or not * Andre Lamothe

This topic is closed to new replies.

Advertisement