Tom Miller's Blog

The Ramblings of Miller. These postings are provided "AS IS" with no warranties, and confer no rights.

Managed DirectX - Have you used it?

Managed DirectX - Have you used it?

  • Comments 35

So I asked before what types of features you would like to see in Managed DirectX (and the feedback was awesome - I'm still interested in this topic)..  What I'm also interested in that I didn't ask about back then though was what types of things people are using it for currently? 

Are you using it to write some tools?  Game engines?  Playing around on the weekends?  What experiences have you had working with the API?

  • Writing a game engine for creating indie games.

    The experiences have mostly been good, except for the lack of documentation which I know you are aware of. Also I would like to see MDX run through FxCop - I know certain elements of it could be more .NET-ish (naming conventions amongst other).
  • Sound processing, playing around in spare time. I've been working on a collaborative cellular automata music generation that's been pretty challenging.

    MDX has been 10 times easier to use than DX6 - 8 because coding mistakes don't lock up my machine. I'd love to see the DirectShow filters accessible via MDX, and to make it possible to write MDX sound plugins.

    I understand that DX isn't a game engine, but it might make sense to eventually have a DX game engine layer that runs on the DX core. That's not my interest, but it looks like it's something other folks are asking for.
  • I've been using it to create a heightfield editing tool (http://www.btinternet.com/~nfactorial/heightpic.jpg).

    Though this is mainly a precursor to converting a 3D editor I was working on in C++\DX9 to C#\MDX. I'm basically looking at how to structure C# applications and using C#\MDX effectively(http://www.btinternet.com/~nfactorial/Mantra/Screenshots/scrn2.jpg, C++ version).

    I'm also working on a data driven game-engine as a research project, which is going pretty well. No screenshots on that one yet as most of the work is in the framework and my artistic talents are zero, so its just cubes walking around.

    n!
  • As far as experiences, I've chosen MDX\C# as my main home development environment now (which used to be C++\DX9). So it's very good for me.

    Some things I don't like though are the portions of the API where it seems to be trying to remain too close to the C++ API. Such things like, DirectInput returning an array of bytes for MouseState.GetMouseButtons when it would make much more sense to simply have a MouseState.IsPressed( int button ) or something.

    Or AudioVideoPlayback classes not supporting creation from streams (which means my audio has to be in a file on its own rather than contained within a package).

    A few other issues as well, but these are only minor compared to the entire API. Which works and works very well so far :)

    Thanks,
    n!
  • I am getting ready to use it in a medical imaging app because I am hoping that using shaders I can perform fast image processing. I previously implemented this using System.Drawing and it was horribly slow. Hopefully Managed DirectX is the answer to my woes.
  • Yep, trying to do a mathematical 3D functions viewer....
  • Stratching the MDX surface for a pet project, a Connect4 game using minimax/alpha beta pruning. More real usage later on.

    Having said that, it would be better to have MDX more .NETish as n! mentioned. Ex: I can refer to the DefaultView instance of a DataTable and play with it, so I'd like to refer to a "scene" object rather than going over a global "device" object.

    It's very very easy to code with MDX, on the other hand. Thanks.
  • I have been using MDX to build in house engineering tools. Mostly viewing models with complex reflections. We are in the process of writing new CAD environments using MDX as well. It has been pretty easy to use MDX. I chose to go that way as our developers moved to .Net. Before, we used OpenGL for all of our internal apps.
  • I'm trying to do build an editor for my forthcoming game. I'm an absolute beginner in coding DirectX-apps and for me it's difficult to understand all the math (like picking an object in my 3D-editor).
    But don't get me wrong - I like MDX very much, cause it's very easy to handle and I think, I'm able to solve my math-problems ;-)
  • I like MDX a lot. I'm using it to make a 3D Game engine and it's set of tools. I'm expereinced in Unmanged DX9 and was very impressed with MDX so I started this new game engine project with MDX.

    The only gripe I have at present is trying to use Windows Media 9 encoded sound files with Managed DirectSound. Was hoping to have that functionality built in...or at least Ogg and MP3 support.

  • MDX is very nice. it's easy to get a hang on it. i decided to start getting into the basics of Direct3D because of it. As a learning process, i decided to make a "simple" app launcher (check my url for it). it came in really handy for some stuff. blazing fast when it comes to rendering.

    earlier i tried doing some DirectInput stuff with it but never actually got around finishing it because i couldn't figure out how to do some things (that i did b4 with DI8) on it. documentation on that front was really a big problem for me.

    overall the api is great to use. the only shame i might say is that we need to support sooo many different video cards....
  • I wish there was documentation on DirectShow for C#.net !!! and pre written examples.. I've used managed direct x for little things like music players and such. I am just getting into this type of coding and find it hard getting documentation for DirectShow for C#.net..
  • An extra thing, not quite related to MDX but maybe you're in a position to push it a bit. Is native managed support for matrices and quaternions (as well as single precision math support).

    Given the fact that managed code is stored in intermediate assembly language and the JIT. It would be awesome if the .NET framework had intrinsic matrices\vectors\quaternions etc. So that when compiled by the JIT they evaluated directly to optimized versions for the host processor.

    Again not quite in MDX's realm, but would be *really* cool. :)

    n!
  • Using it to create a game engine and games on top of it. I've been satisfied with performance as it's along the promised values even in bigger projects. You just have to know what you're doing and know it really well. There are still some really nasty bugs in there, but being in beta enables me to bring up a lot of problems and most of them get corrected sooner or later. I only wish the patch cycle would be shorter. Waiting for a whole year while you know the problem is already solved is really annoying.
  • I am using it to do a 2d game using 3d. Would love to see more int the way of 2d. As it appears directdraw may go the way of the dodo... would be nice to see d3d pick up its routines. Sprites seem to do a great job (speed wise), but dd has all the good drawing routines.
Page 1 of 3 (35 items) 123