sharpdx / SharpDX

SharpDX GitHub Repository
http://sharpdx.org
MIT License
1.7k stars 638 forks source link

Realistically, is SharpDX still in active development? #918

Closed nathan-alden-sr closed 7 years ago

nathan-alden-sr commented 7 years ago

I'm looking to write a game engine but it doesn't appear as though there is much development activity on SharpDX. The samples don't compile and have 2013 copyrights in them. Before I make a big investment in using SharpDX, I'd like to confirm that this project has not been abandoned.

kburgoyne commented 7 years ago

I'm a user and not one of the developers. What I can say is they JUST completed a major effort to update SharpDX for UWP and other more modern things. It was a major version change (from V3.x to V4.x).

Unfortunately the sample/demo apps are not up to date for the new stuff, but they're obviously lower priority than getting the core updated. I will say the fancy shared logic design of the samples does tend to make them rather difficult to use for learning purposes.

If you track down the final V3 branch it should work with the samples. Then once you're feeling comfortable writing your own code based on what you've found from the samples, then you can use that experience to code against V4.

I started using V3 building a Win8.1 Universal app and had a ton of code working. Then I decided to abandon Win8.1 Universal and target Win10 UWP. My graphics layer DLL that interfaced with SharpDX worked "as is" going from V3 to V4. (Other than updating references.) All my changes involved simply plugging my Win8.1 Universal code pieces into the new Win10 UWP app template VS2017 created.

If I remember correctly back to the days when I was just starting with SharpDX, I believe I started by stepping through the cube samples and then literally adding the SharpDX calls as my stepping encountered them into the Win8.1 Universal template from VS2015. The samples can be a little daunting to just look at because of their shared logic structuring, but stepping through them provided me with an accurate sequence of calls without concerning myself with where the calls were located in the source code.

SharpDX is designed to be nothing more than a very thin adaptation layer to allow C# to call DirectX. If you already know how to use DirectX (which I didn't really), then you just do basically the same thing in C#. If you don't know DirectX (like me), then you'll have to learn to follow the general concepts in the MSDN C++ DirectX documentation but use the C#-style SharpDX calls to make the DirectX API calls. SharpDX is not a graphics engine or "another way to do things". Using it is the same as using DirectX from C++, but with C# syntax, etc.

Gavin-Williams commented 7 years ago

The project is alive, and there seems to be ongoing effort from various people to drill into particular parts of the framework. and it has been pretty consistently updated every couple of years or so as needed for UWP support etc. xoofx (the core developer) is active, even if it's just to OK other peoples work. I really can't say how much work he does behind the scenes, because I just don't know, but he is exceptional at keeping hands on and coordinating updates as they trickle in.

And 4.0.1 has just been released, which I didn't even realize until I read kburgoyne's comment. So I'll be updating from 3.1.1 tonight. So that's a really good indication that it's current.

I use SharpDX for UWP today, and it's stable, and I can't remember the last time I found a bug. I recommend it highly if you like C# and want DirectX. Great for a C# engine.

nathan-alden-sr commented 7 years ago

Cool, thanks for the replies. I didn't mean to trash on the project; it's actually quite amazing and makes DirectX development much more accessible. I was just curious about whether it would be maintained going forward.

xoofx commented 7 years ago

I'm looking to write a game engine but it doesn't appear as though there is much development activity on SharpDX.

SharpDX is almost a 7 years old library, encapsulating even older DirectX API that are not changing, so it is one of the reasons why the development doesn't get lots of investment when there is no new DirectX API to wrap. As @kburgoyne explained, SharpDX is nothing more than a wrapper of a C++ API.

The samples don't compile and have 2013 copyrights in them.

Good catch, this has to be fixed, as there was a pretty big refactoring brought by @jkoritzinsky recently to move SharpDX to the new csproj format (and allow to target all .NET4+ to .NET Core platforms at once), we forgot to update the samples (Note: samples just have to reference NuGet packages instead of referencing directly assemblies)

Before I make a big investment in using SharpDX, I'd like to confirm that this project has not been abandoned. I was just curious about whether it would be maintained going forward.

Personally, I'm no longer investing into the library, because I don't use it anymore in my day to day work, so it has limited usage for me. That being said, I'm welcoming contributors, accepting and managing Pull-Requests for SharpDX, so it is up to the people using this library to help it back! All of the work in the past year has been brought by contributors and PRs.

nathan-alden-sr commented 7 years ago

I think the issue with the samples is that they appear to use binary references instead of project or NuGet package references. If that were fixed, they'd probably work right off the bat.

EDIT: Oops, I see you just said the same thing. :)

I'll close this issue.