Advertisement

Choose video game resolutions for graphics settings (ie. provide choices for the user) ?

Started by June 30, 2022 03:55 PM
1 comment, last by NightCreature83 2 years, 4 months ago

Hi there! I'm building some game engine tech, and trying to understand how games would typically implement the place in the graphics settings where the user may choose between different game resolutions.

For the code I'm using GLFW, which has a really handy function `glfwGetVideoModes` (https://www.glfw.org/docs/latest/group__monitor.html#gad2e24d2843cb7d6c26202cddd530fc1b),​ which returns an array of video modes supported by a monitor. For a quick overview, this is the information that I get for my own monitor:

PRIMARY Video mode: width=1920, height=1080, redBits=8, greenBits=8, blueBits=8, refreshRate=60
Video mode 0: width=640, height=480, redBits=8, greenBits=8, blueBits=8, refreshRate=60
Video mode 1: width=640, height=480, redBits=8, greenBits=8, blueBits=8, refreshRate=73
Video mode 2: width=640, height=480, redBits=8, greenBits=8, blueBits=8, refreshRate=75
Video mode 3: width=720, height=480, redBits=8, greenBits=8, blueBits=8, refreshRate=60
Video mode 4: width=720, height=576, redBits=8, greenBits=8, blueBits=8, refreshRate=50
Video mode 5: width=800, height=600, redBits=8, greenBits=8, blueBits=8, refreshRate=56
Video mode 6: width=800, height=600, redBits=8, greenBits=8, blueBits=8, refreshRate=60
Video mode 7: width=800, height=600, redBits=8, greenBits=8, blueBits=8, refreshRate=72
Video mode 8: width=800, height=600, redBits=8, greenBits=8, blueBits=8, refreshRate=75
Video mode 9: width=1440, height=480, redBits=8, greenBits=8, blueBits=8, refreshRate=60
Video mode 10: width=1024, height=768, redBits=8, greenBits=8, blueBits=8, refreshRate=60
Video mode 11: width=1024, height=768, redBits=8, greenBits=8, blueBits=8, refreshRate=70
Video mode 12: width=1024, height=768, redBits=8, greenBits=8, blueBits=8, refreshRate=75
Video mode 13: width=1440, height=576, redBits=8, greenBits=8, blueBits=8, refreshRate=50
Video mode 14: width=1280, height=720, redBits=8, greenBits=8, blueBits=8, refreshRate=50
Video mode 15: width=1280, height=720, redBits=8, greenBits=8, blueBits=8, refreshRate=60
Video mode 16: width=1152, height=864, redBits=8, greenBits=8, blueBits=8, refreshRate=75
Video mode 17: width=1280, height=960, redBits=8, greenBits=8, blueBits=8, refreshRate=60
Video mode 18: width=1440, height=900, redBits=8, greenBits=8, blueBits=8, refreshRate=60
Video mode 19: width=1280, height=1024, redBits=8, greenBits=8, blueBits=8, refreshRate=60
Video mode 20: width=1280, height=1024, redBits=8, greenBits=8, blueBits=8, refreshRate=75
Video mode 21: width=1680, height=1050, redBits=8, greenBits=8, blueBits=8, refreshRate=60
Video mode 22: width=1920, height=1080, redBits=8, greenBits=8, blueBits=8, refreshRate=50
Video mode 23: width=1920, height=1080, redBits=8, greenBits=8, blueBits=8, refreshRate=60

I note that not all these video modes have the same aspect ratio, which I find a bit weird but whatever. Some of them even have 75Hz refresh rate, but they are not of the desired aspect ratio (which is 16x9).

Let's say that, for artistic reasons, a game should have to be published and presented strictly in 16x9 aspect ratio. Would it then make sense to only pick the modes shown above, that actually have that aspect ratio, and then only present those in graphics settings? And what if none of the supported video modes have that aspect ratio?

I assume that we can create a fullscreen framebuffer of any resolution that we like, and then “fit” that onto the display by either duplicating or skipping rendered pixels. Is this assumption right?

How do people usually solve this problem? I'm looking for a way to figure out a list of resolutions to show to the user in graphics settings, and also a good strategy for picking a default one.

Many thanks! ?

I think most games querry what the GPU and connected displays are capable off.

Doom for example just has a separate switch for aspect ratios in the list and then sorts the supported resolutions based of of that. Other games just list all of them and let the user decide.

Most games nowadays just choice 1080p as a safe setting for resolution and use medium settings, this is usually just seen as the recommanded system specification which you find during testing of the game.

Worked on titles: CMR:DiRT2, DiRT 3, DiRT: Showdown, GRID 2, theHunter, theHunter: Primal, Mad Max, Watch Dogs: Legion

This topic is closed to new replies.

Advertisement