Elite:Dangerous for Linux?

Income isn't the only driving force in a business. Minimizing expenses is the biggest way a company can keep their bottom line solid. Maintaining a single multi-OS API that can be used across all platforms reduces costs for Frontier and lets them focus on ONE API for all. This affects 100% of the player base, present and future.
Both of you have a point, but your point only really applies at the start of a project - unless FD have already had to use Vulkan on one platform or another AND achieved the same results they wanted to then your argument is pretty moot now. The horse has already bolted from the relevant gate.

I am not saying there is no logic to adopting the Vulkan API but that is not the only cross-platform compatibility issue in play and the technical costs of doing so should not be underestimated.
 
Last edited:
Income isn't the only driving force in a business. Minimizing expenses is the biggest way a company can keep their bottom line solid. Maintaining a single multi-OS API that can be used across all platforms reduces costs for Frontier and lets them focus on ONE API for all. This affects 100% of the player base, present and future.

Vulkan will never be available officially for the PS4 or Xbone.
 
The steam statistics show some interesting values.

Steam has over 67 million monthly users. (https://zerolives.com/article/mSndokte/valve-steam-now-has-67-million-monthly-users)

Currently 0,72% of Steam users are using a Linux based OS. (http://store.steampowered.com/hwsurvey/)

This means there are 482400 monthly Linux users in Steam alone.

There are also examples which show that Linux users are generous when it comes to spending money on games.

http://www.omgubuntu.co.uk/2011/08/linux-users-pay-more-humble-indie-bundle-3
http://blog.wolfire.com/2010/05/Linux-users-contribute-twice-as-much-as-Windows-users
 
Wine 2.13 update

TLDR One guy got game running with all auth checks passed, but lacked any shaders/textures. So it seems general consensus is that there's no .NET issues at least specific to ED launcher anymore. However ED now hangs with trying to run shader compilation/loading.

If you want to play around ED see these two bugs

Elite Dangerous: broken rendering after starting a new game - this is actual ongoing bug
https://bugs.winehq.org/show_bug.cgi?id=43162

"Elite: Dangerous" client crashes when starting - this has my old comments, but overall it seems to be resolved (no crash anymore)
https://bugs.winehq.org/show_bug.cgi?id=41972

Simple steps is:
1. Compile and install Wine 2.13
2. Create win32 prefix (I haven't done win64 tests yet, but .NET seems to be more stable)
3. Download most recent winetricks (https://wiki.winehq.org/Winetricks) - this is very important
4. winetricks dotnet452 corefonts quartz vcrun2012
note: this installs .net 5.4.2 (recommended/required .net runtime for ED launcher), quartz and corefonts are also for launcher, vcrun2012 is C++ runtime for ED client
5. Install Client, and run EDLaunch.exe

So there are some errors which are consistent - ED Launcher segments disappear/appear when you move mouse on Install/Play buttons on and off, annoying but doesn't stand in a way to install and launch game.
At this point it just hangs.

NOTE: this is a test without wine staging patches.

NOTE: wine staging 2.12 resolves a hang, but introduces consistent hang at main menu. However, connection/auth issues which I met previously are certainly resolved.
 
Last edited:
Vulkan will never be available officially for the PS4 or Xbone.

Sony is on Vulkan steering committee. While I also think for PS4 life cycle they will stick with their own API (too much investment to add Vulkan support, although on limited scale it is still possible), I think future consoles will sport Vulkan support, just because there's momentum behind it.
 
Major update for Wine - major 64-bit issues around .NET on Wine seems to be resolved. It is hairy and still have small issues, but overall it works.

Installed ED: Horizons, now I am getting CRC error. Shader compilation goes trough with lots of fixmes as on 32-bit client.
 
As people have said before the graphics API is only one of the core api's that needs to be crossplatform, they'd also need:
Sound ( openal ? - no idea what ED is using for sounds but they must have a cross platform API from the game level already done to support their current platforms )
Input ( keyboard / HOTAS - no idea if they have found a cross-platform API for all or had to write their own - either way one you've got an API for 3 or more platforms adding another becomes a lot easier )
File ( file system access for saving & loading assets - should be fairly trivial and probably already done for Win/Mac/XBone/PS4 support )

I'm tempted to try wine again after reading the comments above - last time I tried the .net launcher was still a major pain in the butt to get working - way use .NET is beyond me - it's certainly not cross platform! - I also think trying to get the win32 build working is fairly pointless as I thought FDev where looking to kill that off and only support 64bit - which to me makes perfect sense.

I'd love ED to have proper Linux support - today the only reason my primary gaming machine is running Windows 10 is because of ED. I don't play that many games so would be very happy to default to booting Linux 99% of the time.
 
As people have said before the graphics API is only one of the core api's that needs to be crossplatform, they'd also need:
Sound ( openal ? - no idea what ED is using for sounds but they must have a cross platform API from the game level already done to support their current platforms )
Input ( keyboard / HOTAS - no idea if they have found a cross-platform API for all or had to write their own - either way one you've got an API for 3 or more platforms adding another becomes a lot easier )
File ( file system access for saving & loading assets - should be fairly trivial and probably already done for Win/Mac/XBone/PS4 support )

I'm tempted to try wine again after reading the comments above - last time I tried the .net launcher was still a major pain in the butt to get working - way use .NET is beyond me - it's certainly not cross platform! - I also think trying to get the win32 build working is fairly pointless as I thought FDev where looking to kill that off and only support 64bit - which to me makes perfect sense.

I'd love ED to have proper Linux support - today the only reason my primary gaming machine is running Windows 10 is because of ED. I don't play that many games so would be very happy to default to booting Linux 99% of the time.

All those things are covered by SDL2, which all prominent porters use to port games on MacOS/Linux.
 
Major update for Wine - major 64-bit issues around .NET on Wine seems to be resolved. It is hairy and still have small issues, but overall it works.

Installed ED: Horizons, now I am getting CRC error. Shader compilation goes trough with lots of fixmes as on 32-bit client.

I'm on Ubuntu 16.04.2 LTS - I tend to stick with LTS releases which does cause a few problems with the newest stuff sometimes.

I upgraded to wine 2.13 - using winetricks installs the dotnet452 - complains mono is not installed, but it is: mono-complete is already the newest version (4.4.1.0-0xamarin1)
but installation proceeded anyway.

NOTE: using the latest git cloned version of winetricks.

I gave up trying to make the 64bit version work and setup a new 32bit wine folder, After lots of errors and messing about I finally got the 32bit launcher to run - unfortunately that means I can only get the 32bit version of ED and not Horizons - so I didn't try and install it.

I guess I'll have to go back to the 64bit one and figure out some of the errors.





 
I gave up trying to make the 64bit version work and setup a new 32bit wine folder, After lots of errors and messing about I finally got the 32bit launcher to run - unfortunately that means I can only get the 32bit version of ED and not Horizons - so I didn't try and install it.
Still, an impressive feat given the obstacles from just a few weeks ago. Congrats.

I run Kubuntu 16 with Win7 dual boot. Trying to eliminate the 7 drive ASAP.

What we need is a Linux champion inside Frontier to help with the remaining hurdles to full blown 64-bit Horizons.
 
Still, an impressive feat given the obstacles from just a few weeks ago. Congrats.

I run Kubuntu 16 with Win7 dual boot. Trying to eliminate the 7 drive ASAP.

What we need is a Linux champion inside Frontier to help with the remaining hurdles to full blown 64-bit Horizons.

Given how simple the EDLauncher *should* be, it shouldn't require 'an impressive feat' just to run it!!!

For the record the 64bit EDLauncher.exe fails with:
neilm@Nocturne:~/.wine64/drive_c/Program Files (x86)/Frontier/EDLaunch$ wine EDLaunch.exe
err:module:import_dll Library mscoree.dll (which is needed by L"C:\\Program Files (x86)\\Frontier\\EDLaunch\\EDLaunch.exe") not found
err:module:LdrInitializeThunk Main exe initialization for L"C:\\Program Files (x86)\\Frontier\\EDLaunch\\EDLaunch.exe" failed, status c0000135

Which is rubbish because I havea 64bit and 32bit version of that .dll installed:
neilm@Nocturne:~/Wine_stuff$ find ~/.wine64/drive_c/windows/ -name mscoree.dll
/opt/users/neilm/.wine64/drive_c/windows/syswow64/mscoree.dll
/opt/users/neilm/.wine64/drive_c/windows/system32/mscoree.dll

neilm@Nocturne:~/Wine_stuff$ file /opt/users/neilm/.wine64/drive_c/windows/syswow64/mscoree.dll
/opt/users/neilm/.wine64/drive_c/windows/syswow64/mscoree.dll: PE32 executable (DLL) Intel 80386, for MS Windows
neilm@Nocturne:~/Wine_stuff$ file /opt/users/neilm/.wine64/drive_c/windows/system32/mscoree.dll
/opt/users/neilm/.wine64/drive_c/windows/system32/mscoree.dll: PE32+ executable (DLL) x86-64, for MS Windows

So I guess the wine environment is only picking up the 64bit version of that dll instead 32bit version that the EDLauncher.exe needs ( because it's still only a 32bit app )
No idea how to fix that.
Other 32bit apps windows apps are working fine, including PaintShopPro8 which does a hell of lot more complicated stuff than the FDev launcher!!
 
Given how simple the EDLauncher *should* be, it shouldn't require 'an impressive feat' just to run it!!!

For the record the 64bit EDLauncher.exe fails with:
neilm@Nocturne:~/.wine64/drive_c/Program Files (x86)/Frontier/EDLaunch$ wine EDLaunch.exe
err:module:import_dll Library mscoree.dll (which is needed by L"C:\\Program Files (x86)\\Frontier\\EDLaunch\\EDLaunch.exe") not found
err:module:LdrInitializeThunk Main exe initialization for L"C:\\Program Files (x86)\\Frontier\\EDLaunch\\EDLaunch.exe" failed, status c0000135

Which is rubbish because I havea 64bit and 32bit version of that .dll installed:
neilm@Nocturne:~/Wine_stuff$ find ~/.wine64/drive_c/windows/ -name mscoree.dll
/opt/users/neilm/.wine64/drive_c/windows/syswow64/mscoree.dll
/opt/users/neilm/.wine64/drive_c/windows/system32/mscoree.dll

neilm@Nocturne:~/Wine_stuff$ file /opt/users/neilm/.wine64/drive_c/windows/syswow64/mscoree.dll
/opt/users/neilm/.wine64/drive_c/windows/syswow64/mscoree.dll: PE32 executable (DLL) Intel 80386, for MS Windows
neilm@Nocturne:~/Wine_stuff$ file /opt/users/neilm/.wine64/drive_c/windows/system32/mscoree.dll
/opt/users/neilm/.wine64/drive_c/windows/system32/mscoree.dll: PE32+ executable (DLL) x86-64, for MS Windows

So I guess the wine environment is only picking up the 64bit version of that dll instead 32bit version that the EDLauncher.exe needs ( because it's still only a 32bit app )
No idea how to fix that.
Other 32bit apps windows apps are working fine, including PaintShopPro8 which does a hell of lot more complicated stuff than the FDev launcher!!

Sorry that I didn't mention - there is issue with winetricks with Wine 64-bit installing dotnet40 before dotnet45 and thus failing, because dotnet40 fails with 'already having 4.0 profile' or something. What I did I just download .NET 4.5 dist for 64-bit and run as normal executable for wine. It installed without errors and thus I got working wine 64-bit prefix with .NET support.

This is very important because without it you won't get Wine 64-bit running for ED.

Also remember to do this after installing dotnet support: winetricks corefonts quartz vcrun2012

However I would also will point out that 64-bit version currently fail sooner than 32-bit version of ED (CRC error, judging by wine logs, some missing implementations for 64-bits), and 32-bit gives chance for us to test shaders/textures/all DX11 stuff. It seems at basis - except for compute shaders - way 32-bit and 64-bit does graphics doesn't differ much.

Still, an impressive feat given the obstacles from just a few weeks ago. Congrats.

I run Kubuntu 16 with Win7 dual boot. Trying to eliminate the 7 drive ASAP.

What we need is a Linux champion inside Frontier to help with the remaining hurdles to full blown 64-bit Horizons.

People are pushing Wine development hard for games - both .NET and DirectX 11, there's huge progress achieved since DirectX11 foundation was merged. However there's still awfully lot to do. Good thing is that base is there, so we are closing to the moment when some of us might be helpful with bug reports or even patches.
 
Last edited:
porting for support in wine is probably better than the crap opengl wrappers on directX games that major publishers are hocking as ports (like civ 6 and such). Single threaded crap.

That single threaded nonsense makes linux gaming look bad.

Linux supports opengl 4.5 in open source amd and intel drivers, and in the closed source nvidia driver. There's no technical reason why linux can't be supported in place of the defunct mac support. But wine isn't a horrible alternative if that's all that's available. Good luck.
 
porting for support in wine is probably better than the crap opengl wrappers on directX games that major publishers are hocking as ports (like civ 6 and such). Single threaded crap.

That single threaded nonsense makes linux gaming look bad.

Not really. Evil is in details. Game's spawning threads mostly is untouched - no one's gonna rewrite it for Linux just to make it single threaded. OpenGL implementations like Mesa mostly are single threaded though an that holds down potential performance. There's ongoing work however for AMDGPU driver to make it multithreaded where game doesn't blow up due of that.

ED have multiple threads by default - one for render, another for sound, another for networking etc.

Linux supports opengl 4.5 in open source amd and intel drivers, and in the closed source nvidia driver. There's no technical reason why linux can't be supported in place of the defunct mac support. But wine isn't a horrible alternative if that's all that's available. Good luck.

Well...yeah. I understand FD but I feel they were just a bit frightened to take on Linux despite being fully capable to do so and without much cost. I understand them though - see how support costs raise due of complexities of Windows setups already.

I believe one day FD will add Linux client - just because they have working OpenGL renderer and they are capable to make it working for Linux. But for now if we get Wine working, it will be huge step. I played World Of Warcraft for three years just on Linux.
 
I was referring to other games porting to linux from directx. Not necessarily anything involving elite.

they tend to just use a opengl wrapper library to avoid having to actually code an openGL renderer properly. This ends up wrapping the entire game in a new process, a single threaded process. I'm talking audio, disk access, ai, and graphics. Down to a single process. It ends up making the port perform at a fraction of the Windows native game. Unfortunately, it's a common practice with the aaa titles.

I'd prefer the wine hacking over that. for sure. I dont think we'd have to worry about that with elite though, since the renderer work has already been mostly done and I doubt FDev would contract out the porting work to another company like a AAA studio would.
 
Linux supports opengl 4.5 in open source amd and intel drivers, and in the closed source nvidia driver. There's no technical reason why linux can't be supported in place of the defunct mac support. But wine isn't a horrible alternative if that's all that's available. Good luck.
I appreciate what you are saying, but native support will always be better for performance.
 
I appreciate what you are saying, but native support will always be better for performance.

opengl is native in elite, just not an option for the windows client.

And wine can outperform windows in certain cases. Used to get better framerates playing starcraft in wine than in windows back in the day. But yea, i'd rather not have to resort to wine - though to some people there is no alternative.
 
Back
Top Bottom