If there's one thing that irks me about PC gamers (and by that, I mean the loud, vocal, whiny ones
), it's that they always seem to cry "B'aw! This is a crappy console port!" when they see requirements for a game being too low. But why is having too low of a performance requirement a bad thing?
I think part of it has to do with that we shift baselines as to what hardware can do over the years and we think hardware requirements should remain, more or less, relative to this baseline. However, this would imply that software is getting more complex and requires more horsepower to run it. But the thing is in my mind is while yes, software is getting quite complex, there comes a point where you have to make decisions on how complex you want it be and how practical it is to have those features. Because remember: the more complex your software is, the harder it is to test it.
But I can think of a number of reasons why say processor requirements have stagnated while GPU requirements keep continuing to rise (as an example, Dying Light requires a GPU from three generations ago, but a CPU from 8-9 generations ago).
- We've spent the last 20 years optimizing our algorithms and chances are, many problems can be solved with these algorithms. If it ran good enough on then hardware, then future hardware will only make it run better. Chances are as well, these algorithms are optimized to the point where you can't optimize them further, or further optimizations will yield practically no benefit.
- Game mechanics haven't changed much in the past 20 years or so. Especially regarding FPS games. While you could push for "better" AI, there becomes a point where it pretty much passes the Turing Test by itself (there was a case of an Epic games developer who was playing in a multiplayer match and complained about the "human players", not realizing he'd be playing with bots). So basically, we've reached a point of practicality where improving on what we already have doesn't make it appreciably better. It's like saying we could expand our color space to 64-bits, but why should we?
- It's easier to scale up than it is to scale down. If you make your components modular and flexible enough, you can simply add as much as you can desire. It's harder to go the other way.
- Ultimately: market share. Even if it wasn't for consoles, game developers are going to target lower end hardware anyway to maximize the amount of people who can play the game.
But the other ultimate point is practicality and relevance to the game design. For instance, STALKER's AI system simulates the world to make it feel more alive with actual goals for individual entities. But the game is a survival horror game. It makes sense for everyone else around you to be struggling just as much as you are. But say we put this in Assassin's Creed. There are no provisions for survival and struggle. The NPCs are there as set pieces to the setting. Now it might be cool if people were "living" in the world, so as to bring out the strategy and tactics of assassins, but would the game be any more fun?
And even if you could add more, does it make sense to keep doing it when most people can't even tell an appreciable difference? An example I can think of is with tessellation demos. I've noticed that in a lot of demos, the amount of detail that gets added due to tessellation stops being appreciable at 25% (This seems to be universal). I can see more details as I pull the slider down, but they're very subtle and they tend to kill my frame rate. And with AI, will people actually care how much "life" the entity has? GTA IV for example, has a pretty nifty AI system that gives NPCs schedules. Follow a random person, you can see them do actual things rather than wander aimlessly. But how much did you actually care about that?