Localizing High-End Games for Low-End Machines
CowboyRobot writes "Intel engineer Dean Macri has an article at ACM Queue listing the challenges in designing PC games that will run on very different processors.
PCs vary widely in their performance, and if game developers design only for the high-end, they limit their market.
The article lists specific tips on how to guarantee that even old slow machine can run new games, such as 'the number of triangles used to create the trunks and branches could vary based on the available processor and graphics hardware performance', 'replace the clothing on characters in a game with actual geometry that separates the clothes from the underlying character model', and for simulating ocean waves, having low-end systems rely on basic sine waves while higher-end machines use more sophisticated methods."
I remember when games were about gameplay.
This would require an incredible amount of engineering support for practically no payoff.
Next generation games like Doom 3 and Half-Life 2 will allegedly scale to meet these sort of demands. And as long as the engine and development tools are written with scaleability in mind, the challenge should be far less for the game developer (assuming they can afford the engine!)
Karma: It's all a bunch of tree-huggin' hippy crap!
Why would they bother optimising games for low-end hardware? We all know that software drives sales of hardware.
Hell, look at most of the hot games coming out: they have marketing deals with the graphics card makers.
Does it make you happy you're so strange?
Instead of trying to do super-duper processor detection degradation stuff, let the player choose levels of detail and such-like.
That way he can choose whatever's important to him... if he's a big fan of realistic trees, let 'em have it at the cost of slower AI or whatever.
The Army reading list
The keyword is "graceful degradation". Take away the elements that contribute to the "wow factor" for the power user but the low-power user won't really miss.
Of course there's a flipside to this -- people with low-end machines invariably crank up all of the settings and then complain when it runs at 5fps (this happens all the time with current games, many of which do have detail sliders setting various levels of detail. Some games, like Operation Flashpoint, let you set a desired framerate and it varies the geometry complexity to try to maintain it). Alternately if the visuals are totally automatic people will complain that it looks like crap on their machine but looks great on someone else's machine.
At which point, their friend will try to suggest the other friend needs to upgrade. :)
Okay, so imagine we've got a FPS set on the water (just for kicks, call it Waterworld). You have the sine wave water and I have the sophisticated uberalgorithm water. When you shoot me, your client-side model for water thinks I am in spot A, while my uberalgorithm water thinks I'm in B. You shoot me -- but from my perspective (pun intended!) you couldn't have seen me.
/render/ the smoke.
Sounds like about 10 million "he hacks!" calls waiting to happen.
I remember people turning the smoke off in their Halflife clients because they wanted to see through it. At one point, my graphics card driver wouldn't even
Let's try an alternate approach: let's market the games for the sophisticated gamer and that will get more people to buy better machines. Not everyone is rich, but (see above) It's the Graphics Card, Baby!
[Error 407: No signature found]
The limit in gaming engines - the core of the game - is more in the threading off the cpu. Same applies to video. You can only process so much information off a single I/O channel between a single processor and however many cards are out it's bus.
The point is that you already have 3 or 4 processors in your house already. And, the trend is towards ubiquity. Once you break the single thread paradigm of game servers, then the selection of how you manage the threading is a somewhat arbitrary decision. Whether it is farmed out to a child card, second cpu, or across a farm is a matter that can be quite flexible.
That the economics of PC gaming are already starting to look a bit "touch and go" for most titles. Add another mill or so for additional art and development to support bottom end processors and you're starting to have a bit of a problem justifying the investment. Not to mention the schedule risk.
Hopefully PC gaming will turn into a proving ground for the up and comers...
Hopefully.
Dave
I write a blog now, you should be afraid.
" you're going to have to design a "smart version" and a "dumb version" for the effects you want to downgrade"
The main point I think the article is trying to make is, that rather then developers making the change, making it easier to do in the environment. (eg, DirectX knows it's going to flop performance so it opts for a different way to produce the effects). Which isn't built into current Graphic development environments.
But needless to say hardware and software manufacturers are happy to sell multiple systems to a single user inside of 5 years. And we all know it's the hardware industry that controls the software. We're not going to see the kind of "graceful degredation" like Half Life 2 promised and never will deliver, isntead we're going to see Half Life 2 bundled with new graphics cards to encourage you to buy 400 - 500 dollar upgrades.
Instead of forcing me to make individual choices about every single optional CPU or GPU taxing feature, try and detect the capabilities of my computer and give me the best picture quality I can get at a smooth framerate.
That way I don't have to study the impact of every single optional feature... if my computer can handle two pixel shader passes, 100 MB of textures, and models which have been decimated to 10000-20000 triangles each, I still won't have to know what a "pixel shader" is before playing.
I dunno...I'd still rather play Pong or Frogger than huge overdone games.
Extremely obvious and predictable appeals to nostalgia seem to be really popular with mods on Slashdot.
You'd rather play Frogger?
Then my question is, for every person who claims they'd rather play Atari or any given classic system than a present day one, how many serious gamers who own both ACTUALLY spend more hours per week playing 1970s/1980s games than post 1990 ones over long periods.
It's often said, but it's an extremely few who can back up their whistful nostalgic ponderings by citing that as the absolute reality of their gaming behaviour. Heck, I'm a serious collector of TI 99/4A parts and games, owning and coveting some virtually non-existent or prototype carts, and even I spend far more time on my newer systems than on the TI 99/4A (although I played Parsec for the TI 99 a bit this afternoon).
I don't play it because it's better than my newer systems. It's not because it can compete. It's nostalgia.
I don't have a problem with nostalgia, but I do contend against the idea that something like Super Monkey Ball 2 or Metroid Prime can be outdone in general by something like my favourite TI 99/4A games. The technology simply did not allow all the things that a new game can allow us to do. And some of those new thing are fun, and immersive. So I refuse to believe that absolutely all new computer/gaming technologies and techniques developed since the 2600 have been completely irrelevant to the advancement of gaming entertainment, and that, Frogger being just as much fun as present day games, we may as well just go back to coding CGA games in BASIC for all it matters.
It sounds like this guy wants us to write 2 engines: A high end engine and a low end engine.
Why not just write a good low end machine engine that will be killer on a high end machine?
You say things that offend me and I can deal with it. Can you?
This is why hardware sells, and why the article is 50% off the mark:
1. The article is old news/looking at eye candy. Trees are a good point, but some games already do it for scaling into the distance. Simple enough to re-use this code for scaling with performance. Cloth etc are just eye candy. Be interesting to see cloth as a gameplay feature, but the biggest use these days is in the flags of Capture the Flag game mode. Heck, Unreal Tourney did that years ago on my humble 300MHz MMX.
2. Implement that super cloth sim, and then you need a Prescot to run it! Good news - more hardware sales.
3. Multiple sets of models is fine for EA, as they can have a serious art budget - but need to buy lots of Maya platforms - more hardware sales - to make that artwork on. It's impractical for most second tier software houses. They stick with the one or two tiers of target platform, as that's all they can AFFORD! The article does not help them, and the first tier developers know most of what is in it already.
Now don't want to just bitch and moan, so constructive suggestions. One look at Doom 3 and I'm writing a check for a faster machine. It's the character skinning and lighting that sells me on the hardware. That Alien like monster in one of the preview screenshots gave me the creeps. I think the article is a good idea, with one good example (trees) and other poor examples. If he'd given a ref to scalable character skinning techniques I'd appreciate it more.
I agree.
PC games keep pushing the limit higher and higher for requirements.
Consoles are equally as bad now. Don't they have PS3, XBOX2 etc coming out in 2 years.
Imagine having the buy a new house every 4 years because your furniture is not compatible. This is the gaming industry tactics.
This guy is not a game developer. He's an Intel marketeer.
Notice what he talks about: Hyperthreading and Intel instruction set extensions. There's no discussion of the graphics subsystem, programmable shader pipelines, multipass rendering, lighting, Z-buffering, or texture memory - the things that concern graphics programmers for games today, and things that Intel doesn't do very well.
The problem is that the hardware has gotten faster and now the developers can slack of more on their coding because 'by the time the game is released, there will be faster hardware available'. The progress in game 'speed' has nothing like kept up with the hardware speed. How else do you explain that the likes Descent and Terminal Velocity with their full 3D features ran just fine on a 486/66, and ran perfectly on a Pentium 66 with the full textures and details cranked up? Hardware speed has gone up by a factor of at least 50 (possibly even close to 100) since the first Pentiums were released. How come we now need this new high-end hardware to run all the new games when the technical advances have not been all that great? Original Quake worked just fine in 1024x768 on a Pentium 66. See how far you get with the recent first person shooters on hardware like that. Bottom line - hardware has long become the replacement for the skill of developers. How else do you explain the difference in resource consumption between, say, Windows 98 and Windows XP? Does it really do sufficiently more to justify a 10 fold resource use increase?