At some point you are always going to need hardware interfaces and those are provided by the OS kernel. There's only so much you can achieve with containerisation.
At some point you are always going to need hardware interfaces and those are provided by the OS kernel. There's only so much you can achieve with containerisation.
Windows 10 'N' Editions ship without a Media Feature Pack which some games rely on - i.e. Rockstar games (GTA V, Red Dead Redemption 2).
You can install the media feature pack by downloading it from microsoft, but I've noticed that when the OS has major updates (i.e. the "Creators update" from last fall), the media feature pack gets removed and you have to reinstall it.
It's better than it used to be - or at least, it's hidden away from me via Steam etc. - but I remember loads of games coming with installers for specific versions of DirectX, Visual C++ Redistributable libraries, different versions of .Net framework.
Not sure what the rationale behind it was compared to "just statically link it" but maybe in this case you couldn't just statically compile supporting microsoft libs into your game engine... And maybe there are/were legal reasons about why you couldn't stick the right versions of .dlls into your game's working directories...?
My view of it is less like containerization to provide complete isolation from the host/guest, but instead containerization to make the whole game a single 'entity'. Want to move the game from one system to another? Copy the container, that is where everything exists. No running around your filesystem looking for where the game decided to drop random files. Modded out the game and you break something? Just roll back the container.
Sidenote: I've been a linux/Mac user for a few years now and recently had to work on stuff for the Windows side of things. All I can say is: wow. what a disaster. documentation is a complete nightmare and there seem to be 14 different versions of anything all fighting to do similar things. dead ends everywhere.
Because Microsoft gutted its in-house testing program in favor of moving fast and letting end users find the bugs.
A 3rd party containerized system could passthrough the interfaces that are known to work, massage those that need massaging, and catalog (with user consent) the ones that are unknown. Kind of like Microsoft's compatability modes, but managed by someone else, because Microsoft stopped caring, apparently.