Mac OSX Incorrect resolution settings (GameUserSettings.ini) in 4.9

In moving from 4.7 to 4.9 (we skipped 4.8) a large number of our Mac users are getting our game booting up in a resolution unsupported by their display. The result is that the image gets cut off and nothing is clickable. Hence the game is unplayable.

Looking into it, I tracked it down to some incorrect resolution settings in the GameUserSettings.ini. Now these are RETURNING users, so their GameUserSettings.ini file already existed, and presumably already contained these incorrect resolutions. BUT for some reason the game booted up fine in 4.7, but now breaks in 4.9.

We have one work-around for now: we instruct our users to delete their GameUserSettings.ini file, which causes a default (windowed) configuration on startup. This is, however, really inconvenient, since OSX tries everything it can to hide the existence of the ~/Library folder from the user, and besides, asking a casual user to hunt for a random file is poor form.

A slightly better (but still bad) workaround would be for me to increment the UE_GAMEUSERSETTINGS_VERSION constant (in GameUserSettings.cpp), effectively invalidating all existing GameUserSettings.ini files out there in the wild. This is not a great solution because this would mean an engine change, which we would have to maintain.

So three major questions:

  • What happened that caused these resolution settings to stop working?
  • Why are resolutions settings found in the GameUserSettings.ini not validated against the display’s actual abilities?
  • What is the correct way to fix all of this?

Thanks!