The fact we need containers to ship games is still a complete joke. Windows has been shipping binary games for decades but to do a best-effort portable Linux build you've got to spin up containers with bespoke build environments and tie the build to one specific platform's container image.
The alternative is using (what is effectively) a cross compiling toolchain to target Linux from itself! Or spin up an ancient Debian image (including ancient compiler) to build against ancient glibc.
It's hard to blame anyone for just using Proton, with the perma-stable Win32 API. No build containers, no chroot, no locking the build to Steam. Just the same build infra you already have.
Windows might not have build containers, but it has an enormous compatibility layer. API calls may work differently based on the executable running. Windows goes as far as changing the freaking memory allocator to not deallocate pages for buggy games. Raymond Chen's blog is a good source for some of these compat workarounds.
One could argue that Proton is a kind of a container. It has a runtime system, filesystem, wine itself has several executables and interprocess communication, etc.
The alternative is using (what is effectively) a cross compiling toolchain to target Linux from itself! Or spin up an ancient Debian image (including ancient compiler) to build against ancient glibc.
It's hard to blame anyone for just using Proton, with the perma-stable Win32 API. No build containers, no chroot, no locking the build to Steam. Just the same build infra you already have.