JohnnyTheDon wrote:Zenith wrote:MessiahAndrw wrote:most game frameworks are independent of the underlying APIs (so the same code base can be run a variety of the game console architectures).
DirectX isn't one of them.
DirectX isn't a game framework. It does graphics, sound, etc. but it isn't tied specifically to gaming, and doesn't provide things like physics or scene management. It *is* the underlying API on Windows.
What I was meaning to say was the person I originally quoted:
Well, that would add to the usefulness of an OS if one of us added directx support to our os. That way game companies might switch away from windows... It's very hard for a new OS to become popular now days though...
sounded like that were implying that DirectX was the only reason game developers stick with Windows. What I was meaning to say is that most games aren't written straight on top of DirectX, instead they are built on top of middleware (usually a combination of inhouse, sometimes open source, and commercial).
A lot of times, there will be several layers of middleware to go through before you reach the platform specific APIs. And these frameworks are designed to be modular so you can access any platform's API through a common interface. For example:
Code: Select all
Doom 4 -> id Tech 4 -> OpenAL -> DirectSound
-> Linux sound deamons
-> id's own rendering -> Direct3D
interface -> OpenGL
What I'm getting at, is most games aren't tied down to DirectX. Most modern game frameworks abstract away the platform specific APIs of Windows, Xbox 360, Playstation 3, and Wii (and trust me, they can be some of the weirdest architectures and APIs to work with).
The reason most computer games target Windows instead of Linux comes down to a politics rather than a technical reason. There is very limited shelf space at retail stores, and it's difficult for a publisher to get their games on the shelf when they're competing with other publishers also trying to get as many games as possible onto the shelves, and to make matters worse they also have several platforms to share their limited shelf space with (PC games, Windows, Xbox, PS, Wii, DS). A majority (nearly all) of a publishers's revenue comes from the retail stores, and what actually makes it to the shelf is a very small subset of their portfolio - the titles they know will sell the most.
Linux users make up only a small amount of the gaming market. From the publisher's perspective, why would you put a Linux port of a popular current-generation game (that may sell around 10,000 copies world-wide) onto the shelf when you could use that space instead for a Windows or console game (that may sell 1,000,000+ copies world-wide). Besides shelf space being very limited, the majority of Linux/alternative-OS software is free, so their users are use to not paying (and expect not to pay) for software, so a large proportion of what is already a small user base won't go out and spend money on the game (= more piracy).
So from a game publisher's perspective pushing a Linux port of a game into retail stores is a big no-no. The larger publishers now also do online distribution can solve some of these issues, but from a publisher's perspective they're still not going to fund a game studio to develop a game for a platform that has very relatively small user-base. And even if the option to publish it for Linux becomes feasible down the track for the developers, they're usually locked into a contract that states the publisher that funded the development must remain the sole distributor.
There are some smaller publishers that do cater for Linux games, but game studio's that develop big budget titles require the large retail publishes because there the only one's willing to fund the game, usually because they're the only ones that have the advertising resources and a worldwide network of stores and know they will make back more money than what it costs to fund the game's development.
We need companies like Linux Game Publishing. I'm not sure how exactly they get permission to develop and release a Linux port (perhaps by convincing the publishers' that a game is no longer profitable or that they can help expand the franchise (which in itself is risky since the original publisher risks loosing money if everyone purchases the Linux port instead of the Windows port)).
Epic Games sometimes releases Linux ports of the game on the same disc as the Windows version (which I really encourage). But this in itself has a few issues - each platform a game is released on must be thoroughly tested (Quality Assurance and testing isn't something that can be done quickly at the end, it's integrated throughout the entire development). This requires time, computers, testers (the last two require money), which I doubt a publisher is going to allow for in it's budget when it's not going to be marketed specifically for that platform nor will it result in a large increase of sales. So it's only possible for a well-established larger company like Epic Games to fund this process themselves to specifically get a Linux port onto the same disc. Still, most studios don't want to extend their QA teams (which requires hiring more employees and a publisher may not be happy if they realize this is where their money is going).
So, as you can see, implementing a Linux/open-source version of the DirectX API will not encourage game developers to make Linux ports of their games because it's not a technical issue, rather a political one that all comes down to the small user base.
If you want games developed natively for Linux then you would need an revolution that will fragment the desktop OS market, where publishers are willing to release a Linux/Windows/Mac port all on one disc, otherwise you're better off supporting things like Wine and 3D acceleration in VMWare to play your games.