No More Unreal Ports For Linux?
Ant was among the first to write with a link to this article on Blue's News claiming that Epic's new game engine is Direct 3D only, based on statements made at an E3 demo yesterday. Check that link to read the full article, but consider this excerpt: "A major side effect of this is that any
future ports of Unreal-engine titles that use the new technology will need to have a
completely rewritten rendering system, making Mac and Linux ports significantly
more difficult."
DoenerMord also wrote, saying "This
kind of puts some perspective on recent comments from Tim Sweeney (the man behind the Unreal engine) on Microsoft's
breakup ..."
It's sad, but true. OpenGL needs a lot of
extensions now, and these extensions must be
made mandatory for the next generation of
games.
Cards are now hitting the market with environmental bump mapping, cube mapping, texture coordination perturbation, etc, and unfortunately, the only way these are currently supported is through mutually incompatible OpenGL vendor extensions.
In typical MS fashion, DX1,2,3..5 sucked. By DX6-7 were good, and now DX8 overtakes OpenGL.
You can't blame game developers from moving away from OGL if they can't write to a consistent standard API that utilizes all of the hardware acceleration features available on a card.
This christmas we will see the ATI Radeon, 3dfx Rampage, and NV20. All of these chipsets are likely to support the DX8 shading language. OpenGL won't except through proprietary extensions like NVidia's register combiners extension. That means developing a game that uses advanced photorealistic lighting on OGL will be hard.
Herein lies the difference between open-source and commercial development. MS actually runs conventions, gathers developers and manufacturers together in the same room, has people present papers, and say: What do you want in the API? The game developers and hardware manufacturers interact, and MS adds the most request features to the API.
As far as I know, there is no open-source equivalent to MS Meltdown, E3, WinHEC, etc.
What Linux needs is a hardware/kernel convention so that there is some actually two-way communication between developers and manufacturers instead of just: "Gimme your goddamn specs so I can write a driver."
The problem for gamez writers is real. The fundamental problem with peecee gaming is that gamez, to get the performance gamerz want today, need to get very close to the hardware. Unfortunately, this is exactly the type of thing that good operating systems both prevent and facilitate: arbitrary random physical access to hardware devices is out of the question, but there exists one prescribed method of gaining the access you need, which offers protection from at least most mistakes. DirectAnything is hamstrung by two problems: 1) It fails to provide any real protection, and has been designed and implemented in the same slipshod way as the rest of windows, 2) It requires hardware support which is anything but universal.
So it's understandable that gamez manufacturers like targetting the consoles - it's a single known environment (as is pointed out in the article) which is generally rock solid internally and offers very direct hardware access, making high performance easy to get. Naturally, the lack of protection is problematic, but people have been writing hardware gamez since Pong - it's a science by now.
I would argue that, once completely implemented, the new DRI/DRM XFree implementation will be infinitely preferable to Microsoft targets for gamez developers. Why? Performance (with the right hardware), universal availability, and uniformity. In other words, you won't _need_ a FuxorGraphics model 455CA specifically; anything will work, though naturally if you want good performance you'll want something that can do hardware GL. GL is not itself without problems, but at least it's widely available. And with a fast enough CPU, software rendering is not out of the question (in fact, some SGI systems were set up specifically to do most of the rendering on the CPU. This is not altogether a bad thing; the 3D performance on those systems does not suck, to put it mildly).
Whether this ever happens, and whether it's ever adopted, remain to be seen. But even if all of his worst fears are realized, and DRI never gets completed in any sane fashion, it's not the end of the world. The worst doomsday scenario he comes up with is the death of the peecee. Would it be so bad to kiss the relic of the 70's, never designed but patched together by marketing types and marginal hackers from day one, unstable, unreliable, and nonuniform, a final goodbye? I'd like nothing better than the death of the peecee. Good riddance. Tragically, though, this fear is massively overblown: the peecee's existence relies on buyer ignorance and gullibility, of which there seem to be no shortage.
[SARCASM]
I'd like to talk to you about an upstart computer company called "Compaq". It seems they're about to release a so-called "IBM-compatible" PC. This is the worst thing that can happen to the computer industry! Everyone should buy IBM. Not just because nobody ever got fired for buying IBM, but because IBM is standard. Just look at what Compaq and companies like them are going to do to the computer industry. Soon everyone will have different computers with different hard drives and different video cards and different CPUs and different amounts of RAM. Imagine the chaos that will ensue! There is no way that all of these different parts can possibly work together in a "100% IBM compatible" way. I predict that 10-15 years from now computers will be twice the size of a house and so expensive that only the five richest kings of England will be able to afford them. Put a stop to this! Buy IBM!
[/SARCASM]
But seriously. I believe it was Bill Joy who said, "The function of an operating system is fixed." That function is to control access to the computers' resources (CPU, RAM, files, network sockets, etc). Applications ask the operating system to provide access to resources through a standard API.
What we need are operating systems (multiple, not one) providing APIs that are standard and available to all manufacturers the way hardware standards like PCI are. Then we can start to see the same competition in operating systems that we see in PC hardware.
On the internet we have dozens of different TCP/IP stacks, web browsers, protocols, compression schemes, XML engines, IPSEC implementations, etc. As long as they are written to open standards more is better. It means you have a choice in what software you use as opposed to being locked into a single vendor such as Microsoft. Vendor lock-in is what happens when you have a single dominating implementation of a "standard". When such a "standard" is violated there are few people to complain about interoperability problems and no standards-compliant vendor to turn to. When there are multiple vendors with nobody dominating then people will simply stop buying from a non-compliant vendor (why buy a broken software when you can get software that works?), thus making non-compliance unprofitable.
Competition is a Good Thing(tm).