[mdlug] Interesting information about Windows "7"

Ingles, Raymond Raymond.Ingles at compuware.com
Wed Jan 30 13:16:28 EST 2008


> From: Aaron Kulkis

> >  Well, the difference to the end-user is kind of academic.
>  > Either way, you need a particular set of cards to play the
>  > game, or you're SOL.

> But modern windows games are written against the ActiveX
> API. .. as more cards meet the minimum PERFORMANCE
> specifications of the game, they too can be used to
> play the game.

 Er, sort of. It's the same game as before - on a higher level, true, but
from a practical perspective a specific set of cards are needed for the
games. (It's DirectX, BTW - ActiveX is the horribly insecure web browser
plugin scheme.)

> ActiveX is hardware neutral -- if it wasn't, then Windows games from 3
> years ago which required what was then bleeding-edge hardware would be
> completely unplayable on a new system with today's bleeding-edge
> hardware.

 Emulation changes that somewhat. I can run Atari 2600 games on my Palm
Pilot. I can run old DOS games without anything resembling an ISA Soundblaster
card in the box. But yes, having an abstracted API helps a lot. The problem is,
the DirectX API abstraction layer is paper-thin. Entirely too much dependence
on the underlying hardware leaks through.

 Consider "Hardware Transform and Lighting", a key feature of modern games;
essentially, matrix processing to handle large numbers of vertexes and polygons.
In OpenGL, you don't have to do anything special to get the benefit of Hardware
T&L - you just use the standard OpenGL calls, and if they're hardware-accelerated
they'll operate much faster. In DirectX, you have to have entirely different
code paths.

> the game writer is writing for specific on-card capabilities...which again, is
> NOT the same as writing for a specific hardware implementation (such as the
> color palette begins at memory location 0xABCDEF00)

 It's a bit higher-level than hardcoded memory addresses, yes. But the implementation
that Microsoft did - DirectX - leaves so much to be desired.

 In a way, you're right - it's possible, for example, to implement DirectX on top
of OpenGL, as Wine does. However, because of the hardware lumps poking up through
the API, it's *much* tougher than the converse, implenting OpenGL on top of DirectX.

> That's the WHOLE PURPOSE of an operating system --
> to abstract common, mass-produced hardware, so that
> they are roughly interchangeable, to the extent of
> the capabilities of the hardware (Nobody would expect
> a 360x360 dpi CMYK printer to produce output on par
> with a 1440x720 CcMmYK printer. And nobody expects
> a 5 ppm printer to produce output at the speed of a
> 20 ppm printer.)

 That's a decent analogy... except imagine that the call to produce a red dot on the
low-res printer was entirely different from the call to produce a red dot on the
high-res printer. DirectX forces that kind of knowledge onto the programmer in a
rather large number of cases. It's gotten much better since the days Carmack slammed
it - from what I hear, DirectX 9 is not half bad - but it's been a long, hard road
to that point and the transition isn't quite complete yet.

 Sincerely,

 Ray Ingles                                            (313) 227-2317

 Spammers seem to assume that you are heavily in debt, under-endowed,
 impotent, jobless, without a college diploma, without insurance, in
 need of prepaid legal representation, and need to investigate those
   closest to you. In other words, they are selling to themselves!
The contents of this e-mail are intended for the named addressee only. It contains information that may be confidential. Unless you are the named addressee or an authorized designee, you may not copy or use it, or disclose it to anyone else. If you received it in error please notify us immediately and then destroy it.



More information about the mdlug mailing list