1
Vote

Please remove the XNA stuff and update the library to target .net core (UWP).

description

This is unusable for Windows store apps as it is. I'm going to look at the source to see if i can do something with it. Hopefully i can just build a new solution. But we'll see. UWP uses .NET core instead of .NET framework.

XNA ?? Why use something so old, no one uses XNA anymore. There's only so many times i can reinstall something that I'm never going to use. Look at building a SharpDX sample.

comments

GavinWilliams77 wrote Jul 10, 2016 at 10:58 PM

Since posting this I have actually discovered that you're working on 2.0 with .net core and sharpdx renderer. Reading up on it now. Hopefully we don't have to wait too long :) I'm excited that you're working on a new engine.

RossNordby wrote Jul 11, 2016 at 9:56 PM

XNA is only used by the demos application. The libraries-only BEPUphysics solution has no XNA dependency, and should be pretty easy to port to .NET Core.

Here's the list of changes in a PCL port which covers a lot of the same ground:
https://github.com/jwollen/BEPUphysics-Xenko/commit/b89efab58e997c856680c45bd50a737b211624f1

There's a few minor changes required here and there. The biggest change is in threading- I would recommend just getting rid of ParallelLooper. You can supply your own implementation of IParallelLooper externally, or make a TPL-backed implementation in a couple of lines of code (as the above port did). For the SpinLock, either replace the usages of the BEPUutilities spinlock with the built-in version (the bepuutilities version only exists because of legacy platform issues), or switch the spinning logic to use the platform SpinWait.

But yes, XNA is old! So is BEPUphysics <=v1.4.X- I doubt I'll spend the time to bring up BEPUphysics v1.4.X to .NET Core or PCL and a non-XNA demos application since it would just delay 2.0 that much more.

For anyone curious reading this, 2.0 will indeed be targeting the modern frameworks (i.e. .NET Core). The sample application renderer is still up in the air a little. DX12 would be personally convenient so I suspect that will show up first, but I also want wide platform support- meaning probably also DX11 and eventually Vulkan. Notably, the project will be on github, not here in this repo- you can keep an eye on things at https://github.com/RossNordby (which I note you already found :P).

I'm going to leave this issue open for visibility and so that I can cathartically close it when v2.0 is ready.

GavinWilliams77 wrote Jul 12, 2016 at 12:51 PM

Thanks for the tips. I got it working in my 'engine' tonight. As you recommended, I used Jorg's PCL port as a basis. Dropped all the code into a Universal Windows class library. Changed Thread usage to Task (not tested yet). Changed maths translation references to my own classes that are derived from SharpDX maths. Got it to compile. And then to resolve circular dependencies I just moved physics and utilities into my engine project.

It was good to see my mesh flying off into the distance -- sideways gravity :)

Thanks for a fast answer, it really helped me know what to do.

RossNordby wrote Dec 17, 2016 at 2:47 AM

This is now half done, with the github release of the monogame version. Out of the box .net core support will probably have to wait for v2 still.

Github link:
https://github.com/RossNordby/bepuphysics1