On the graphics side, I believe that Vulkan is better supported than Direct X.
- Launch options! They help everyone, but are specifically great for stuff that breaks often like fullscreen settings, DirectX versions and game launchers.
- Simpler stacks work better. You can run a browser-scale runtime if necessary, but a thin implementation around Win32 might run better for everyone. YMMV.
- Multiplayer stacks are a bit of a pickle, but there are a few options. Some games (eg. Overwatch 2 or Dark Souls) will queue you up as a normal PC player. Others (Destiny 2, Rainbow Six Siege) won't let you play online at all. A smaller-yet selection of games uses anti-cheat patched into WINE (eg. Apex Legends) and that seems to work great. Again, YMMV and it will depend a lot on the game you ship.
The super-low-level stuff is a mystery to me, though. Hopefully someone more qualified has tips on it written somewhere :p
And for games with heavy anticheat, it gets a lot harder.
Studios shouldn't care, exactly like OS/2 runs Windows apps better than Windows.
That being said, I run a "nightmare stack" of sorts on my main Linux gaming PC: Alder Lake CPU, Nvidia GPU. NixOS on root and Steam installed natively. For a while, it was Unsupported Driver city - Population: Me.
...that being said, games have "just worked" for as long as I have Vulkan drivers installed. Steam might complain about software acceleration, but Cyberpunk runs with DLSS and Raytracing like a charm. The underlying stack is incredible, and I think it proves that you can make Linux a reliable delivery platform if you put in the work.
That's just my experience, but look at the rest of the industry: Apple publishing Game Porting Toolkit based on DXVK code, Raspberry Pi GPUs playing Fallout: New Vegas, RISC-V getting Box86 support, the list goes on. Hardware diversity is great right now, the Steam Deck just pulls a lot of that technology to center-stage.
It's probably not a use case people think of when they think of NixOS, but it's popular with users and contributors nonetheless, and thus also fairly well-supported.
It's also generally a nice way to cope with proprietary NVIDIA drivers (although the new open-source ones are already available in Nixpkgs as well!).
Also worth noting, the landscape of Linux packaging is much different than it was 4 years ago:
- Flatpak/AppImage allows you to statically-link all dependencies to avoid undefined behavior
- Steam and others can provide basic runtimes with necessary libraries (eg. Steam Linux Runtime)
- Proton, WINE and DXVK work together to map Windows APIs to your specific setup, regardless of your x11/Wayland/PulseAudio/Pipewire configuration
Indeed shipping a native Linux title is no cakewalk, but products like the Steam Deck kinda refute these outdated complaints. You could target Windows-native and probably get 'free' Linux support if you're using a popular engine.