Slashdot Mirror


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."

19 of 345 comments (clear)

  1. Graceful Degradation by LostCluster · · Score: 4, Interesting

    It's easy to say what you want to do when you have unlimited processor resources. But when you don't, you'd rather your program not crash or totally freeze. Especially in a game environment, throwing the little things overboard first will leave the main gameplay elements in tact and still leave a playable game.

    Yeah, it means extra programmer work on the design side because you're going to have to design a "smart version" and a "dumb version" for the effects you want to downgrade. You'll also have to select how you're going to measure system resources, and at what level of resources will the changeover for smart to dumb happen for each element. It's work, but I think it's an investment with a payoff.

    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. Background elements are the key thing you should be thinking about, especially ones that'll never have much direct impact on the outcome of game situations.

    It's all about raising the spread between your "minimum" and "looks best on" system requirements. You want to get the minimum as close to the floor as possible, while having the high-end features will create great demo installations and really sell your game to the high-end fans. The more people who can enjoy your game, the more copies you'll sell, and therefore the more money you'll make. You remember money, right? It's the whole reason games are written anyway...

  2. Obvious? by tarzan353 · · Score: 5, Interesting

    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.

  3. User tuning. by eddy · · Score: 2, Interesting

    Don't forget to expose these options to the user. Games a pretty good at this nowadays, but it's pretty important that there's some way for the user to actually decide these things, they shouldn't all be left up to 'timing loops' and 'hardware IDs'.

    Not only do some gamers perfer framerate over display details or vice-versa, but it's also important for the future where the same game might meet with hardware that is literally 10 times as fast as the state-of-the-art at the time it was released.

    --
    Belief is the currency of delusion.
  4. Valve Survey by MiceHead · · Score: 5, Interesting

    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."

  5. A certain amount of luck... by kikibobo · · Score: 2, Interesting

    I lead the graphics effort on The Sims, and for us, there was a lot of luck involved. Most people don't think of The Sims as terribly cutting edge graphics-wise, but at the time we were trying to do something that a lot of people told us wouldn't work (software 3d rendering into a rich z-buffered background). I put a huge amount of effort in to making the game playable on a 200MHz MMX PC, which it barely was. In the end I think we got lucky...by the time it shipped, that was a definite sweet spot in the market. And it did manage to sell a fair number of copies, though probably not for that reason. :)

    Rumor has it The Sims has driven up the price of RAM. We didn't spend nearly enough time optimizing how it would use RAM with hundreds or thousands of new objects added to the game, and from what I hear hardcore players are happy enough without high-spec CPUs, but they all like a gig or more of RAM.

  6. Graphics cieling by TheAxeMaster · · Score: 2, Interesting

    Don't forget the article on slashdot the other day that was a rant from a guy who said that games were approaching the graphics cieling in terms of quality. At some point the required PC specs will nearly stop moving upward, then people will catch up . So maybe then in the near future when games can't be much prettier than Doom 3 is supposed to be, the developers will be able to basically stop designing for such things and concentrate on game content. I mean, if you've played or seen the Doom 3 alpha demo (and most of you should have, if not, for shame) How much prettier do gamers demand games to be? I think we are very close to the graphics cieling now....

  7. This is why they left for the consoles by Billly+Gates · · Score: 2, Interesting
    I use to play computer games since the late 80's. It was a different time.

    Computer games were always better then the console ones, were first with 3d, first with networking, you could use mods etc.

    But now all the small gaming companies no longer like the pc. Id software and a few others are still around but most people use consoles for games and work on pc's. This leave even less incentive for a small gaming company to consider the limited pc market.

    I was hoping Microsofts Xbox would bring in new games to Windows. It did not and now they are leaving the intel platform so that hope is gone.

  8. Fractals by VoidEngineer · · Score: 5, Interesting

    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

  9. Re:Gosh. by sniepre · · Score: 2, Interesting

    What the hell is that supposed to mean? This whole thread is about "gameplay" ... when you purchase a game, you want it to perform adequately for proper interaction and playability.. Like on a SNES or any other console system, you have a unified platform for which to develop so you know you are not producing a product which will not function properly on some home machines, but.. for PC development, you really have to cover alot of bases in order to get your product playable on a majority of your customers machines.

    Remember that game Total Annihilation from Cavedog? When that came out it was pushing the limits of PCs at that time, and even had a "RAM" box when setting up multiplayer games so you could boot the kid who only had 32 mb when you wanted to play a 64mb map.. .That is scalability and being designed for use on multiple level platforms. I still to this day enjoy that game, but, it allowed you to tweak the graphics to turn off advanced effects, reduce the screen resolution, and held you accountable for your machine stats when playing multiplayer online for the better of all involved. I think this is kinda more of the point that is being made here.

    --
    Is not life a hundred times too short for us to bore ourselves? -Friedrich Wilhelm Nietzsche
  10. Graceful enhancement by Anonymous Coward · · Score: 1, Interesting

    Not only that, but on the other hand, a well designed game would allow for the 'wow effect' to persist in time as the high-end is pushed forward and more details can be enabled. Gives a longer life to games. On the other hand, do publishers want that?

  11. Scalability by rijrunner · · Score: 4, Interesting

    Instead of looking at making a game scalable on a single computer, how about looking at leveraging it off multiple machines instead.

    Have a central box that controls the game mechanics, then farm out the rendering engine to multiple servers. Most homes are moving to multiple computers in any number of of applications.

    Now, I generally loath the idea of gridcomputing, but rendering is one of the areas it is good at. Have a central box run calibration tests for the graphics flow, then you can add or remove additional processors as needed. A single processor would represent the lowest level.

    So, market a generic game rendering standard that can be ported to any sort of processor (including embedded cpu appliances ), then focus on the console box or computer to combine the results.

    1. Re:Scalability by Anonymous Coward · · Score: 2, Interesting

      Or how about using multiple video cards, like they do for video processing. There is no need for using 5 current hungry boxes when you could just add another video card to boost speed. Sheesh!

  12. scalability is king by Wellmont · · Score: 4, Interesting

    While the industry specialists are worrying about compatability (which is a valid problem) Microsoft is selling single use machines such as the Xbox at a loss. Maybe it's time to produce similar architectures and even homoginize the processor/chipset platforms into something recognizable as one system. Unfortunately most people get linux for free, don't support open source projects, and then expect the world to cater to their minority preference of alternative environments.

    As far as keeping in line with the article I do believe that instead of a diverse platform on which to design games, we are going to instead have more specialized products such as the Xbox and the TiVo that are going to destroy the computer's list of abilities one by one. In the end i see more and more Dell's and HP computers turning into conversation pieces instead of being diverse, which is in direct support of the premise of the article. Diversity in this field currently leads to an inability to produce games that sell well to an uninformed culture, instead you are developing games like GTA which was developed separately for 4 different systems instead of all at once like Sonic Heroes.

  13. Don't check architecture! by SharpFang · · Score: 3, Interesting

    Just pick minimum FPS and replace heaviest algorithms with lighter versions whenever FPS drops too drastically. Just look up "Morrowind FPS Optimizer" for example of a program that does similar thing - shortens view distance whenever it causes speed problems. It allows several other hacks too: Remove far, small objects, shorten view distance (better FPS) in battles and much more.

    --
    45 5F E1 04 22 CA 29 C4 93 3F 95 05 2B 79 2A B2
  14. Re:No market for this by Anonymous Coward · · Score: 1, Interesting

    There _is_ a payoff, because a majority of game producers use this idea. Those free video players on your computer use optimizations like this in order for faster and smoother processing. It creates a better, higher quality enviroment.

    Most games today are real time simulations. Remember the days when you had to use a Cray to do something like that? Well, the only way some games can be created for earthly computers is to have well-engineered solutions. You can't just slap down code to make a game like halo (gasp-but its slow you say), deus ex, or warcraft; there is engineering behind these things. Making an optimal game engine that provides quality gaming across multiple enviroments is inherent in producing a good game that can be shared with others.
    I could create a game that only ran on a 128 processor blade machine, but guess what, even if it is the best game in the world, no one else would be able to experience it. To provide an anolgy, I could write a book in some made up language, or I could write it in a language that is avaliable to others.

  15. Re:Gosh. by great+throwdini · · Score: 3, Interesting
    Diablo had more depth than any of those games except NetHack.

    Actually, understood in terms of game mechanics, the depth of Diablo (either release, with or without exapansions) is less than that found in most modern, "completed" roguelikes (many are extended programming exercises that never attain full realization). It's about on par with seminal games of the genre.

    The only depth to be found in Diablo that exceeds a typical roguelike is to be found in the plotting of the storyline. Apart from ADOM, there really aren't (m)any roguelikes with a cohesive, multipart plot - apart from "slay foo" or "retrieve bar".

    But returning to game mechanics, Diablo is incredibly atrophied compared to the average roguelike. Diablo II compares a bit more favorably, but still misses the mark. Not a bad thing, as more often than not, roguelikes tend to choke on their complexities, leading to woeful imbalance/inconsistency or excessive demand on gamers to grok the system as presented to make any headway at all (NetHack).

  16. yes by Anonymous Coward · · Score: 2, Interesting

    More developers need to have lower-end systems in mind! I'm a computer game fanatic, but I can't afford to upgrade or replace my system every year. Each computer I get lasts about four years before I get an overhaul. I love Blizzard for keeping people like me in mind! And I really look forward to playing half-life 2 and doom 3... some time in 2006.

  17. Re:Good old Atari... by Anonymous Coward · · Score: 1, Interesting

    P4c 2.6gHz
    1 GB RAM
    ATI 9600XT 128 MB RAM

    Most played games:
    almost exclusively MAME,
    Peter Packrat (1986)
    Bump n' Jump
    Crystal Castles
    Time Bandits
    Anteater

    I've tried modern games, I find them too time consuming and boring.

  18. Re:forget the software... by SFBwian · · Score: 2, Interesting
    I think this is actually a pretty neat idea, if it ever got implemented. It would rely on having the graphics API handle calls differently perhaps, by 'asking' the driver what it should do. (IANAGraphicsProgrammer)

    You (the user) would want to be able to 'order' which effects get thrown away first, and whether effects are either always on (never throw away), able to be thrown away, or never on. Some of this functionality we're getting already, with FSAA, and to some extent anisotropic/trilinear filtering. The only issue is games wanting to do it on their own or not ever asking the drivers.

    As a side note: wasn't DirectX supposed to fix this? ;)

    --
    I'm looking to get rich. I've got steps #2 (????) and #3 (PROFIT!) planned out, but am having trouble coming up with #1.