Notably also, plenty of games work fine under Wine, but Steam client itself doesn't—on Mac.
Notably also, plenty of games work fine under Wine, but Steam client itself doesn't—on Mac.
However, it's not always that easy as checking a box. For example some shader optimizations may be specific to DirectX. File system works differently (no "User/Documents" on Mac). Or issues with native libraries.
Our game does work on Linux Proton though, that was a surprise to us.
Eg you would never use /tmp or %USER%/AppData, but call a function File::getPath(TempDirectory) or something like that.
C# has the very Windows-centric https://docs.microsoft.com/en-us/dotnet/api/system.environme...
Unity itself has the Application.*Path properties for some more general cross-platform-aware paths. https://docs.unity3d.com/ScriptReference/Application.html
It's just all those small things that has to be right to make it work cross platform.
In the old days, Java would advertise itself as being cross-platform (Write once, run anywhere!), but in practice, rarely worked that way.