compatibility-problem with older .NET versions in Windows 8

Started by
5 comments, last by 6677 11 years, 10 months ago
Since a month I am learning to write games, using the book "Learn VB .NET through Game Programming" from Matt Tagliaferri.
The examples also include working with DirectX and those work fine in Windows XP.

I have the try-out version of Windows 8, and I installed Visual Basic 2010 Express, with the intention to see if I can run the same examples from Windows XP.
Sofar it is not working, simply because I cannot get the older .NET-versions installed which the book uses.
I need the .NET versions 3.0 and 3.5 but Windows 8 simply refuses to install it.

When I try to run the DirectX - examples on .NET 4.0 I get the following error:
A first chance exception of type 'Microsoft.DirectX.DirectDraw.UnsupportedException' occured in Microsoft.DirectX.DirectDraw.dll[/quote]
... which says me you really need the older .NET version as some functions are not supported anymore with .NET 4.0
The error was on the following line:
Fdraw.SetDisplayMode ( WID, HGT, 16. 0, False )[/quote]

Can somebody help me out? Thank you.smile.png
Advertisement
That exception is usually thrown if the requested display mode is not supported by the driver at the time of the call. I believe it has nothing to do with .net version compatibility.

Also, Windows 8 preview is a bit quirky with old technologies like DirectDraw.

Niko Suni

Hi Syncan, welcome to gamedev! I see you are using managed DirectX, and that you have already had some answers over at MSDN (http://social.msdn.microsoft.com/Forums/nl/Vsexpressvb/thread/a35a60e5-738e-4a55-ba4c-e445ff072127).

To add to Nik02's reply, unfortunately Microsoft stopped supporting that API a long while ago because of the many notorious bugs that kept on creeping up. They decided to instead revise the whole thing with XNA, so you may find that although your app works in WindowsXP, running it under Windows 8 could be something the original developers of the API never got around to preparing for.

The reason why this is important is that working on an API that is no-longer supported, means that it's likely this will not be the only issue that you come across while developing games, and last thing we want is someone sacking something they might have really enjoyed because of frustration with continuous unfixable bugs! In the MSDN post someone recommended SlimDX, id like to second that as SlimDX is a valid, stable and well maintained replacement, plus it works with vb.net.

Aimee

We are now on Tumblr, so please come and check out our site!

http://xpod-games.com

Thanks for both of your replies.
So if I summarize the answers it means that the only way to go is to use SlimDX.
I have never worked with SlimDX. I understand it is an open-source version of the DirecX libraries, made by other people than Microsoft, right?
Does that mean that the programs I mentioned in my first post could run well by just adding the SlimDX libraries, or does it use a different syntax?
SlimDX is a managed wrapper around DirectX, like a very thin layer over the top, which exposes DirectX functionality to .NET languages such as C# and VB.NET. It is not another version of DirectX, it actually uses DirectX under the hood. You won't be able to run programs written in Managed DirectX just by adding the SlimDX libraries, the syntax is different. So you'll have to do some work to port the code if you want to reuse it. Many of the concepts that you might learn in Direct X, Managed DirectX, XNA, SlimDX and SharpDX are common amongst these system, as they each have DirectX beating at their heart.

XNA was the successor of Managed DirectX, but it hasn't been updated along with DirectX over recent years so it's locked to DirectX 9, which is about 6 years old now. While SlimDX and SharpDX are modern frameworks that provide DirectX 10/11 functionality. You should seriously look into one of these frameworks. Personally I use SlimDX, but I'm really interested in what Alexandre Mutel is doing with SharpDX. I believe the two are very very similar, in that they are mostly trying to do the same thing with different underlying approaches.

Good luck with the transition whatever framework you choose :)
I will take the time to read me into SlimDX. It is difficult for me as I was just learning Direct X from that book I mentioned in the first post ( "Learn VB .NET through Game Programming" from Matt Tagliaferri ). Maybe I should first learn everything from that book to get used to the concept of working with game-developing.
By the time I learned all of this, the retail-version of Windows 8 is about to get released. Until then I will use Windows XP with the older .NET versions.
I think after that I will understand more of DirectX, and then the transition to SlimDX is probably better to understand for me.

Not sure if this is really the right way to go but I do not see another way.
Another rendering framework I thought I would bring up is M-Ogre, Works in VB.net but I believe its very very different syntax from DirectX, however some of the results from it are simple beautiful. Just thought you might want to know you have other options.

SlimDX is definately a good choice though.

This topic is closed to new replies.

Advertisement