I was about to pre-order X4 (but want it on Linux)

This forum is the ideal place for all discussion relating to X4. You will also find additional information from developers here.

Moderator: Moderators for English X Forum

radcapricorn
Moderator (English)
Moderator (English)
Posts: 3230
Joined: Mon, 14. Jul 08, 13:07
x4

Re: I was about to pre-order X4 (but want it on Linux)

Post by radcapricorn »

Kittens David wrote: Mon, 22. Oct 18, 22:08 I was open to free, constructive talks about the profitability and cost of porting a game on another OS than its original base. And you bring back your little rant against microsoft and windows...
Nope. You:

1) Misinterpreted Kernel Panic's response rather completely.
2) Weren't ready to receive the answer while still asking the question.
3) Asked only an invalid question in the first place. Rebirth already had a Linux version, and X4 is based on Rebirth. Anything OS-specific not tied to Vulkan Egosoft had already nailed down (desktop integration, sound, input, I/O, images, compression... it has all been already done before). So your presumption that there would be some serious porting just doesn't have any basis.
Alci
Posts: 887
Joined: Tue, 27. Aug 13, 13:06
x4

Re: I was about to pre-order X4 (but want it on Linux)

Post by Alci »

Kittens David wrote: Mon, 22. Oct 18, 22:08 ...
You are kinda turning it into fight. KP is right in how it works (that Linux usability part is just very small and unrelated part of his posts).

As CBJ stated, from economy standpoint you don't compare 1% audience equals 100x price. The game is already written for Windows. So the real question is more like: "will the porting cost less then another 1% revenue?". Also when it's portable to Linux, it's multiplatform enough to work on MaxOS (according to Steam survey that's total 3% for non-windows audience).

From technical.. let's start with "all code is naturally portable". All Windows/Linux/MacOS (gaming machines) run the same CPUs so they also run the same code no matter what container you use (like EXE in Windows).

It's you who make it not working on all platforms by using external interfaces that exists on one but not the other platforms. For example, if you want a file from FS and you call CreateFile("C:\file.txt") from kernel32.dll (WIN32 interface) then you have locked yourself to Windows. This simply won't work on Linux/MacOS. However you can use some wrapper to open file and then have one OS specific implementation for one OS and other for other OS while your own code is the same and it's really "free" "compile for windows" or "compile for linux" (the same applies to even "compile for x86" or "compile for x64", it's not Windows as Windows). Similarly you don't for example save temp file into "C:\temp" anymore but you ask GetTempFile() and let the wrapper to decide what that means on different OS (on Windows it's C:\User\Name\AppData\Local\Temp, on Linux /tmp/)

So your code is ok as long as you don't use any platform specific features. Namely (but not limited to) case-insensitive files, file path delimeters, registers, WinAPI calls or COM Components. And you keep the track of any 3rd party component/interface that needs some of those and are therefore locked.

Speaking of "wrappers", it's not really that hard. Most things are already written (and it's harder to choose which one suits you the best).

You can use the entire runtime framework like Java (you write in Java, and install different framework on Linux and different one on Windows) or Web (with browser being your OS specific platform while you write the same code).

Or you compile and pack your framework with you like .NET Core which really is "target win-x64" or "target ubuntu.18.04-x64" and it builds your app with different dependencies for different platforms making a different packages. (For games you have Unreal Engine doing that.)

Or you use VM of sort, like Docker (I suspect Unity is working like that.)

(There are countless solutions doing the same.)

It's a problem to port existing application that was built without multiplatform in mind and is locked to platform through and through. But if you build it from start with platforms in mind it's not really that much more work. You just remember to use different interfaces for platform specific things.

It's same with NVIDIA/AMD GPUs really. If you use specific features only one has you are locked. Or you use interface providing "common" functionality (DirectX, OpenGL, Vulkan (former Mantle)) and let drivers (wrapper) to implement them based on HW you really have.

For X4.. they are pretty happy campers now. They are using Vulkan for UI (interface that has implementation on all platforms and is supported by both GPU providers) and they were building it knowing of other OS ports, so it's almost certain they are already using crossplatform dependencies (like sound library, other then DirectSound, crossplatform inputs, other then DirectInput, and such. You can usually see all those in starting splash screen).

So I have no idea how much work it is for them to build linux version (not really a port I guess) but it might really be just "build for linux" which in reality means you still need that guy who spends time on building/publishing infrastructure, creating specific tools/automations, and testing, not to mention Linux specifically is very non-united environment. (What console development makes easy with their HW lock while PCs are all the different configurations repeats again when Windows/MacOS are at least the same environment while Linuxes are all different all over again.) But what one enthusiast can do after the dust settles after release and most critical bugs are fixed.
Alan Phipps
Moderator (English)
Moderator (English)
Posts: 31785
Joined: Fri, 16. Apr 04, 19:21
x4

Re: I was about to pre-order X4 (but want it on Linux)

Post by Alan Phipps »

@ Kittens David: "I was open to free, constructive talks about the profitability and cost of porting a game …"

The only people that could discuss that with you any sensible and specific way about X4 are Egosoft themselves, and since they are a commercial firm with a not-yet-released game with niche competition, that probably is just not going to happen.

If you want a non-specific discussion about the costs and advantages/problems of porting games in general then please do that in Off Topic.
A dog has a master; a cat has domestic staff.
User avatar
preludelinux
Posts: 13
Joined: Thu, 18. Oct 18, 18:33
x4

Re: I was about to pre-order X4 (but want it on Linux)

Post by preludelinux »

I am also very tempted to pre-order the collectors edition. I have really enjoyed X Rebirth works nicely on 4k also wanted to say thank you for porting such a nice game to linux. Hopefully we will hear good news in regard to X4/linux closer toward the release. If you need someone to test on linux i would love to help.
System Specs "Main System / Secondary System"
  • Linux Mint 19
  • AMD Ryzen Threadripper 1950x / Core i7 4770k
  • 64 GB Ram / 32 GB Ram
  • 2X Nvidia GTX 1080 "4k + 1080P" / AMD RX Vega 64 "1080P"
  • KVM / Qemu Pci Passthrough 8 Core 16GB Ram Nvidia GTX 1080

Return to “X4: Foundations”