Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make Cross-Platform - macOS/Linux #59

Open
shanazzlowe opened this issue Jul 15, 2017 · 33 comments
Open

Make Cross-Platform - macOS/Linux #59

shanazzlowe opened this issue Jul 15, 2017 · 33 comments

Comments

@shanazzlowe
Copy link

@shanazzlowe shanazzlowe commented Jul 15, 2017

For those that have Linux or Mac, and not Windows.

@JosefNemec
Copy link
Owner

@JosefNemec JosefNemec commented Jul 15, 2017

Not planned in near future, see #38 for more details.

@JosefNemec
Copy link
Owner

@JosefNemec JosefNemec commented Jul 15, 2017

I will leave this open for other people to see. Also it's not definite NO, it's just not possible at the moment.

@JosefNemec JosefNemec reopened this Jul 15, 2017
@JosefNemec
Copy link
Owner

@JosefNemec JosefNemec commented Aug 30, 2017

Note to myself: check out NoesisGUI for possible multi-platform interface.
Also checktou Xamarin.Forms 3.0 when it's released.

@aaronfranke
Copy link

@aaronfranke aaronfranke commented Oct 8, 2017

+1 Linux/Mac cross-platform. I recommend using Mono instead of .NET.

@johannesgunnar
Copy link

@johannesgunnar johannesgunnar commented Oct 15, 2017

Would love to see a Linux version of this! <3

@ghost
Copy link

@ghost ghost commented Dec 19, 2017

Would also want a Linux version, hope it will be a thing someday.

@jharmer95
Copy link
Contributor

@jharmer95 jharmer95 commented Oct 4, 2018

Might want to look into .NET Core 3.0 (will come out sometime early next year), it supports WPF
image

@JosefNemec
Copy link
Owner

@JosefNemec JosefNemec commented Oct 4, 2018

.Net Core 3.0 will not make WPF multiplatform, it only means that you will be able to implement WPF applications using Core instead of Framework. But those applications will only run on Windows.

@JosefNemec
Copy link
Owner

@JosefNemec JosefNemec commented Dec 5, 2018

Possible good news for Playnite cross platform. Microsoft just open sourced WPF, so there is a hope if somebody ports it to other platforms :)

@murlakatamenka
Copy link

@murlakatamenka murlakatamenka commented Dec 5, 2018

@JosefNemec came here to share this news but clearly I'm late. Glad to see you're aware of it.

@trymeouteh
Copy link

@trymeouteh trymeouteh commented Jan 20, 2019

This would be great. I want to make my old gaming pc a linux gaming rig and playnite is great!

@L1cardo
Copy link
Contributor

@L1cardo L1cardo commented Feb 2, 2019

Would like to have a Mac version

@jarrard
Copy link

@jarrard jarrard commented Feb 10, 2019

+1 For Linux,
having a alternative to Lutris would be nice, however I know it will be a challenge because people will expect you to integrate wine container support, and possible custom wine build downloads like Lutris. Would be welcome non the less.

@TBK
Copy link

@TBK TBK commented May 19, 2019

nix support should be "relatively easy" with .NET Core 3.0 - https://github.com/dotnet/wpf#status

@JosefNemec
Copy link
Owner

@JosefNemec JosefNemec commented May 20, 2019

@TBK *nix support is literally impossible right now. WPF being open source doesn't mean that it runs on Linux, it's still Windows only and based on Windows only technologies (DirectX). Somebody would need to port it first, which is definitely not "relatively easy".

@DanielGilbert
Copy link

@DanielGilbert DanielGilbert commented May 28, 2019

@JosefNemec Highly appreciate your effort in supporting Linux. You might want to take a look at https://github.com/AvaloniaUI/Avalonia for a cross-platform, WPF-like UI. Although it's Beta, it's a pretty advanced and stable Beta. Just as an idea.

Might not solve the CefSharp issue, though.

Keep up the great work!

@Ruedii
Copy link

@Ruedii Ruedii commented Jul 3, 2019

I can chart a few steps to making cross platform.

I browsed over the code and specific WPF code is limited as is other Windows specific code, but it is scattered through the codebase.

I am not sure if YAML is used embedded in HTML. If so that might be difficult to work around. Moving to pure HTML5/CSS would be the only option for working around this, but this opens the door for other features, such as remote browsing of your library from any web browser.

As of other parts they should be able to be isolated. Only a handful of windows-specific functions are anywhere that isn't already platform specific. Most of those could be isolated to small subsection written specifically for each platform.

Process tracking needs to be done per-platform.
Registry functions would need to be replaced with non-windows alternatives.
Most game launching plugins would each have substantial per-platform segments.

@aaronfranke
Copy link

@aaronfranke aaronfranke commented Jul 27, 2019

Microsoft has announced that .NET Framework is being discontinued, and that after .NET Core 3.1 there will be one .NET called .NET 5: https://devblogs.microsoft.com/dotnet/introducing-net-5/

So, moving to Mono or .NET Core would not only help make Playnite cross-platform, but it would also prevent Playnite from being left behind using an outdated and unsupported framework.

Microsoft is also trying to make Mono and .NET Core function as drop-in replacements for each other, and Mono is designed to re-implement .NET Framework, so it should be fairly easy to convert Playnite to Mono and then optionally to .NET Core once you figure out the WPF problem.

@JosefNemec
Copy link
Owner

@JosefNemec JosefNemec commented Jul 28, 2019

This is what has to happen for me to consider doing Linux/macOS. And this is for me personally for the official Playnite releases that I develop a provide some support for.

  1. There's a big enough demand for it in the first place.

I don't want to end up maintaining these versions for just handful of people. Mainly because there is quire similar alternative for Linux called Lutris, which seems to be quite popular.

  1. WPF is ported to Linux/mac or Avalonia reaches mature state with functionality on par with WPF.

At this point reworking UI to something completely different is not an option for me. I like working with XAML based UIs and completely reworking UI stack is not something I want to do (especially since there are no good alternatives with proper .NET support).

  1. CefSharp is ported to Linux/macOS or some good alternative is found.

CefSharp is quite critical part of Playnite for 3rd party integrations and we would not be able to port them over without it. As an alternative we would have to find some usable alternative, which I'm not currently aware of (CefGlue probably being the only one, but it's not as good as CefSharp from what I saw in past).

@sferra
Copy link

@sferra sferra commented Jul 28, 2019

That sounds reasonable. 2) and 3) seem to be external factors which you don't/won't influence directly.
But how do we make 1) measurable and how would you define "big enough"? : )

@JosefNemec
Copy link
Owner

@JosefNemec JosefNemec commented Aug 2, 2019

I don't know how big is big enough. I will evaluate that properly once 2) and 3) are sorted out :)

@JosefNemec JosefNemec changed the title Make Cross-Platform Make Cross-Platform - macOS/Linux Nov 1, 2019
@slavikme
Copy link

@slavikme slavikme commented Feb 13, 2020

Please, help me understand something.
If this is just a launcher, why it should be developed with .NET?
There are tons of other (and good) frameworks that have cross-platform support, like Electron, Haxe and more.

@JosefNemec
Copy link
Owner

@JosefNemec JosefNemec commented Feb 13, 2020

Please, help me understand something.
If this is just a launcher, why it should be developed with .NET?
There are tons of other (and good) frameworks that have cross-platform support, like Electron, Haxe and more.

Because I like working with .NET (and C#) and I don't like developing desktop apps using web technologies.

@slavikme
Copy link

@slavikme slavikme commented Feb 13, 2020

Thanks for the clarification.

@boehs
Copy link

@boehs boehs commented Feb 13, 2020

It is really a killer, I love this launcher, but I need to find one that will work on both my linux and windows pc

@JosefNemec
Copy link
Owner

@JosefNemec JosefNemec commented Apr 3, 2020

I'm just going to leave this here to make sure I don't forget about it in case I decide to do Linux version in future.

@BeastlyPixels
Copy link

@BeastlyPixels BeastlyPixels commented May 16, 2020

Hello Josef, this is an outstanding project and I appreciate the effort you have put into this. Have you thought more on porting this to linux? Or maybe have a timeline?

@JosefNemec
Copy link
Owner

@JosefNemec JosefNemec commented May 20, 2020

Before somebody mentions that we should use this, new .NET Multi-platform App UI announced yesterday, here are my thoughts about it:

  • It's based on Xamarin.Forms, which is pretty bad on desktop (current version that is). Very limited compared to WPF and forcing you to use design patters suitable mainly for mobile platforms.
  • Linux will not be officially supported by Microsoft and will by maintained by the community, which makes it dead on arrival for Linux.
  • Looks like they are removing theming support.
  • It's in very early stage of development, so it will take years before it reaches level of maturity to be usable for us.
@bverkron
Copy link

@bverkron bverkron commented Jun 4, 2020

I see little mention of WINE. Has anyone tried running this via WINE?

@shakeyourbunny
Copy link

@shakeyourbunny shakeyourbunny commented Jun 4, 2020

I don't see much sense into this, because you have to run the games also in the same WINE context as PlayNite would be in.

@djibux
Copy link

@djibux djibux commented Jul 21, 2020

Well @bverkron, it runs OK with Wine provided that you have mono installed (package mono-complete on Debian) and use Winetricks to install corefonts and .Net (I went for version 4.8 but 4.6.2 should be enough).
The app has some graphical glitches but it's very usable.
As a library manager Playnite is really awesome. I don't use it to launch games but use Lutris for that. It creates a different wine prefix for each game which it nice when you run multiple games that require different tweaks.
I would love a native version :)
Hope that helps.

@shakeyourbunny
Copy link

@shakeyourbunny shakeyourbunny commented Aug 8, 2020

Any news on this? :)

@JosefNemec
Copy link
Owner

@JosefNemec JosefNemec commented Aug 8, 2020

No news, don't expect Linux version any time soon.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
You can’t perform that action at this time.