phr00t / FocusEngine

Focus Game Engine. This is Stride/Xenko fast-tracked for Phr00t's Software games. Improvements over the original Focus on Vulkan support, PC platforms, VR, performance & ease. Cherry-picks commits from other forks as needed.
MIT License
98 stars 11 forks source link

Upgrade to .NET Core 5 Runtime #106

Closed phr00t closed 2 years ago

phr00t commented 2 years ago

GameStudio currently targets NetFramework v4.8. Would love to move everything over to NET Core 5, then we'd be able to support newer versions of BepuPhysics, at least. Fortunately Net Framework v4.8 isn't "deprecated" and has no end-of-life set, so this is relatively low-priority.

The original Stride engine did move over to NET 5, but the build process seems quite different and appears to be difficult to translate. The "core" commit making the change seems to be this one:

https://github.com/stride3d/stride/commit/8be574b4950623d112e32b813992af4e44ac2f25

... but related commits around that one are probably also important.

I started a branch trying different things to get closer to .NET 5, but get 3000+ errors regarding "type or namespace not found" for things like Xenko.Core.Mathematics, and really unsure what the problem is...

https://github.com/phr00t/FocusEngine/tree/net5

Help greatly wanted!

phr00t commented 2 years ago

Current progress is on the https://github.com/phr00t/FocusEngine/tree/net5 branch.

phr00t commented 2 years ago

As of this post, there are a few issues with the NET5 branch:

1) GameStudio doesn't build in Visual Studio 2019, but does build if you run msbuild Xenko.sln via a command-line. No idea why. 2) You can't create new projects (new projects are not listed to select) after opening GameStudio. 3) Opening existing projects causes errors (something about .hash files not found). Commits were attempted to fix this:

https://github.com/phr00t/FocusEngine/commit/64a4a095ea08d70821e455226870d2ba075f4a50

... but were unsuccessful.

I've generally moved back to maintaining / improving the .NET 4.8 master, as .NET 4.8 is supported indefinitely and there is no pressing need to move to .NET 5 yet. However, help is greatly appreciated to move this forward.

phr00t commented 2 years ago

Special thanks to TechInterMezzo for getting the Focus Engine runtime to build and run on .NET 6! About a 10% performance improvement was found on a physics "box faller" test

https://github.com/phr00t/FocusEngine/commit/c6f4ab5c0c85c037cdf0a5ccf50c41ad605ed7b9