Features? Whidbey? Oh My!!

Well, as I'm sure most of you are already aware, the Whidbey beta has been out for a while now, and hopefully some of you have gotten a chance to play with it.  Assuming you have, what features are you seeing that you absolutely love?  What features do you now find 'missing' when looking at the Managed DirectX libraries?

In short, now would be the perfect time to suggest features on things you might like to see in a "Whidbey" specific version of Managed DirectX.

( And yes, I'm aware of the loader lock problem using the current MDX assemblies with Whidbey.. So ignore that one.. :D )

Edit: Comments seem to be broken.. I'm trying to fix it.. Let me know if it works..

Published 12 June 05 06:08 by tmiller
Filed under:

Comments

# Ken said on June 12, 2005 9:12 PM:
Hi,

I really like the new Intellisense. I don't like that new tabs show up on the right, it just feels wrong and is disorientating.

For MDX I'd like to see project templates if possible. Ones that build common shells for you. With a choice of the base game loop you'd like to implement. Templates for 3D, top-down, side-scrollers, and mobile would be awesome.

A template for delivering these through a browser would be great too! That is the delivery mechanism I'm currently working on for a few new projects. Even if it was something simple that only elegantly checked for .Net 2.0 existance and returned the DX version would be a good start.

Keep up the good work! Ken.
# Bob said on June 13, 2005 12:03 AM:
I'd like to ignore the loader lock, but it makes developing MDX apps rather annoying, but I assume you guys are working on that :).
# Judah Himango said on June 13, 2005 12:21 AM:
Last I tried out the AudioVideoPlayback API, there were lots of bugs, pretty much rendering it quite useless (see <a href="http://www.thecodeproject.com/cs/media/DirectX9_media_playback.asp">this CodeProject article).

This is unforuntate because it's one of the first places .NET devs look when trying to do media playback.

So firstly, if AudioVideoPlayback is still in an unfinished state, get it working 100%. That is my #1 request.

As far as features go, why not keep improving performance; surely with generics you can do some big optimizations. For example, I believe it was the billboard sample in the SDK that was many times slower than its unmanaged counterpart; this was due to boxing/unboxing during an IComparable's Compare() call; using the generic IComparable would eliminate the boxing and unboxing in this scenario. I think it'd be a safe bet to say that a large majority of the people using Managed DirectX have performance as a high priority. Can't go wrong on that one.
# Francesco Ferraris said on June 13, 2005 2:33 AM:

64 bit support will be greatly appreciated!
# Ramy said on June 13, 2005 7:49 AM:
i would like to see the native c++ managed direct3d libraries working, i keep getting cant find header, that type of error, and i put in everything it wants. or maybe its me.
# dweller said on June 13, 2005 5:18 PM:
I think comments are fixed Tom.

More managed samples in the SDK would be nice!
# Fabrizio Farrelli said on June 13, 2005 10:22 PM:
64bit support will be nice.
# Ken said on June 14, 2005 12:59 AM:
Hi,

My comment got lost. I'm rooting for templates. 3D, top-down, side-scroller, and mobile templates. When you create the template it would be cool to have a list of game loops to choose from. Also a template to deliver the game through a browser would be cool. Something that elegantly checks for the existence of .Net 2.0 and also returns what version of DX the user has would be enough.

Also tell the team to turn tab-scrolling back on so that we have the choice to have new tabs open to the right of everything else. I've been digging into the VS.Net IDE to make this happen but havn't had a lot of luck. You guys have totally disabled this and I can't figure out how to override it. You've totally stumped me but I think you can do it rather quickly. Ken.
# Andy West said on June 14, 2005 9:42 AM:
Anything to make animation blending / multiple animations simpler. I finally figured this out after about a week of sifting through C# and C++ code on the Web and in books. I mostly had to look at unmanaged code for hints, though.

Also, the documentation still has an unfinished feel to it. When is the "pre-release documentation" notice going away?

Overall, I'm very happy with Managed DX.
# Michael Hansen said on June 15, 2005 10:05 PM:
Hello and tanks for the great programing of Mdx
in the next version of mdx
Add support for parsing Bvh(Beovision Motion Capture) files
and then you onlye have to load your (head.x,arm.x,leag.x .. ect.)
it wood make the life easy that 3dsmax,maya allmost all other programes support export of bvh file.

Michael Hansen
# Marcus Stade said on June 16, 2005 2:28 AM:
Samples, templates and documentation. The need for proper documentation and more real-world samples is huge. As it is right now, you have to either have been a DirectX developer in the past, or try sifting through newsgroups and unmanaged code for days to figure out how to do whatever it is you're trying to do.

I'm still trying to figure out how to do some rudimentary post-processing at 24+ fps _without_ using pixel shaders...
# Russ C. said on June 16, 2005 4:55 AM:
I want to use (for example) Microsoft.Direct3D.Manager.Adapters to return the D3D adapters on this system ... Because I'm lazy I'd like to load the results into a ComboBox that lets me choose which adapter to use ...

The problem is that Microsoft.Direct3D.AdapterInformations' ToString() returns the namespace, not something usefull like the Description of the Adapter. Even worse, because its sealed I can't do a simple override, I have to write a wrapping class that exposes the AdapterInfomation.Information.Description as the ToString()

Basically, can we have some sanity in these helper classes to do things like this, without having to write wrappers and so-on ?
# David CATUHE said on June 16, 2005 6:20 AM:
Supports of generics.
And a working version of AudioVideoPlayback to render a video on a texture...... :)
# Joel Martinez said on June 16, 2005 8:16 AM:
Easier resource management. Less code to load, texture, and animated meshes.

:-)
# Ivan said on June 16, 2005 8:54 AM:
1. An MDX Toolbox with standard (UI elements) and advanced controls, code snippets such as:
- lights (omni/spot)
- cameras
- skybox

2. SDK Samples

3. More Documentation. A "NOT TO DO LIST" concerning perf issues.

4. Shader Tool as part of IDE

5. THE FINAL version of the game loop ;)

6. Ideally (most probably impossible), MDX's own GUI kinda like 3DSMAX where u add lights, cameras, objects and then assign actions to them... yeah right :)
# Fabrizio Farrelli said on June 16, 2005 12:20 PM:
The most intersting feature of Whidbey is
custom Debugger Visualizers.

I will absolutely love a texture (2d and cube)
and mesh visualizer shipped with mdx, and maybe
an effect visualizer, a device state
visualizer, a renderstate visualizer,
a render target visualizer and a stencil
buffer visualizer.

Those tools will greatly improve the workflow.

Thank you.
# Joshua Bair said on June 16, 2005 2:10 PM:
I second the AudioVideoPlayback texture fix already mentioned. Also, a full implementation of DirectPlay would be nice.

- Joshua
# Zach said on June 16, 2005 2:11 PM:
More VB samples :)
# sapropel said on June 16, 2005 2:16 PM:
mdx is great but you should for now just work on performance and adding better exceptions messages, and not just something like "there was an error" in directxexception.message (actually, i dont have the last sdk, so i dont know if that has been corrected).

performance is very important, if you want more people using mdx (even professional companies), you have to improve performance, not that it is bad, its rather good actually (but still far from native).
# Ken Rubin said on June 16, 2005 2:18 PM:
How about wrapping up the creation of the Direct3D Device class so that it can be optimally created without having to explicitly query the hardware?

E.g. Device deviceDirect3D = new Device(controlTarget).
# John H. Bergman said on June 16, 2005 5:23 PM:
How about more info about what is/will be available for the Compact framework.. I love the new IDE when it comes to portable devices and want to write a game for my PDA now!
# John said on June 16, 2005 6:20 PM:
MDX is great as it is.

A working example of the AVPlayback would be great. Support for DirectShow and Capture would be even better!
# Created by: X said on June 16, 2005 11:49 PM:
Just to repost the best suggestions I have read ...

1: Anything to make animation blending / multiple animations simpler.
2: ToString methods that return valid info and not just there namespace
3: Generics!
4: Easier resource management. Less code to load, texture, and animated meshes.
5: More Documentation. A "NOT TO DO LIST" concerning perf issues.
6: Shader Tool as part of IDE for HLSL. with intellisence / preview window and the works etc.
7: Custom debugger wizards for whidbey I will absolutely love a texture (2d and cube)
and mesh visualizer shipped with mdx, and maybe an effect visualizer, a device state
visualizer, a renderstate visualizer,
a render target visualizer and a stencil
buffer visualizer.
8: wrapping up the creation of the Direct3D Device class so that it can be optimally created without having to explicitly query the hardware? E.g. Device deviceDirect3D = new Device(controlTarget). IE: MORE ABSTRACTION
# RightHand blogs said on June 17, 2005 5:50 AM:
Do you have wishes for managed DirectX for Visual Studio.NET 2005? You are in luck. Tom Miller's put...
# santy said on June 17, 2005 8:33 AM:
Better integration with Avalon. Atm, need to do very ugly things ( like WindowHelper in Form ) in Avalon to get a HWND. Also, in PresentParameters there is a System.Windows.Form.Control reference, so I need to reference assembly System.Windows.Forms ( which is bad in a PURE Avalon app ). Pls remove the PresentParameters.DeviceWindow property and only use PresentParameters.DeviceWindowHandle, so I can skip the System.Windows.Forms.

thx
# mikrogen said on June 19, 2005 6:09 AM:
1. Better description of exceptions
2. Debug support for MDX in IDE (visualizers, highlighting shader syntax or any shader tool, toolbox, wizards..
3. Actual MDX library versions are pain! All (Summer, April, June) is 9.0c, libraries are not backward compatible and reliable release of MDX program is almost impossible!
# Jason said on June 19, 2005 10:14 PM:
seriously, if you cant tell from my title..

Documentation! I played with the current MDX stuff, and oh my.. is it awfull.

Sample code so you dont have to buy a $50 book would be nice too.

Also, Exception handling! the MDX wrapper over the native stuff is horible about throwing exceptions with meaningful messages.
# Exabyte256 said on June 20, 2005 5:49 AM:
I'd like a mesh format documentation or at least a loader that isn't so.. picky about the meshes.

I can't write an exporter for any programs because it just complains about the section which states vertices that overlap. No matter what kind of order I arrange them, it just shows an error message.
# jc said on June 21, 2005 1:26 PM:
I'd like to see a free 3D modeller built into whidbey which has the potential to create .x files and HLSL .fx files. I think it would be a great feature for the IDE. It has many possible implementations, even beyond the MDX world.

Imagine having a true object, with properties, and a visual representation.

For example:
Create a mesh of a mean looking Dwarf. Assign the mesh some properties; hair color, eye color, strength, wisdom, etc. and have the power to "Make Dwarf Class" Boom a dwarf class is built which you can now add to any of your existing projects.

Dwarf dwarf = new Dwarf();
dwarf.Mesh = "@:\\dwarf.x";
dwarf.HLSL = "@:\\dwarf.fx";
dwarf.HairColor = RGB(255,100,30);
dwarf.EyeColor = RGB(255,300,50);
dwarf.Strength = 35;
dwarf.Wisdom = 58;
...


This of course would be a library project so you would end up with Dwarf.dll, which contains the meshes, fx files, and base properties of a dwarf class.
# Ramy said on June 22, 2005 10:24 AM:
Some sort of HLSL intelisence, or documentaton on the available instructions in the HLSL ( or shader modules).
# Created by: X said on June 26, 2005 1:11 PM:
I think what I have come to realize over the years of using directx (since dx5 using patrice scribe's third party *.tlb files for vb) is that the documentation only describes what the individual Classes/methods of the dx api do. What the documentation does not do is tell you is how to best make use them.

I personally am waiting for longhorn to ship to see what kind of performance gains it will have over GDI. I would love to just be able to use pure .net framework winodws forms code to create a game but it's way to slow for that.
# Mr eZ said on June 29, 2005 2:53 AM:
I would like to see generics in all thier glory, especially when it comes to list and sorting. It would be nice to extend the refactoring/code snippets in VS2005 for common repetitive tasks in MDX.
# jdarpinian said on June 30, 2005 5:35 PM:
For whidbey-specific features, debugging visualizers and generics top my list.

A more general feature: Instead of using the generic "error in the application" message all the time, using the last few messages written to the debug console by DirectX would be awesome, so you don't have to turn on very slow unmanaged debugging to see them. They are usually quite accurate and informative when using the debug runtime. I guess it might be tough to access them from managed code, but perhaps the unmanaged guys could provide a hook for you to get at them? It would probably be the single best change you could make for improving beginners' experiences with MDX.
# NyaRuRu (MVP) said on June 30, 2005 11:12 PM:
Though Debugger Visualizers have already been mentioned, I would like to say DebuggerDisplayAttribute is light and useful.

Also, I'm interested in CLR 2.0 "reliability" features; SafeHandles, CriticalFinalizer and ConstrainedExecutionRegions.
For example, it seems almost all P/Invoke Functions in CLR 2.0 have ReliabilityContractAttribute like this:
ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)
So I guess Microsoft BCL team has an internal guideline for the usage of Unmanaged Resources and if it is so I think it is reliable for the implementation of Managed DirectX.
Anyway I hope Managed DirectX will be successfully integrated with the new .NET world.
Thanks.
# dxFoo said on July 1, 2005 1:36 AM:
I'm sure there's a ton that can be improved, as much as your book. However, focus on making 1.1 apps run smoothly with your 2.0 version. Last thing I want is Microsoft to again go crazy with their ideas breaking past software. Good luck.
# dxFoo said on July 1, 2005 1:37 AM:
By the way, please work on managed documentation before you start adding more features.
# Kurra said on July 5, 2005 9:14 AM:
I have just install a game called Re-Volt and when I try to run it, the computer says no zbuffer. What could be the problem.
# Paul said on July 5, 2005 10:26 PM:
1. VB Documentation
2. The capabilties that exist(ed) in the now depricated DirectPlay.
3. VB Documentation
4. VB Samples
5. VB Documentation
# Nick Winters said on July 6, 2005 12:42 AM:
These have been mentioned, but I'll post here to second them.

1. A Widget library
2. More descriptive exceptions
# Brandon Bloom said on July 20, 2005 8:06 PM:
This comment belongs attached to the last word on the render loop post, but commenting is dissabled for that post. I know you must be bored to death with the topic, but it is a *VERY* important one.

Please include include the necessary code to implement this ultimate render loop in the official Microsoft assemblies as many developers (myself included) may wish to avoid any native methods in their code for security and potential portability concerns.

One great addition to future versions of the managed libraries would be a replacement for Application.Run, such as Direct3dApplication.Run, which could implement this render loop by accepting an IDirect3dWindow which extends IWin32Window (or whatever it is) and provides a DoFrame method. At the very least, please include this render loop explanation in the documentation.
# Catalin Pop said on August 4, 2005 9:07 AM:
1. Separate SDK for MDX wihout saples or documentation for unmanaged part :), smaller, lighter
2. Shader visaliser with integrated editor would be nice
# Brandon Bloom said on August 7, 2005 12:31 AM:
Design-time support! Please!

TypeConverters would be extremely welcome for Matrix, Quaternion, Vector3, et al.

You could look at the source for System.Drawing.Point and System.Drawing.PointConverter to see just how easy it would be to provide these TypeConverters.

Thanks!
# Newbie Blog » Blog Archive » Tutorial : C# Loader Lock Exception when debugging .NET 2.0 said on March 26, 2007 8:38 AM:

PingBack from http://www.noppanit.com/?p=54

# Why do I get a ‘LoaderLock’ Error when debugging my Managed DirectX application | rodrigueroland.net said on February 21, 2008 4:37 AM:

PingBack from http://rodrigue.rodsoft.be/?p=98

# Tom Miller s Blog Features Whidbey Oh My | Portable Greenhouse said on June 1, 2009 3:55 PM:

PingBack from http://portablegreenhousesite.info/story.php?id=15363

# Tom Miller s Blog Features Whidbey Oh My | Hair Growth Products said on June 9, 2009 10:49 PM:

PingBack from http://hairgrowthproducts.info/story.php?id=465

# Tom Miller s Blog Features Whidbey Oh My | debt consolidator said on June 19, 2009 10:50 AM:

PingBack from http://mydebtconsolidator.info/story.php?id=22942

# Tom Miller s Blog Features Whidbey Oh My | debt solutions said on June 19, 2009 12:11 PM:

PingBack from http://debtsolutionsnow.info/story.php?id=10044

New Comments to this post are disabled
Page view tracker