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."
PCs vary widely in their performance
This is why I come to slashdot, the deep technological information you can't get anywhere else.
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?
Isn't this stating the obvious? Of course you could do this to speed games up, but all of these factors require longer development time.
With the rushed nature of game development, I don't think game companies are that worried about this. It raises development costs without paying out much- most gamers keep up with the latest video card, processor, etc., and won't benefit from this.
The type of computer user that doesn't upgrade their system very often is the same user that doesn't buy very many games.
If these games were open source projects, these sorts of enhancements could be possible. Since the code is open and shared, some guy with a low-end machine wants better performance, so he writes simpler algorithms to emulate the real ones. When you build your own copy, you just pick which optimization level you want to be at.
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.
Valve has been conducting and publishing system specification surveys. It's interesting to see that the majority of their respondents are using GeForce 4 MX cards; I would have thought higher specs.
The most annoying thing about detail controls in games is that it's unclear what you (the end-user) are changing when you tweak the knobs. As a developer of 3d applications, (who's guilty of same), I think I'll approach this in the future by giving users immediate feedback: "Here's what your scene will look like with low shadow detail. Here's how smoothly it'll run, on average."
We're indie. We're working on our 14th game.
One method of making scalable games is to use recursive based algorithms to generate the graphics. Basically, code up a 'for' loop, and vary the number of iterations depending upon the architecture of the machine it's running on. For things like trees, water, snowflakes, clouds, grass, hair, and so forth, this optimises rather well.
For example, refer to Koch's Snowflake
On a low end machine, only two or three iterations would be needed to create a decent snowflake. On a high end machine, you could iterate this function a hundred times with various compounding affects such as rotate, copy, resize, diff, transparency, and so forth. With high end machines, you can do close ups of snowflakes without any resolution loss... And most all of this is using the same algorithm as the lower-end machine would use...
Granted, the fractal algorithms have to be well designed and thought out to achieve this effect. A basic Koch's Snowflake algorithm at high iterations doesn't look too much different from lower iterations... Some transforms would need to be introduced to the algorithm, but those could also be scalable...
Anyhow... $0.02 cents
No, they just relocated her frontal lobes.
The higher the technology, the sharper that two-edged sword.
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]
I remember when games were about gameplay.
I swear this is the biggest fallacy ever.
Have you actually gone back and played those old games recently?
For me games are very much like old comedy shows and jokes, because they're old, I've heard all the jokes before. In games, I've played all those old school games, I've heard the joke done to death and only gain enjoyment from the reminiscence.
Game genres have gone through evolution after evolution, each generation extracting and developing upon succesful ideas until we are at the current state.
Look at Pole Position, compare it to Outrun, and then Burnout, the evolution is obvious. Each game has kept the same gameplay fundamentals and expanded/improved upon them. Of course the increase in hardware performance has helped, but I would say that if the hardware was available at the time of Pole Position was made with none of the history of the racing game, we would have seen Pole Position simply with flashier graphics.
and you get:
Quake 2 with nekid Stroggs galore.
Wolfenstein with a nude Adolph Hitler
GTA 2 with realistic squeeky vinyl bucket seat sounds.
Silent Hill's "playdead" of the month.
Warcraft 3 expansion - Frozen Cajones
and Frodo still says "I am naked before the wheel of fire" in LotR, but he's grinning.
Who is John Cabal?
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.
Games for PS2 render to a 640x240 pixel frame buffer at 60fps. This results in jagged edges. Games for GameCube and Xbox, on the other hand, typically render to a 640x480 pixel frame buffer and try for 60fps. For an interlaced display, they do a simple comb filter on the scanlines. This results in smoother edges.