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 dunno...I'd still rather play Pong or Frogger than huge overdone games.
I remember when games were about gameplay.
This would require an incredible amount of engineering support for practically no payoff.
use openGL
open the source
maybe folks itching to play the game without spending money will figure out how to port it to their machines.
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!
This sounds good, until the low-end people realize they are missing out of many of the important graphics that others are seeing. Sure it would be nice for everyone to be able to run the game, but I think most people would want to fully experience the games. I think this idea would fall apart on online multiplayer games. In a FPS, I would prefer to have as much detail as possible. Of course the low-end machine gamers will be shooting at the moving block instead of seeing a fully rendered opponent.
--
Real-time deal updates
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. :)
I dunno, it seems like making more generic algorithms -- ones that will draw quickly on diverse platforms -- would tend to limit the optimizations for the fastest machines. I.e., once you start coding algorithms with decisions based on processor speed you'll lose all the specific tweaks.
Games already have a lot of features to make them playable on older hardware including resolution options, fog, shadows, detail level, etc.. Hardware also moves pretty quickly. By optimizing in the general case you'll also make it more playable on less recent hardware (the rising tide floats all boats). Plus, who's to say that games lose their appeal as fast as new hardware comes out? I still play Warcraft II because I enjoy the gameplay.
although the idea is of universal 3D action games that will play well on any platform, it's not going to fly.
First, gamers Want the fastest possible speed on their platforms. They're the people driving the overclocking movement; who buy five grand, tricked out systems, and who also push the gaming industry. They're not going to buy games where there hardware and wideband net connections doesn't matter.
Second, we've already have games that run on multiple platforms. They tend to be written in Java, Flash or other virtual machine style environments where the game designer can focus on the game and not the hardware. Unfortunately, those games tend to be slow, since VMs can never take full advanatage of any givem hardware environment. And slow, to all the gamers I know, means dull.
So, nice ideas folks, but I don't expect any of them to matter in the real world of mainstream gaming designers or players.
Steven
And, the hardware is optimized to work with each other more closely then a normal PC.
AND, you run your xbox at 640x480 for the most part since this is what your average TV will display.
- It's not the Macs I hate. It's Digg users. -
It might already exist, but I always wanted a software renderer for warcraft3, preferably if it was all 2d like warcraft2
theres nothing more annoying than being ambushed by a large army and not being able to micromanage my troops because the mouse wont move
sure, its pretty, but I prefer the gameplay over eye candy thanks.
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.
Lots of games have adjustable settings for image quality, bit depth & display resolution. Even Doom 1 did this.
as they are already developing for low end hardware - tomorrow's low end hardware.
The net result of spending thousands on making your game engine run on machines that are old when you release it is a totally false economy. Games development needs to take into account the future and scale upwards, not downwards. I want my software to run better in the future, not better in the past!
I suppose the only point at which this might be useful is when portable and phone hardware is capable of running what we'd consider decent desktop games now. Is this likely to happen?
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've had my PC for over 3 years now, and with an upgrade to the video card it still plays everything I've thrown at it. Of course I can only play Silent Storm at 1024*768 with no AA and medium graphics quality, but that's the point, allow gracefull degredation and even 3 year old PC's can play. The same game will bring todays fastest processors and GPU's to their knees at max quality, so the engine should still look good in a couple years. With game development times as long as they are today you have to design things like this if you want to look decent at launch let alone after a bit of time.
There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order. Starting now.
We all like purty graphics for aesthetic reasons, but many of us play games for other purposes. To lots of people, online gaming is enjoyable because it's competitive, like football or chess.
I'd be interested to see how much both lack of detail (lower resolutions, turning off dynamic lighting, and the like) and bad framerate influence players' performance. My guess is: not much, and quite a bit once you go under 25-30 fps or so.
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.
Considering that Intel ship only integrated gfx chipsets, it is no suprising for such an article. Traditionally integrated gfx chipsets are targeted to corp. clients, but I noticed that a lot of people besides corp. people are buying them too. Consider this, last year who ship the most graphics chips? Would it be suprising that ATI was NOT the king? In volume, Intel is flooding the market with their cheap gfx chipsets w/o hardware T&L and people have been flocking to them because they are cheap and they reduced the price of a computer by at least 200 to 300 dollars because you cut out the gfx card you gota buy. In addition, for every chipset sold for Intel, a CPU is attached to it. This is making Intel tons of money.
I think the problem is that when people started to play games on those cheap computers with integrated gfx they found out painfully that they got what they paid for. Some games won't even work because hardware T&L is the first thing they check. As a result, people will start to realize that they didn't save any money and they still have to go out and buy that 200 to 300 dollar gfx card in order to play the game they just spend 25 to 50 bucks on and can't return it because they opened it.
I am not an Intel hater, but rather I am tired of people asking me why can't they play the games they just bought and is there a way I can work some magic. Once I figured out they are using an integrated gfx, the only thing I can say was you need to spend 100 bucks on a decent card.
I am not suprised of such a paper getting published.
> Imagine having the buy a new house every 4 years because your furniture is not compatible. This is the gaming industry tactics.
If I could get buy a new house for $300 and couches were $50 each, I'd be quite thrilled.
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?
people with low-end machines invariably crank up all of the settings and then complain...
... when it runs at 5fps
So just because the world is full of idiots, the ones with at least half a brain but not a machine less that 6 months old should suffer? Interesting logic. I can't say I agree with, or even feel sympathy for, neither the standpoint nor logic, but I still find it interesting - not to say fascinating.
5? Try 0.25 - 1.9.
The simple fact is that game programmers of today are unfortunately "polluted" by having access to only state-of-the-art machines, why they don't even see the performance problems. 1GB of RAM with several GB/s of bandwidth and a CPU capable of cranking out 3.000.000.000 instructions/second is the only thing they see.
If you approach a game publisher, or even some game development companies for that matter, with issues like "playability on not top-notch machines" you get the same blank stare as if you tried to explain TCP/IP to an AOL'er. Not even if you mention the "bottom-line" argument, that if they worked a little harder making the game playable on a wider range of machines they'd sell more copies.
Let's face it, they simply don't care about neither users nor long-term. Heck, many of'em are even unable to release properly tested code. We basically pay for beta-quality and after that are assumed to have broadband connections to get patch after patch after...
'Scale the number triangles to...' 'use a sine wave instead of...', game development 101 my friend.
That doesn't mean that game developers have the time to support such a broad range of hardware, the Q&A and testing expansion associated, et cetera...
Nearly every game developed in the past 5 years attempts to embrace this approach, I can't believe that this is news. I mean, most games pipeline out over 2 years AT LEAST, so by virtue of the machines they develop upon there is a 2 year coverage of hardware support (and often games ship without support or scalable performance options for the 'latest and greatest' out there.)
Maybe he's under the impression that they don't support the PII because they just don't realize that there's money in them thar hills; however, that is incredibly naive thinking. They do not usually support the large PII base (just as an example) because their research has shown that people with PIIs are not very interested in the 'latest games.' (Game Dev magazine had a survey's results published 2 or so years ago that covered this.) Simultaneously, development teams are of a generally 'limited' size. They have 'limited' time to produce a game with a particular 'window' or 'target' for shipping. Each iteration backwards in performance that you wish to support requires a serious commitment of resources. Some games which make use of (relatively) new innovations (such as pixel or vertex shaders, or new processor instruction sets) may find it inordinately difficult supporting a long back history of machine performance. Ironically, engineering a (for example) 'rendering path' which supports much older hardware can preclude your game from taking advantage of newer capabilities.
Loading...