SharpDX: Managed DirectX for Metro from the community

One of the disappointments in Microsoft’s new Windows Runtime platform is lack of support for XNA, a gaming/fast graphics API which wraps DirectX and is supported on Windows, Windows Phone and on Xbox 360.

Developer Alexandre Mutel has stepped up to fill the gap with the open source SharpDX, which also provides access to the DirectX API from C#, supports both desktop and Windows Runtime development. One of the first games to use SharpDX, ARMED, has already arrived in the Windows Store.


In addition, Mutel says “it will certainly be possible to use ShardDX from Windows Phone 8”.

SharpDX was made possible by a custom tool called SharpGen which generates the .NET API automatically from the DirectX SDK.

The puzzle is why Microsoft did not make more effort to support XNA in Windows 8, or failing that to provide an alternative for .NET developers.

If you want to use SharpDX, be prepared for considerable effort learning the API, as there is little documentation so far. Still, it will likely be easier than learning C++, which is the official solution for DirectX on the Windows Runtime.

3 thoughts on “SharpDX: Managed DirectX for Metro from the community”

  1. I would circumvent SharpDX and leverage Unity3D instead. It provides a higher level of abstraction than just executing shader pipelines against meshes – it supports C#, and encapsulates a game engine, a physics engine, a terrain editor, a particle emmiter etc, in a unified and extensible UI.

  2. @Josh Reuben, your general statement “I would circumvent SharpDX and leverage Unity3D instead” is absolutely misleading. Unity3D is a commercial engine (with several 1000$ for Unity Pro with all extensions per Developer seat), with multiplatform support…etc. SharpDX is *just* a managed DirectX wrapper. Lots of student/indie/company are using DirectX not to only to make advanced games, but to do multimedia applications or just to learn how to build an engine. There are dozens of simple situations where we want to use DirectX in a C# Windows 8 Metro application, without having to use or buy a commercial engine.

Comments are closed.