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

[Core] Linux Support #988

Open
3 tasks done
killzoms opened this issue Mar 22, 2020 · 27 comments · May be fixed by #1848
Open
3 tasks done

[Core] Linux Support #988

killzoms opened this issue Mar 22, 2020 · 27 comments · May be fixed by #1848
Labels
Area: setup Related to installing or configuring Nitrox Area: user interface (launcher) Related to UI/UX in the launcher
Milestone

Comments

@killzoms
Copy link
Collaborator

killzoms commented Mar 22, 2020

  • Remove/Replace usage of the windows registry
  • Wait for UWE to release the mod-pocalypse update
  • Implement the cross platform launcher
@sprynar
Copy link

sprynar commented Mar 27, 2020

Yeah, I recently wanted to play with my friends, but due to my OS I can't play. Would really appreciate, if developers would fix it.

@sprynar
Copy link

sprynar commented Mar 27, 2020

If it helps, I will post my log file here.
I'm running Manjaro Linux.
nitrox-2020-03-27.log

@Measurity
Copy link
Collaborator

PR related to this: #995

@Jannify
Copy link
Member

Jannify commented Jun 1, 2020

Sever is Linux ready. Now we have to wait for the cross platform launcher (with electron) for client side Linux support.

@Blu3wolf
Copy link

Is there a separate issue for the launcher rewrite in electron? Id like to stay up to date on whats happening with this :)

@Jannify
Copy link
Member

Jannify commented Aug 13, 2020

Not yet but there is a pull request #1127

@adario7
Copy link

adario7 commented Dec 1, 2020

For those running the nitrox launcher under linux with wine and getting the following error:
[ERROR] System.Runtime.InteropServices.COMException (0x88980406): Exception from HRESULT: 0x88980406
setting
export WINEDLLOVERRIDES='d3d9=""'
before executing the nitrox launcher fixed it for me.
may be related to this.

@Jannify Jannify changed the title Linux Support [Core] Linux Support May 9, 2021
@Jannify
Copy link
Member

Jannify commented May 9, 2021

To work on this issue we first need to finish moving the launcher to electron (or similar framework).

@marcleonio
Copy link

marcleonio commented Apr 14, 2022

Erro version 1.6.0.0
Replace TargetFramework net472 to netcoreapp3.1
and LangVersion 10 to preview

remove line 1 in Log.cs
add "using NitroxModel.Logger;" in other files

run command:
$sudo dotnet run --project Nitrox.BuildTool

System.PlatformNotSupportedException: Registry is not supported on this platform.
at Microsoft.Win32.RegistryKey.OpenBaseKeyCore(RegistryHive hKey, RegistryView view)
at Microsoft.Win32.RegistryKey.OpenBaseKey(RegistryHive hKey, RegistryView view)
at NitroxModel.Platforms.OS.Windows.Internal.RegistryEx.GetKey(String path, Boolean needsWriteAccess, Boolean createIfNotExists) in NitroxModel/Platforms/OS/Windows/Internal/RegistryEx.cs:line 224
at NitroxModel.Platforms.OS.Windows.Internal.RegistryEx.Read[T](String pathWithValue, T defaultValue) in NitroxModel/Platforms/OS/Windows/Internal/RegistryEx.cs:line 24
at NitroxModel.Helper.NitroxUser.get_PreferredGamePath() in NitroxModel/Helper/NitroxUser.cs:line 58
at NitroxModel.Discovery.InstallationFinders.ConfigGameFinder.FindGame(IList1 errors) in NitroxModel/Discovery/InstallationFinders/ConfigGameFinder.cs:line 14 at NitroxModel.Discovery.GameInstallationFinder.FindGame(IList1 errors) in NitroxModel/Discovery/GameInstallationFinder.cs:line 34
at Nitrox.BuildTool.Program.EnsureGame() in Nitrox.BuildTool/Program.cs:line 74
at System.Threading.Tasks.Task`1.InnerInvoke()
at System.Threading.Tasks.Task.<>c.<.cctor>b__274_0(Object obj)
at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location where exception was thrown ---
at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)
--- End of stack trace from previous location where exception was thrown ---
at Nitrox.BuildTool.Program.Main(String[] args) in Nitrox.BuildTool/Program.cs:line 34
at Nitrox.BuildTool.Program.

(String[] args)

Press any key to continue . . .

@Jannify Jannify moved this to Major Backlog (Alpha Blockers) in Nitrox May 25, 2022
@Jannify Jannify added this to Nitrox May 25, 2022
@Jannify Jannify moved this from Major Backlog (Alpha Blockers) to Future in Nitrox May 25, 2022
@Jannify Jannify mentioned this issue May 25, 2022
@Ilphrin
Copy link

Ilphrin commented Jul 23, 2022

Hi! thank you for all the work you put on Nitrox :D

Is there any news about an electron launcher that would allow the client to run on Linux ? I tried through Proton but not getting the "Multiplayer" Label ingame so far

@obr-09
Copy link

obr-09 commented Oct 22, 2022

Hi @Ilphrin , at first I didn't have the Multiplayer button either, but on my second attempt (and on a clean install on another computer, an arch linux this time) I got it working... Not sure why but here are all the things I did on my second attempt (thanks Marki_TTA), including the versions number though they might or might not be relevant

  • Have mono and protontricks installed
  • Install Subnautica on steam, select a proton version (7.0-4)
  • Download the Nitrox client (downloaded 1.5.0-1 from the Github release page), extract it somewhere
  • Add Nitrox as a non steam game, set compatibility to use the same proton version as Subnautica
  • Start Subnautica at least once (I started a world as well)
  • Run protontricks (can be graphically); use default prefix for Subnautica (264710). Open explorer, and run the Nitrox exe you downloaded
  • In the settings, set the path to Subnautica install
    • To help find it, you can explore steam game files to find the proper path (right click, manage, browse local file)
    • If you can't find it in explorer (if it's in a hidden folder), set the path directly (replacing / with \ and using the proper drive letter, like Z:\home\...)
  • Launch multiplayer. It should open and close very quickly, it's normal. Close Nitrox and everything from protontricks
  • On steam, run the non steam app Nitrox, then Multiplayer. Then you should hopefully see the Multiplayer button in the game main menu

@Zentheon
Copy link

Zentheon commented Mar 16, 2023

Ayo! So I'm attempting to get Nitrox running using the guide above and I always run into this popup when trying to launch multiplayer (through protontricks or as a non-steam game)

System.Exception: Directory 'Z:\mnt\games\SteamLibrary \steamapps\common\Subnautica' is not a valid Subnautica game installation or the game's platform is unsupported by Nitrox. at NitroxLauncher.LauncherLogic.StartSubnauticaAsync() [0x00281] in <9f0b0f717e844bcd9bef3b500720061c>:0 at NitroxLauncher.LauncherLogic.StartMultiplayerAsync() [0x001d5] in <9f0b0f717e844bcd9bef3b500720061c>:0
at
NitroxLauncher.Pages.LaunchGamePage.MultiplayerButton_Click
(System.Object sender, System.Windows.RoutedEventArgs e) [0x00148] in <9f0b0f717e844bcd9bef3b500720061c>:0

I had to add a System.Windows.Controls.Ribbon.dll file into Nitrox's lib folder to get the launcher to run. Mono is also installed through pacman.

@Zentheon
Copy link

Ayo! So I'm attempting to get Nitrox running using the guide above and I always run into this popup when trying to launch multiplayer (through protontricks or as a non-steam game)

System.Exception: Directory 'Z:\mnt\games\SteamLibrary \steamapps\common\Subnautica' is not a valid Subnautica game installation or the game's platform is unsupported by Nitrox. at NitroxLauncher.LauncherLogic.StartSubnauticaAsync() [0x00281] in <9f0b0f717e844bcd9bef3b500720061c>:0 at NitroxLauncher.LauncherLogic.StartMultiplayerAsync() [0x001d5] in <9f0b0f717e844bcd9bef3b500720061c>:0
at
NitroxLauncher.Pages.LaunchGamePage.MultiplayerButton_Click
(System.Object sender, System.Windows.RoutedEventArgs e) [0x00148] in <9f0b0f717e844bcd9bef3b500720061c>:0

I had to add a System.Windows.Controls.Ribbon.dll file into Nitrox's lib folder to get the launcher to run. Mono is also installed through pacman.

Nevermind, the person I'm planning on playing with just told me only legacy Subnautica is supported, so that's my bad lol

But while I'm here, for anyone who can't get the launcher to run, try putting version 4.0 of this dll in Nitrox's lib folder.

@fbievan
Copy link

fbievan commented Jul 1, 2023

Hey, got the launcher (on the most recent version of nitrox) running by installing steam in bottles (see that project here). I installed subnautica, set it to be legacy in updates menu in the installed version of steam in bottles. After that I installed mono and dotnet 48 with the depencies in bottles. Then Run steam, and then launch nitrox in bottles, and should be working.

nitrox

@fbievan
Copy link

fbievan commented Jul 1, 2023

Hey, got the launcher (on the most recent version of nitrox) running by installing steam in bottles (see that project here). I installed subnautica, set it to be legacy in updates menu in the installed version of steam in bottles. After that I installed mono and dotnet 48 with the depencies in bottles. Then Run steam, and then launch nitrox in bottles, and should be working.

nitrox

played with my friend, everything seems to be working! I might rewrite the instructions in a bit, since they are a bit all over the place. Nothing I've noticed seems to be out of place (expect for this one lifepod which didn't load but i'm pretty sure that was a subnautica issue since it didn't load for my friend on windows too)

@fbievan
Copy link

fbievan commented Jul 1, 2023

Here's a video of me playing it here

@KeepBotting
Copy link

KeepBotting commented Jul 3, 2023

@fbievan Thanks, this installation process works great and Bottles seems to be the optimal way to use Nitrox on Linux.

I had previously tried using native Steam alongside several different methods of running Nitrox, including:

  • Nitrox in Bottles
  • Nitrox added as a non-Steam game
  • Launching Nitrox via Wine explorer.exe inside Subnautica's prefix
  • This Nitrox wrapper script

But none of these worked readily. The Nitrox launcher would complain about missing files and refuse to run. I got various errors relating to .NET, System.Windows.Controls.Ribbon.dll, or being unable to find the game path.

Once I installed the correct protontricks packages and DLLs, Nitrox would run but still failed to launch Subnautica. Some error about a timeout while waiting for "the platform".

I probably could have gotten native Steam working with a bit more trouble but Bottles seems much cleaner. This is the only oddity:

image

The Nitrox launcher looks funny, but the UI elements appear when I hover over them and it seems to work fine. I can launch the game and get a "Multiplayer" option on the main menu so I assume it's working.

Haven't tried connecting to a server yet but I'll update here with any trouble. Cheers!

@dartasen
Copy link
Member

dartasen commented Jul 3, 2023

@KeepBotting You can keep track of our progress on improving Linux support on that pull request #1848

@fbievan
Copy link

fbievan commented Jul 3, 2023

The Nitrox launcher looks funny, but the UI elements appear when I hover over them and it seems to work fine. I can launch the game and get a "Multiplayer" option on the main menu so I assume it's working.

The Nitrox UI being super funky is normal, however all the textures should load fine in the game... weird that the menu in-game is like that.

I actaully got this idea by a game called 'sleeping dogs', where the controller support was broken in proton, but lutris has a launcher where it ran inside a virtual windows environment with wine and windows steam, where it all worked perfectly.

god bless bottles and wine for making this possible.

thank you to the nitrox devs for making this mod even possible

really hope that pull request goes through, as i'm very intrested to see what happens with linux support into the future with nitrox.

@Adamiok
Copy link

Adamiok commented Aug 26, 2023

Would it be possible to somehow skip the launcher and launch the game straight away, as currently the launcher is the problem (not supported by macos)?

@dartasen
Copy link
Member

Would it be possible to somehow skip the launcher and launch the game straight away, as currently the launcher is the problem (not supported by macos)?

Nop. The launcher does all the black magic you need in order to play Nitrox. If you skip the launcher, you can't play Nitrox at all.

And it's not planned to add a 3rd tool to patch the game to launch nitrox without any launcher

@Jannify Jannify moved this from Open to Implementing in Nitrox Sep 3, 2023
@fbievan
Copy link

fbievan commented Sep 22, 2023

Once I installed the correct protontricks packages and DLLs, Nitrox would run but still failed to launch Subnautica. Some error about a timeout while waiting for "the platform".

That seems to be a native steam issue, something unimplemented, my best guess is that it cannot communicate with steam for some type of handshake (haven't look into that).

@Measurity Measurity added Area: setup Related to installing or configuring Nitrox Area: user interface (launcher) Related to UI/UX in the launcher labels Dec 26, 2023
@cproo12
Copy link

cproo12 commented May 12, 2024

Anybody have any potential solutions for the "Steam: Timeout reached while waitinf for platform to start."

Seems there is a disconnect between the launcher and Linux steam.

Currently I have added NitroxLauncher.exe as a non steam game and am running it with Proton GE 9-5 (latest). Have also tried with Proton 6.3 like some guides recommend but no luck :(

@fbievan
Copy link

fbievan commented May 13, 2024

Anybody have any potential solutions for the "Steam: Timeout reached while waitinf for platform to start."

Seems there is a disconnect between the launcher and Linux steam.

Currently I have added NitroxLauncher.exe as a non steam game and am running it with Proton GE 9-5 (latest). Have also tried with Proton 6.3 like some guides recommend but no luck :(

Do not use nittox with steam and proton. Use nitrox with windows steam for now.

I used bottles in my testing, and it worked great.

@cproo12
Copy link

cproo12 commented May 13, 2024

Really, so install an entire separate instance of windows steam, then add nitrox launcher to that version of steam as a non steam game?

@fbievan
Copy link

fbievan commented May 13, 2024

Really, so install an entire separate instance of windows steam, then add nitrox launcher to that version of steam as a non steam game?

Nope just install nitrox to that prefix while steam is running in that wine instance.

Pretty much yeah.

I can provide more detailed instructions, but you can see my success with this method in the thread above.

@Measurity Measurity added this to the 1.8 milestone Aug 9, 2024
@VazarinX
Copy link

:soonTM:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: setup Related to installing or configuring Nitrox Area: user interface (launcher) Related to UI/UX in the launcher
Projects
Status: Implementing
Development

Successfully merging a pull request may close this issue.