Skip to main content

The features PC gamers want—an open letter to developers and gamers

User Experience & Implementation Hints

Going ahead and implementing everything suggested above will result in a huge variety of options, so there needs to be a method for handling these which maintains a good experience both for casual users and for enthusiasts. The best method for achieving this is offering a hierarchy of options, which maps to the categorization used above:

  1. Before any actual options, provide sane default settings based on the users’ hardware. This generally includes at least native resolution and conservative (as in, rather too low than too high) graphics settings.
  2. The main menu of the game should offer easy access to at least the essential features outlined above: resolution, refresh rate, input mapping—as well as windowed/fullscreen settings (and ideally borderless fullscreen windowed mode).
  3. More in-depth graphical options, on the level of “Shadows—High” etc. can be grouped together in an advanced settings menu. It’s also advantageous to provide overall profiles for these, e.g. “Low,” “Medium,” and “High.”
  4. Finally, it’s not an issue to put enthusiast-level features in less accessible places, such as configuration files or an in-game console. The important part is to make them available somewhere. Those who are sufficiently interested will find them.

A very important topic for all of these is documentation. Every option should have a tooltip or status text which clearly describes what each of its settings does. Have someone with adequate technical knowledge go over these descriptions, so that they actually match what is happening.

Durante - Ac4 Widescreen

The Assassin’s Creed series offers more PC-exclusive effect options than most ports—which should be acknowledged and supported—but their performance impact should be better documented. (Screenshot source: jim2point0 at NeoGAF)

Performance

Performance and its relation to settings also closely relates to the user experience and to how game options are presented. It’s also where I believe that some PC gamers really need to change their thinking.

The problem is that, due primarily to the length of the previous console generation, many new PC gamers are now operating under the assumption that they should be able to “max out” all settings in every game and still achieve good performance—otherwise a lack of optimization is to blame. This is, of course, a counterproductive stance, as it actively discourages the inclusion of high-end features. For example, a game which limits its “max” shadow settings to 2048x2048 shadow maps will be seen as more optimized than one which goes up to 4096x4096 or even 8192x8192. Despite being completely wrong, this thinking still needs to be dealt with in some way.

The most obvious choices are to either hide the highest settings in configuration files, or alternatively be very careful when choosing the wording for such options. For example, have a setting beyond “Ultra” called “Future.” It makes no functional difference, but it can make a large psychological one. Furthermore, the expected performance impact of each option should be noted clearly in its description.

Conclusion

PC games thrive on options, because they need to fit a wider variety of usage scenarios—in terms of input and output devices, hardware capabilities and desired level of technical involvement on part of the player—than on any other platform. This is what makes the PC great. Providing most of these options isn’t too much work, and PC developers should take them into account from the beginning—but gamers also need to realize that some options, like variable framerates, will be difficult to implement in ports of console games.

I hope that this article helps some PC developers recognize, early in development, what they should keep in mind and gives some useful hints on how to present these options. On the other hand, if you are a gamer, you should also now have a slightly better idea of how much work goes into each of them, and what the roadblocks may be, especially in the case of late ports.