On Jan 9, 2012, at 10:33 PM, Jules Richardson wrote:
Fred Cisin wrote:
On Mon, 9 Jan 2012, Gene Buckle wrote:
(Windows for games, *nix for work, Mac for
door-propping) :)
Always use the best tool for the job.
Games: I don't know from games. SURELY not Windoze???
It's probably always been true that the majority of games try to push the hardware to
its limit, and hence any kind of OS really only serves to get in the way.
Perhaps, but it really comes down to economics; the majority of computer users use
Windows, so the big-budget titles tend to be developed primarily for it. Mac OS is
beginning to approach parity, but it still has a long way to go. Linux had a brief period
where major games were ported to it, but since Loki Games (the major porting house)
collapsed, not so much.
Most games these days run at a sufficiently high level (and processors are sufficiently
powerful) that the OS itself doesn't play as much of a factor as far as performance.
Almost all of the graphics are being executed through powerful dedicated hardware, and
background tasks tend not to take up more than about 1% of the processor, so the major
obstacles tend to be hardware support (including driver quality and performance, which is
a major performance driver) and decent software interfaces to the hardware (OpenGL vs.
DirectX, various audio libraries, input processing, etc).
Direct3D, since it is not managed by a large cabal intent on preserving compatibility
amongst several (often warring) factions, tends to advance a little faster (for better or
for worse). Depending on what you're trying to do with it and how early you consider
portability issues, it can be relatively simple or devilishly complex to translate
Direct3D operations to OpenGL; lots of developers with cutting-edge engines just don't
find it worth it to try to support OpenGL as a "second-tier" solution, which
necessarily ties the games to Windows or XBox 360 (which, as I understand it, runs a very
modified NT kernel).
Interestingly enough, lots and lots of indie games are cross-platform and run on all three
platforms. It's sort of a bathtub curve; there's enough development effort to
support the abstraction necessary to run on multiple platforms, and the engines aren't
so overwrought that they become difficult to port between platforms.
- Dave