I've been told that the reason that the Xbox could handle doom3 as good as it did despite having nowheres near the amount of processing power, RAM, and video power of a PC that could just barley run the game is that PCs have all kinds of other crap going on with the OS in the background.
With that said, would it be possible to design an OS that has some kind of gaming mode that boots up the OS without any of those other processes,that aren't used for games, running in the background?
-
-
Sounds like a good idea, in fact you can make your own "gaming mode script" by turning off non-essential services thru a pre-written VBscript when you game, such as the print spooler or Windows Update or the indexing service. Another idea would be to become a Linux nut and go mucking in the kernel, and then hope your favorite game gets released with Linux compatibility.
-
The architecture of a games console is also very different from a PC. A games console's hardware is designed to do one thing only, while a PC is designed for multi-tasking. The difference in architecture means that regardless of how stripped down your OS becomes, you will still need far more superior specs to run the same games.
Do not forget that Windows XP draws its desktop in software mode, so the GPU isn't used. Nevertheless, you still require a far more superior GPU to run the same games on a PC compared to a console. The difference in architecture is the cause of that. -
Dustin Sklavos Notebook Deity NBR Reviewer
It bears mentioning that the original Xbox is basically a trimmed down PC.
HOWEVER.
The key difference here is that the Xbox has exactly one hardware configuration, and as a result of this, programmers can heavily optimize for it knowing their optimization is going to work 100% of the time.
That said, if you play Doom 3 on the Xbox, you'll notice it's missing quite a bit in the environments and it's visually somewhat lacking, so it's really not a good comparison to draw. A PC running Doom 3 at 640x480 High will actually look a fair sight better than the Xbox version. -
As Pulp said, there's a bit more to it.
Yes, the XBox's hardware is basically cheap, stripped down PC hardware. But it's *one* single configuration, which means when developers try to squeeze max performance out of it, they can accurately measure where the bottlenecks are.
If they find out that the pixel shaders are keeping down everything else, they can make some optimizations in that area, and they'll know that it will benefit the end user *exactly* as much as it does on their test system.
On a PC? Well, you might have completely different hardware. They might decide that hey, on their system, the CPU can't keep up with the GPU. On your computer, the problem is entirely different, there's justs not enough free RAM. Or the sound card uses a bit more CPU on your computer than they'd expected. Or.....
Developing for PC's means you're trying to hit not just a moving target, but hundreds of thousands of different ones. Which means that the optimization you make in one part of the game is almost guaranteed to *worsen* performance for some players.
About the OS, I suggest you open task manager and look at CPU usage when Windows is just standing there. That's right, 0%. That's how much there is to gain just by disabling services. It doesn't matter whether they're loaded into memory, because they're not actually doing anything. It *might* make a difference because it frees up a bit of RAM (At least on low RAM systems), but generally, don't count on it.
Where the OS *could* become faster is in serving requests from the games. On a PC, your rendering code has to go through a lot of abstraction layers because of the varying software and hardware. First, you have your own engine code. That calls the DirectX code, which calls its internal hardware abstraction layer, which calls some Windows API functions which call the graphics driver and so on. All this takes time.
On the XBox (360, at least), the driver and DirectX are merged. When you talk to DirectX, you're talking to the driver. So it doesn't have to forward everything. It also doesn't really have a proper OS. And that pseudo-OS doesn't have a hardware abstraction layer, because the hardware is known and static.
So the problem is not that the PC's OS has a lot of stuff running in the background. Rather, it is that every time you try to do something, it has to be translated from the hardware-independent front-end that the game developer uses, into something hardware-specific that the drivers can understand.
About the desktop, Windows (pre-Vista, at least) has the one redeeming quality that it only redraws its GUI when it has to. if you move one window in front of another and then away, the one at the back has to be redrawn, because its old contents were overwritten by the window that passed over it. But it only has to be redrawn once it became visible again. If you move a window over a small corner of a window, only that corner has to be redrawn. In many ways, that's inefficient as hell (if you've ever looked at how windows are rendered when you drag them around, or at the CPU usage while you do it, you'll know what I mean), but it's handy if you have a full-screen game going. Because that obstructs *everything*, which means that *nothing* has to be redrawn.
It's a relic from Windows 3, because back then, there wasn't enough memory to store bitmaps of the windows so they could be redisplayed if they were temporarily hidden. So you had to tell the program to repaint itself. And that is basically how it works under XP as well. (Although with a few improvements under the hood, and sometimes it will use a bitmap to *pretend* that the window is redrawn. That's what it does when a window isn't responding, for example. In the old days, it'd just go blank (just like it does if you pass another window over the non-responding one, afterwards it'll be blank, because it isn't responding to the "You need to repaint yourself" messages from windows). But as long as possible, Windows tries to pretend that the window is drawn, by reusing basically a screenshot from the last time it was drawn correctly.
Vista works a bit differently (which is why it actually looks smooth when you resize or move a window. That's not just because of hardware acceleration), but I don't know how it handles windows that aren't visible. (The reports that game performance suffers when Aero is enabled seems to hint that it draws the windows even then, which is dumb)
Gaming OS?
Discussion in 'Gaming (Software and Graphics Cards)' started by londez, Apr 24, 2007.