zaimoni / RSRevived

30 stars 3 forks source link

Breaking out of Microsoft Windows #15

Open zaimoni opened 3 years ago

zaimoni commented 3 years ago

It turns out that directly using the Form class from the System.Windows.Forms namespace drags in a hard Windows operating system dependency via System.Drawing. A more cross-platform alternative is said to be Windows Presentation Foundation.

zaimoni commented 3 years ago

Inquiry made at https://old.reddit.com/r/csharp/comments/p2gxo6/migration_from_winforms_recommended/ .

It appears that there are zero Microsoft-supported options. (MAUI is due Nov 2021 but will not be ported to Linux by Microsoft. Windows Presentation Foundation and Universal Windows Platform are also locked-into Windows, and Xamarin.Forms is both deprecated in favor of MAUI and does not have Linux as a target.) Let's ignore Webassembly i.e. Blazor for now.

Candidates proposed at time of composing this:

zaimoni commented 3 years ago

Not recommended on Reddit: Monogame https://www.monogame.net/ . Probably due to last release date (August 10, 2020) predating .NET 5 .

zaimoni commented 3 years ago

From MP at https://roguesurvivor.proboards.com/post/3063/thread

Long story short, I'm not familiar enough with the Linux landscape yet to offer any valuable guidance. It's a tricky time too, as most distributions have views towards retiring xorg in favour of Wayland in the not-too-distant future. Add to that the fact that there is heavy fragmentation between QT and GTK amongst the major desktop environments. Therefore, if you are indeed keen on taking a shot at a Linux build, all I can suggest is to pick whichever API seems most appealing to you. If nothing else, I'm happy to playtest whatever you might come up with. And if the future lends itself I might get back to chipping in with some code somewhere down the line.

Key points:

zaimoni commented 3 years ago

https://old.reddit.com/r/roguelikedev/comments/p6wdpl/what_does_this_opengl_error_mean/ :

OpenGL in general has the known problem on Macs that Apple refuse to support it properly; they would rather force Mac developers to use their proprietary Metal API. It's been horrible for many years, and gets increasingly and differently broken with every OSX release.