Being in the video game industry for years as a developer, I just see a problem in your PA/OSS/ALSA/OpenAL/... flame war (no offense meant, it is rather constructive).
The video game industry has a few de-facto standard libraries which cannot be easily replaced because many 3rd party or confidential game engines use them. OpenAL is fortunately one of them, but the most widely used is fmod. So the only goal is to make these libraries work out-of-the-box, which is not the case for me (PA takes 30% CPU and has latency and device switching problems which may be ubuntu-specific problems, OpenAL still gives me mono sound for bg music on my Audigy, and i have no game that uses fmod to test).
For OpenGL, drivers are not 100% correct, but I doubt the situation is much better under Windows. Per-card and sometimes per-serial-number quirks must be introduced in games to workaround buggy drivers and cards.
Of course, the "best" way to go (from a game company point of view) would be DirectX 11, to have a common code base for all "next-gen" platforms (Yes, the PS3 can somewhat do DirectX, which explains some of the poor XBOX=>PS3 ports). I have high hopes in Gallium3D, but it is going to take so long to be fully operational ...
Multithreading is always redeveloped from scratch for each platform, and pthreads pretty much matches the Win32 API in that respect.
SDL input and window management is good enough for most games but is lacking proper relative mouse mode and gamepad hotplug. Again, this is not much code in an engine and could be ported easily.
Steam could solve the highest priority problem, which is development environment and binary packaging/compatibility. Again, the standard is Visual Studio 2008 and its ugly build system, but it's what everybody use out there (with a load of hacks to circumvent its limitations and bugs). Also, external library dependencies is a nightmare for unpackaged linux binaries.
The video game industry has a few de-facto standard libraries which cannot be easily replaced because many 3rd party or confidential game engines use them. OpenAL is fortunately one of them, but the most widely used is fmod. So the only goal is to make these libraries work out-of-the-box, which is not the case for me (PA takes 30% CPU and has latency and device switching problems which may be ubuntu-specific problems, OpenAL still gives me mono sound for bg music on my Audigy, and i have no game that uses fmod to test).
For OpenGL, drivers are not 100% correct, but I doubt the situation is much better under Windows. Per-card and sometimes per-serial-number quirks must be introduced in games to workaround buggy drivers and cards.
Of course, the "best" way to go (from a game company point of view) would be DirectX 11, to have a common code base for all "next-gen" platforms (Yes, the PS3 can somewhat do DirectX, which explains some of the poor XBOX=>PS3 ports). I have high hopes in Gallium3D, but it is going to take so long to be fully operational ...
Multithreading is always redeveloped from scratch for each platform, and pthreads pretty much matches the Win32 API in that respect.
SDL input and window management is good enough for most games but is lacking proper relative mouse mode and gamepad hotplug. Again, this is not much code in an engine and could be ported easily.
Steam could solve the highest priority problem, which is development environment and binary packaging/compatibility. Again, the standard is Visual Studio 2008 and its ugly build system, but it's what everybody use out there (with a load of hacks to circumvent its limitations and bugs). Also, external library dependencies is a nightmare for unpackaged linux binaries.
Comment