Yellow-Dog-Man / Resonite-Issues

Issue repository for Resonite.
https://resonite.com
139 stars 2 forks source link

Rework Steamworks.NET to a universal (cross platform) library #3050

Open Frooxius opened 1 month ago

Frooxius commented 1 month ago

Is your feature request related to a problem? Please describe.

Currently the Steamworks.NET library is designed in a way that requires a Windows and Linux/OSX specific builds of the Managed library.

This complicates the build process, since it doesn't fit well into the build pipeline, it's atypical for how other wrapper libraries work (e.g. Assimp, Freeimage and so on only have a single Managed wrapper library) and prevents from creating a unified distribution build for headless.

Describe the solution you'd like

Rework our fork (https://github.com/Yellow-Dog-Man/Steamworks.NET) to require a single version of the managed library, with any platform specific logic happening at runtime.

Describe alternatives you've considered

Switching to alternate wrapper library, but this would require rework of all of our integrations, which can be a lot more work.

Additional Context

Here's some info how to check the current platform in C#/.NET: https://stackoverflow.com/questions/5116977/how-to-check-the-os-version-at-runtime-e-g-on-windows-or-linux-without-using

Requesters

No response

Frooxius commented 1 month ago

I've requested @BlueCyro to have a look into this first.

However since this is open source library, community help on this is also welcome if anyone wants to take a crack at it.