Resonite fails to launch on either Proton Experimental / Proton 11. The main game window does not show up and Steam closes it after several minutes.
Reproduction
Download & Launch Resonite on Linux using the current Proton Experimental or Proton 11.
Press "Play"
Note that the game simply does not launch.
Additional information
With the above formality out of the way, I'd like to elaborate and give some additional context. A portion of our Linux users recently noticed that our program fails to Launch on Linux, and upon further investigation we determined that switching back to either Proton 10 or some 3rd-party flavor of Proton remedies the issue. This is why I believe this to be a regression with Proton rather than a bug related to our program.
According to the steam log attached above, this is because our program can't find a valid ICU package when Proton Experimental or Proton 11 is selected as the compatibility tool of choice.
Here's the relevant exception from the steam log (located at line 5889):
Process terminated.
Couldn't find a valid ICU package installed on the system. Please install libicu (or icu-libs) using your package manager and try again. Alternatively you can set the configuration flag System.Globalization.Invariant to true if you want to run with no globalization support. Please see https://aka.ms/dotnet-missing-libicu for more information.
at System.Environment.FailFast(System.Runtime.CompilerServices.StackCrawlMarkHandle, System.String, System.Runtime.CompilerServices.ObjectHandleOnStack, System.String)
at System.Environment.FailFast(System.Threading.StackCrawlMark ByRef, System.String, System.Exception, System.String)
at System.Environment.FailFast(System.String)
at System.Globalization.GlobalizationMode+Settings..cctor()
at System.Globalization.CultureData.CreateCultureWithInvariantData()
at System.Globalization.CultureData.get_Invariant()
at System.Globalization.CultureInfo..cctor()
at System.Globalization.CultureInfo.get_CurrentUICulture()
at System.TimeZoneInfo.GetUtcStandardDisplayName()
at System.TimeZoneInfo.CreateUtcTimeZone()
at System.TimeZoneInfo..cctor()
at System.DateTime.get_Now()
at Program.<<Main>$>g__Log|0_0(System.String, <>c__DisplayClass0_0 ByRef)
at Program+<<Main>$>d__0.MoveNext()
at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[[Program+<<Main>$>d__0, Renderite.Host, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]](<<Main>$>d__0 ByRef)
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[[Program+<<Main>$>d__0, Renderite.Host, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]](<<Main>$>d__0 ByRef)
at Program.<Main>$(System.String[])
at Program.<Main>(System.String[])
Aborted (core dumped)
It appears that whatever new Linux runtime that Proton Experimental and Proton 11 ship with lacks the necessary ICU package(s) our program relies on for globalization. To reiterate: our program works fine on previous versions of Proton, such as Proton 10.
I personally do have the necessary ICU packages installed on my system, but this seemingly has no bearing on the issue.
An important note about our Linux compatibility: While we do require Proton/Wine to bootstrap our program, the majority of our engine actually runs as a native Linux process that downloads it's own .NET runtime (currently .NET 10 at the time of writing). Our engine then communicates over memory-mapped IPC to a barebones Unity game which we use as our renderer - this is why we even require Proton at all on Linux. We don't do anything nasty like try to break out of the environment either; all we do is launch a native Linux program within the runtime container alongside another which runs using Proton.
I bring this up to hopefully avoid any confusion that may arise should the mixture of native & Proton-related messages appear in the myriad of logs I've provided. Our hybrid "half Wine/Proton, half native" architecture is rather unique, so hopefully this tidbit helps provide context to anything that might seem somewhat strange in the logs.
We're currently having to direct our users to downgrade Proton in order to fix this, so anything that can be done would be much-appreciated!
Compatibility Report
System Information
I confirm:
steam-2519830.log
Symptoms
Resonite fails to launch on either Proton Experimental / Proton 11. The main game window does not show up and Steam closes it after several minutes.
Reproduction
Additional information
With the above formality out of the way, I'd like to elaborate and give some additional context. A portion of our Linux users recently noticed that our program fails to Launch on Linux, and upon further investigation we determined that switching back to either Proton 10 or some 3rd-party flavor of Proton remedies the issue. This is why I believe this to be a regression with Proton rather than a bug related to our program.
According to the steam log attached above, this is because our program can't find a valid ICU package when Proton Experimental or Proton 11 is selected as the compatibility tool of choice.
Here's the relevant exception from the steam log (located at line 5889):
It appears that whatever new Linux runtime that Proton Experimental and Proton 11 ship with lacks the necessary ICU package(s) our program relies on for globalization. To reiterate: our program works fine on previous versions of Proton, such as Proton 10.
I personally do have the necessary ICU packages installed on my system, but this seemingly has no bearing on the issue.
An important note about our Linux compatibility: While we do require Proton/Wine to bootstrap our program, the majority of our engine actually runs as a native Linux process that downloads it's own .NET runtime (currently .NET 10 at the time of writing). Our engine then communicates over memory-mapped IPC to a barebones Unity game which we use as our renderer - this is why we even require Proton at all on Linux. We don't do anything nasty like try to break out of the environment either; all we do is launch a native Linux program within the runtime container alongside another which runs using Proton.
I bring this up to hopefully avoid any confusion that may arise should the mixture of native & Proton-related messages appear in the myriad of logs I've provided. Our hybrid "half Wine/Proton, half native" architecture is rather unique, so hopefully this tidbit helps provide context to anything that might seem somewhat strange in the logs.
We're currently having to direct our users to downgrade Proton in order to fix this, so anything that can be done would be much-appreciated!