Taking advantage of asking me anything, Steve says:
If one writes a book, the reader gets exactly what the writer put across. Doesn't matter what format they read it in - it's basically the same experience.
But with video games, everyone’s machines are different, from ancient to cutting edge. With all the variables of OS, RAM, video cards, and everything else thrown in as well. Which have changed since you began the project and will have changed again by the time it comes out.
So my question is, how do you design a product that will have the best quality when played on such a wide spectrum of equipment? Is there some kind of statistical system requirement formula for reaching the greatest number of gamers? Or do you just go for the best game you can design, and hope people’s computers will catch up to it in time?
Note that this is uniquely a PC problem. Console games also benefit in that if a game works on one XBox, it works on all of them the same (basically).
So it's certainly a trick. Although we do try to keep things optimized as we go, we're generally more focused on getting the game working first, and then getting it working fast.
Most of our developer boxes are semi-high end for this reason. If the developer's build of the game starts slowing down on a computer, it's usually easier to upgrade the computer than to slow down development while we figure out how to optimize whatever's slowing things down.
Though some optimizations do occur as development goes along. If we toss ten NPCs into a scene, and everybody's machines slow down, that's something we need to figure out (especially if we know we're going to need more than ten NPCs in our scenes!).
That only talks around your question though. To answer it more directly:
Step #1: Get the game playable. Period.
Step #2: Figure out what configuration of machine, level, and graphics quality things start to slow down.
Step #3: Figure out what's causing the slowdown and fix those spots. For example, if 10 NPCs is slowing down a scene, is it slowing the scene down because there are too many polygons? Too many light sources and lighting calculations? Too many shadows? Transparency? These things can be fixed globally to improve the game on all systems (for example by creating NPC models with fewer polygons).
Step #4: Identify features that can be scaled based on the user's system specs. For example, maybe there are three levels of NPC models: high, medium, and low. And each level has a different polygon count. These features then go into Game Options for the user to adjust the graphics to the quality/speed balance they are willing to put up with.
Then we run the game on various systems to determine our recommend system specs (which can run the game with all options turned up and no slow down) and our minimum system specs. Large developers have QA departments to do this for them. A small-to-midsize developer like inXile can do some QA, but also benefits hugely from public alpha and beta testing. The more folks we have banging at the game, the better the final product will be.
Of course we aim for the lowest system specs we can, so that as many people as possible can play the game. But there's always a certain threshold at which the work required to optimize the game cannot be justified by the number of customers we gain with those optimizations.
On Torment, we benefit from using Obsidian's technology for Pillars of Eternity, which lets us create high quality backgrounds without requiring more power from the system. That doesn't mean everything can be at a higher quality (NPCs and light sources still require a fair amount of processing power), but it gives us a lot more leeway than if we were making the game entirely in 3D.
Sorry for the hugely long answer, but I'm glad you asked the question. Among other things, this is why we can never give a straight answer when people ask us what our target system specs are going to be. The answer is invariably, "As low as we can make them."
--------------------------------------
Got a question? Ask me anything.