so many ways to install things
too many conflicting desktop environments
Especially with games.
and too many distros use too many versions of things.
The LSB just doesn't cover enough. Especially when it comes to games.
Honestly, the only ABIs that have broken repeatedly in recent years are the audio APIs (OSS->ALSA->Pulse) and the disk management APIs (manual mounts of /dev/cdrom vs automount vs supermount vs hal vs udev vs udisk etc.).
Everything else has been pretty stable.
my realization is this - steam has it's own way of installing things, even in windows. games bought with steam will not run without it. if commercial devs design games specifically for steam, you could simply put it as "if your computer will not run steam, it will not run our game". steam could be designed to install all major libraries current games need.
as i see it, this is really just a lot of challenging work for the steam devs, but if they can get this done, then this should make developing games for linux easy.
Developing them is already trivial, especially if your game already has non-DirectX code paths for OS X or consoles. That is, adding an OpenGL renderer and OpenAL audio engine and POSIX I/O facilities to an engine that's already multi-platform is easy. It's all the engines that are DirectX-only that are a bitch to port. Engines that are PC/XBox exclusive will be a bitch to port to Linux. Everything else is going to be a breeze.
The hardest part is porting the shaders, actually, because GLSL is crap compared to HLSL, and because there will often be more shader code in a modern game than there is low-level API code. All you really use the Direct3D/OpenGL APIs for anymore are basically loading data onto the GPU and sending "draw this list of vertex elements" commands. OpenGL is a huge and unsightly beast, but take a look at the Direct3D 10 or 11 APIs and you can see just how little the graphics API actually does anymore. And Direct3D includes all the useful utilities that OpenGL doesn't, like shader loaders and texture loaders, and high-level effects composition, and it's still a fraction of the size and complexity of OpenGL.
There is one thing holding back both Steam and any major publisher porting to Linux which is unlikely to ever be fixed, however, and that would be DRM. All of the big publishers -- EA, Activision, 2K, Ubisoft, etc. -- are making very heavy use of very hardcore DRM. They're not going to forego that on some rinky-dink platform. Steam can't implement its excellent DRM on Linux because there's no way to protect things at a kernel level in a FOSS OS.
I am not defending DRM. I hate it. But I also sympathize with the companies using it, because piracy really does hurt. A lot. The Freetards like to argue otherwise using unsourced quotes and statistics or small-scale anecdotes from fringe companies. The industry professionals use real statistics gathered from actual metrics like, say, X sales of a game vs Y people connecting to the multiplayer servers where Y is often 2*X, 4*X, or even 10*X. And those servers are expensive to run, and a large influx of freeloading players costs the companies millions and sometimes even puts them out of business or ruins a game launch (because all those paying customers can't connect to the overloaded servers). DRM sucks and is user-hostile, but too many users suck and are developer-hostile, so until someone figures out a way to create a satellite-mounted canon that blasts shitheads into dust when they try to pirate a game, we're stuck with DRM.