Few questions on MDX

I finally decided to stick with Managed DirectX for my graphics and multimedia. I tried C++/DirectX for a while and noticed MS wasn't kidding about the time you save and the productivity 90% based on logic/gameplay instead of focusing on the underlying processes. My users hardly see this in the game, so it shouldn't be my concern as well. Since I use C# all the time anyway, it was a no-brainer to fully focus on this new API rather than strictly using C++ for just graphics. It looks like both APIs are more similar than not, so migration shouldn't be hard if the job requires it. Because of that, I have a few questions below. 

1) To redistribute a game in MDX, does the user just need .NET and MDX runtime files installed Does he/she not need the actual DirectX runtime

2) I read that COM was finally removed from MDX which adds performance. However, the runtime files are in .dlls, so aren't these still COM objects

3) I'm reading Tom Miller's MDX9: Graphics and Game Programming currently. For outside references and tutorials, where are the most recommended places

4) Are  there any known practices to keep the garbage collector from slowing down the game Can you call it when you want - perhaps only if the game is on idle or shutdown

5) What's the equivelant MDX method of OpenGL's glTranslatef()   Update: I found this method that seems to be equivalent.

device.Transform.World = Matrix.Translation(-2, 0, 0);

 For the Z position, I'd try to make it negative so the triangle moves closer in to the camera, but anything below 0 doesn't draw the triangle. Positive Z works fine. Why would this be Update again: the lighting was off :)

6) How can I achieve billboarding with triangles in 3d space

Optional: My overall goal in future game programming is to create a very simple Everquest 1 clone. From what I've seen with a few unannounced projects, it looks like MDX is capable of pulling it off. What do you think

Thanks a ton,

Phil



Answer this question

Few questions on MDX

  • Kody Clemens

     dxfoo wrote:

    1) To redistribute a game in MDX, does the user just need .NET and MDX runtime files installed Does he/she not need the actual DirectX runtime

    No, you need the core DX 9 runtime, plus the MDX layer (and if you use D3DX you need the correct D3DX Dll). using the web installer is the fastest way.

    http://www.microsoft.com/downloads/details.aspx FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3

     dxfoo wrote:

    2) I read that COM was finally removed from MDX which adds performance. However, the runtime files are in .dlls, so aren't these still COM objects

    DirectX itself uses COM under the covers (though its pretty well hidden even from a C++ programmer). Gamedev.net FAQ say "don't worry" http://www.gamedev.net/community/forums/showfaq.asp forum_id=10

    I think the COM layer that was removed was the old VB 6 type interfaces. MDX goes directly into the native DLLs so I agree with gamedev. Any COM that is still there applies to native and MDX.

     dxfoo wrote:

    3) I'm reading Tom Miller's MDX9: Graphics and Game Programming currently. For outside references and tutorials, where are the most recommended places

    We chat for hours on IM and yet somehow you don't know the *only* place to go to see that list :-) http://www.thezbuffer.com/categories/tutorials.aspx

     dxfoo wrote:

    4) Are  there any known practices to keep the garbage collector from slowing down the game Can you call it when you want - perhaps only if the game is on idle or shutdown

    You don't have that much control over the garbage collector. Level 0 and 1 collections are not bad - if you look at a perfmon trace they will consume a trivial part of your CPU. Level 2 may cause you to have a small glitch. Avoid them by avoiding 'mid life crisis' (search on toms blog or Rico Mariani's)

     dxfoo wrote:

    5) What's the equivelant MDX method of OpenGL's glTranslatef()   Update: I found this method that seems to be equivalent.

    device.Transform.World = Matrix.Translation(-2, 0, 0);

     For the Z position, I'd try to make it negative so the triangle moves closer in to the camera, but anything below 0 doesn't draw the triangle. Positive Z works fine. Why would this be Update again: the lighting was off :)

    Dunno - what does that do in OpenGL

     dxfoo wrote:

    6) How can I achieve billboarding with triangles in 3d space

    When you draw the quads you apply a rotation so their world transform so that they always face the camera. Otherwise its way too long to fit in here. Try thislink http://www.mvps.org/directx/articles/view_oriented_billboards.htm

     dxfoo wrote:

    Optional: My overall goal in future game programming is to create a very simple Everquest 1 clone. From what I've seen with a few unannounced projects, it looks like MDX is capable of pulling it off. What do you think

    Of course....



  • Few questions on MDX