Remix.run Logo
coldpie 6 hours ago

> It is interesting that these are harder to get working than games.

Games are mostly just doing their own thing, only interacting with the system for input & output. MS Office is using every single corner of Windows: every feature in the XML libraries, tons of .NET type stuff, all the OLE and COM and typelib and compound storage features, tons of Explorer integrations, auto-updating stuff via Windows patching mechanisms... there's almost no corner of the Windows OS that MS Office doesn't use.

da_chicken an hour ago | parent | next [-]

Yeah, people forget that MS Office, and Excel and Outlook in particular, are the real foundation of Microsoft's vendor lock-in on the desktop.

Discordian93 38 minutes ago | parent [-]

Outlook is now basically an Electron app, they've deprecated the old desktop Outlook in favor of a port of the web app to desktop, so it's basically just Excel remaining.

nicoburns 4 hours ago | parent | prev | next [-]

Office used to work well on WINE. It was the switch to a rolling release model that killed it.

usrusr 4 hours ago | parent | prev | next [-]

So that's what's keeping Microsoft from just running WINE on an MS-flavored Linux or perhaps a clean slate kernel as their next OS. I've been wondering for a while, this is by far the best explanation.

bombcar 3 hours ago | parent [-]

The Windows Kernel (and arguably the Windows APIs) are the only good part of Windows; they should dump everything else and run Linux above it; wait they did do that and then changed it to a boring VM.

RajT88 4 hours ago | parent | prev | next [-]

Parts of the OS were designed for Office. (Windows installer service, for example)

vbezhenar 5 hours ago | parent | prev | next [-]

> Games are mostly just doing their own thing, only interacting with the system for input & output.

They should be trivial to port then, no?

p1necone 4 hours ago | parent | next [-]

Yeah but Windows is a more stable api to develop against than Linux (at least when it comes to stuff that games need to do) - it doesn't feel "pure", but pragmatically it's much better as a game developer to just make sure the Windows version works with proton than it is to develop a native Linux version that's liable to break the second you stop maintaining it.

greiskul 4 hours ago | parent [-]

As someone once said it best, Win32 is the only stable ABI on Linux: https://blog.hiler.eu/win32-the-only-stable-abi/

Rohansi 5 hours ago | parent | prev | next [-]

Yes, they are easy to port a lot of the time. Especially now because you can use DXVK to translate DirectX calls into Vulkan, so you don't need to write a Vulkan renderer. Input is sometimes a trickier one to deal with but a lot of the time games are using cross-platform libraries for that already!

Despite all this the Unity engine has spotty Linux support. Some games run better under Wine vs. Unity's native Linux builds. It's Vulkan renderer has had a memory leak for a while now. Input has randomly decided to double keypresses on some distros.

MindSpunk 4 hours ago | parent [-]

The hard part of Linux ports isn't the first 90% (Using the Linux APIs). It's the second 90%.

Platform bugs, build issues, distro differences, implicitly relying on behavior of Windows. It's not just "use Linux API", there's a lot of effort to ship properly. Lots of effort for a tiny user base. There's more users now, but proton is probably a better target than native Linux for games.

simonask 2 hours ago | parent [-]

It’s not really about OS differences - as the GP said, games don’t typically use a lot of OS features.

What they do tend to really put a strain on is GPU drivers. Many games and engines have workarounds and optimizations for specific vendors, and even driver versions.

If the GPU driver on Linux differs in behavior from the Windows version (and it is very, very difficult to port a driver in a way that doesn’t), those workarounds can become sources of bugs.

codebje 4 hours ago | parent | prev [-]

The killer for games tends to be the anti-cheat or anti-piracy layers.

I have a Windows game I can't run under CrossOver (aka Wine 11) or a VM, only because its anti-piracy layer doesn't accept those circumstances.

alpaca128 an hour ago | parent [-]

Meanwhile I had to pirate Dark Souls 1 because Microsoft's own DRM prevented the legitimately purchased game from saving on Windows, and download official no-cd patches for two other games because their DRM stopped working.

The problem with DRM is the DRM.

joe_mamba 5 hours ago | parent | prev [-]

You're onto something but that's not entirely true for all games. There's plenty of vintage games, made before DirectX standardized everything into the late 90s, that don't work well under wine because back in their day, they would try to bypass windows by "hacking" their way to the hardware via unsupported APIs and hooks, to squeeze every bit of performance from the hardware, and also because every hardware vendor back then from graphics to sound shipped their own APIs.

Asmod4n 5 hours ago | parent [-]

You mean dos games, just run them under a dos emulator then.

tombert 4 hours ago | parent | next [-]

Oh, no, before everything kind of converged to OpenGL and DirectX, there were oodles of different things trying to be the next graphics API.

There are the more obvious ones like 3DFX/Glide, but there was also stuff like the Diamond Edge 3D, which used Sega Saturn style "quads".

joe_mamba 5 hours ago | parent | prev [-]

NO, I meant Windows games.

ndriscoll 4 hours ago | parent [-]

90s Windows ran inside of DOS, and you can run e.g. Windows 98 games (through Windows itself) in DOSBox. Look up exowin9x where they're trying to compile all of the necessary configs for one-click launchers.

tombert 2 hours ago | parent [-]

I didn't think that regular DOSBox had support for stuff like 3dFX does it? Or other weird APIs?

I had to use PCem to get support for that stuff.