Search Unity

  1. Good news ✨ We have more Unite Now videos available for you to watch on-demand! Come check them out and ask our experts any questions!
    Dismiss Notice

Display Resolution Dialog Deprecation

Discussion in 'Windows' started by abbapamela, Dec 13, 2019.

  1. abbapamela

    abbapamela

    Unity Technologies

    Joined:
    Oct 24, 2018
    Posts:
    11
    As was noted in our 2019.1 blog post, the Display Resolution Dialog, also known as Screen Selector, has been removed from Unity.

    Based on user data and customer research, we found out that it is one of the first things the vast majority of our developers disable when building their standalone players, and it frequently goes unused. We deprecated the dialog in 2019.1, and have completely removed the feature in 2019.3.

    The new Input System will work as the replacement for the input mappings, and all of the remaining functionality of the dialog is available via the Player Settings menu, scripting API, or Command Line Arguments for each option. Starting with 2019.3, when the default resolution is changed in the Player Settings, it will take precedence over the stored player preferences on the next run. If you have any questions, feel free to comment.
     
    Marcos-Elias and dog_funtom like this.
  2. markv12

    markv12

    Joined:
    Dec 31, 2013
    Posts:
    32
    It makes sense that it isn't worth maintaining the resolution dialogue when so few people use it.
    This has created one problem for me though.
    I'm working on a drawing app that's intended to run on screen tablets. People usually don't set their screen tablet as their main display so I've kept the resolution dialogue on to allow people to select their monitor before launching the game.
    The rest of the resolution dialogue I don't need as it can be easily replicated in-game.

    So I'm trying to figure out the proper way to set which monitor the app runs on. I'm aware of the command line option to set the monitor, but I need a dropdown to allow the user to select the monitor themselves. Is the only way to do this to write your own custom launcher? Is there a reasonable way to change the monitor from within the main application?

    As this is a drawing app I need to create an OSX as well as an Windows version.

    On Windows it's also possible to change the monitor by pressing windows key+shift+arrow (right or left)
    But I would rather not have to instruct my users to do this.
     
  3. abbapamela

    abbapamela

    Unity Technologies

    Joined:
    Oct 24, 2018
    Posts:
    11
    dog_funtom likes this.
  4. JimmyCushnie

    JimmyCushnie

    Joined:
    Jun 7, 2017
    Posts:
    133
    So if we want our users to be able to choose the display the game runs on, we're expected to code an entire custom launcher? That seems excessive to me. Why can't there be a Display.SetActiveDisplay(int displayIndex) function?
     
    yhosoda likes this.
  5. abbapamela

    abbapamela

    Unity Technologies

    Joined:
    Oct 24, 2018
    Posts:
    11
    You can use
    PlayerPrefs.SetInt("UnitySelectMonitor", 0);
    . This will require a restart of the player to take effect as it leverages the preferences. This should work as a stopgap solution until a proper API is in place for window position management. Hope that is helpful!
     
    Last edited: Feb 27, 2020
    JimmyCushnie likes this.
  6. abbapamela

    abbapamela

    Unity Technologies

    Joined:
    Oct 24, 2018
    Posts:
    11
  7. JimmyCushnie

    JimmyCushnie

    Joined:
    Jun 7, 2017
    Posts:
    133
    That is extremely helpful. Thank you very much!
     
    abbapamela likes this.
  8. JimmyCushnie

    JimmyCushnie

    Joined:
    Jun 7, 2017
    Posts:
    133
    @abbapamela are there other secret PlayerPrefs settings?
     
  9. XCVG

    XCVG

    Joined:
    Jun 28, 2017
    Posts:
    7
    @JimmyCushnie What I've gathered from my own experimentation (don't take this as definitive):

    Screenmanager Resolution Width

    Screenmanager Resolution Height

    Both fairly self explanatory.

    Screenmanager Fullscreen mode
    is fullscreen/windowed mode, using the same integer values as FullScreenMode (0 for fullscreen exclusive, 1 for borderless, 2 for maximized, 3 for a normal window).

    To the guys at Unity: This is inherently fragile, and I'd really like to see an API for setting these values directly or at least disabling the persistent behavior now that resolution setting is always our responsibility.
     
    JimmyCushnie likes this.
  10. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    7,690
    Agreed, the player pref is a stopgap solution. We are planning to investigate/add an API to move the window to different monitors.
     
    JimmyCushnie likes this.
  11. Marcos-Elias

    Marcos-Elias

    Joined:
    Nov 1, 2014
    Posts:
    115
    So... No way to continue using the old input system, letting the user to set up their controls there?

    IMHO this was a really bad, bad decision. Since there is no ready to use replacement for all that features yet. Migrating to the new input system was not on my plans right now, due to all user interfaces that must to be created =/

    I was using 2019.3 for mobile where I found better overall performance than 2018.x... But for desktops migration would take a longer time, so let's stay with 2018.x for a while. :(
     
    JimmyCushnie likes this.
  12. JimmyCushnie

    JimmyCushnie

    Joined:
    Jun 7, 2017
    Posts:
    133
    I agree, I think it is a big regression to remove the old launcher without adding a new launcher. Unless the developers of a game spend many hours coding custom UI, that game will now be far far less user friendly than it was before. In particular I think game jams are going to suffer a lot from this change.
     
    sadzanenyama and Marcos-Elias like this.
  13. FreedTerror

    FreedTerror

    Joined:
    May 19, 2017
    Posts:
    13
    Hi there i'm trying to use the scripts from the screen selector project and I keep getting this error while trying to build it.
    is there a certain way to use the scripts without causing this error?
     
    abbapamela likes this.
  14. abbapamela

    abbapamela

    Unity Technologies

    Joined:
    Oct 24, 2018
    Posts:
    11
    The file that it is looking for is the executable built from the project.
    https://github.com/Unity-Technologi...SelectorExampleProject/LauncherExecutable/x86

    My guess is that maybe your anti-virus software is removing the file as it is an executable, or something along those lines. If you would like to build the file yourself, all the code to do so is there. (https://github.com/Unity-Technologies/DesktopSamples/tree/master/ScreenSelectorExample/WindowsPlayer)
    The Visual Studio solution file is there, and you should be able to build the executable (in this case x86) and place the file in the directory that it is looking for the executable.

    Let me know if that is not helpful. :)
     
    FreedTerror and JimmyCushnie like this.
  15. FreedTerror

    FreedTerror

    Joined:
    May 19, 2017
    Posts:
    13
    I was able to figure it out I just built my project like normal then replaced and renamed the executable with the correct one from the screen selector LauncherExecutable folder. Still sad to see the display resolution dialog option removed, but at least we have this. Thanks :)
     
  16. Brady

    Brady

    Joined:
    Sep 25, 2008
    Posts:
    2,385
    If you're going to start removing things people rely on, it might be nice to provide a thorough explanation of the best practices to replace that functionality. For example, from my searching around, it is unclear how to write new quality settings such that they'll be automatically picked up by the player when it is run. From my testing, QualitySettings.SetQualityLevel() seems to do it, but the documentation isn't clear that this sets a persistent setting rather than just changing the settings for that run. And the only way to learn this for yourself through testing is by building a stand-alone player, since from what I've experienced, the editor doesn't obey persistent quality settings as it uses the currently selected quality in the editor settings.
     
  17. Codexus

    Codexus

    Joined:
    Dec 19, 2009
    Posts:
    5
    Very annoying I was counting on that for my Ludum Dare entry. The display resolution dialog was not the most elegant thing in the world for a finished game but when sharing a game jam prototype: it's perfect!
     
    Ferazel likes this.
  18. JimmyCushnie

    JimmyCushnie

    Joined:
    Jun 7, 2017
    Posts:
    133
    "User data and customer research" be damned, this is a big step back. I really hope Unity re-adds the old launcher, or even better, makes a new launcher.
     
    Jingle-Fett likes this.
  19. Stormbreaker

    Stormbreaker

    Joined:
    Aug 15, 2012
    Posts:
    161
    Agreed, came back to Unity after a 4 year break to find not only has so little progressed in terms of features, but useful stuff has actually been removed. I only came across this thread because I couldn't find the damn setting to turn this on to quickly prototype a project only to find out the whole thing is gone with no replacement o_O
     
    Jingle-Fett and JimmyCushnie like this.
  20. tconkling

    tconkling

    Joined:
    Jul 13, 2012
    Posts:
    7
    Ugh, I hate to pile on, but: it's really upsetting this feature was removed because "we found out that it is one of the first things the vast majority of our developers disable when building their standalone players".

    This is almost certainly true *when a game is released commercially* - but certainly not during prototyping, game jams, etc.

    The resolution dialog is (was?) a useful development tool. Removing it entirely because you shouldn't _ship a game with it_ is like removing the default GUI skin and requiring everyone to design their own from day 1. You should have custom GUI art when you ship - but it's entirely appropriate to put off till late in development!

    (I'm particularly salty about this because we have an internal prototype build to ship to a publisher, and I didn't realize this feature was removed. The publisher *does not care*, at this early early stage of development, whether we've made a nice looking settings screen. But: *we do care* that they're able to select the right resolution and quality settings for their machine, so that the game runs smoothly and looks nice.)
     
    Jingle-Fett, Tzan, Ferazel and 4 others like this.
  21. Brady

    Brady

    Joined:
    Sep 25, 2008
    Posts:
    2,385
    I have to echo what @tconkling said. One of the chief advantages and attractive aspects of Unity, particularly for indie devs, is the ease of prototyping. And that doesn't just mean in-editor, but being able to make a fully-functional built player without having to do all the boilerplate stuff yourself. Yes, we will all eventually do the boilerplate stuff further down the production pipeline, but that doesn't mean it isn't HUGELY valuable to have adequate placeholders ready for use in the early phases. A lot of game concepts never even make it into full production, but the ability to rapidly iterate on them, make them fail, and discard them so we can move on to the next concept, is critically important. Raising the level of difficulty and effort required to get that early out-of-the-box functionality lowers the value proposition of the engine itself.
     
  22. Ferazel

    Ferazel

    Joined:
    Apr 18, 2010
    Posts:
    443
    I agree that this window was very useful for prototype, game jam, and just test build situations. The dialog certainly wasn't professional but it worked. However, when getting the game up and running in a prototype fashion it was perfect until a fully fleshed out options screen could be made.

    I'm not too concerned with the loss of the quality/input mapper, but the resolution/monitor picking is sorely missing and there isn't a multi-platform runtime API yet to query/pick a monitor such that we can't provide that functionality in the game options screen even if we wanted to? Command line arguments and player prefs are not a solution for end users when distributing builds. Bad Unity, BAD!
     
    Last edited: May 18, 2020
  23. Murgilod

    Murgilod

    Joined:
    Nov 12, 2013
    Posts:
    7,163
    I am genuinely amazed to see that Unity Technologies went through with this without a simple and elegant replacement. Who was involved in the decision making progress and why didn't anyone go "okay, but we should have a way to pick the resolution, window mode, and display in place before deprecating this?"

    It's a genuine headscratcher as to why anyone would do this and go "just make a custom launcher or use these command line args."
     
  24. JimmyCushnie

    JimmyCushnie

    Joined:
    Jun 7, 2017
    Posts:
    133
    My biggest problem with Unity is that they're out of touch with what actual developers need and want. This is a perfect example.
     
    Jingle-Fett and zenasprime like this.
  25. SteffenItterheim

    SteffenItterheim

    Joined:
    Apr 10, 2014
    Posts:
    96
  26. JimmyCushnie

    JimmyCushnie

    Joined:
    Jun 7, 2017
    Posts:
    133
    Thank you very much for making this. Obviously it's not a full replacement, but it's a heck of a lot better than nothing.
     
  27. veddycent

    veddycent

    Joined:
    Jul 22, 2013
    Posts:
    84
    This is a reckless move!

    If you're going to re-place a tool with another you replace it when the new version is ready.

    I hope Unity do the right thing and bring it back!
     
    Jingle-Fett likes this.
  28. Jingle-Fett

    Jingle-Fett

    Joined:
    Oct 18, 2009
    Posts:
    565
    This is bullshit. I regularly use that feature because I often make new empty projects so I can experiment and code a particular feature in complete isolation and when I make a test build I've often NOT implemented a UI for doing resolution, input rebinding, etc.
    Even in actual game, like my own BHB: BioHazard Bot on steam, I kept that feature hidden but still enabled so that if player holds shift or alt it shows up. The reason for this is that if the player sets the graphics/resolution higher than what their system can handle in the game's settings menu by mistake, they have an option for changing the settings outside of the game. This was useful when I was testing the game on lower end machines and wasn't sure how it would run.

    Bring this feature back you idiots or provide an alternative. Seriously, what the hell are you guys smoking?

    EDIT: Also, if this is the 2019.1 blog post you're talking about, it said nothing about the feature being removed, only that it would be disabled by default.
     
    Last edited: Jun 13, 2020
    Lars-Steenhoff likes this.
  29. ShilohGames

    ShilohGames

    Joined:
    Mar 24, 2014
    Posts:
    2,838
    To be fair, I have never been a fan of the old resolution selector. I never thought it felt production ready for commercial use, and I usually disabled it immediately and replaced it with my own menus in game. But I definitely do see the point about game jams and quick prototypes, though.
     
  30. JimmyCushnie

    JimmyCushnie

    Joined:
    Jun 7, 2017
    Posts:
    133
    I imagine that a supermajority of projects made in Unity are game jams and quick prototypes.
     
    bob_the_pr_bot likes this.
  31. SteffenItterheim

    SteffenItterheim

    Joined:
    Apr 10, 2014
    Posts:
    96
    Not to mention projects explicitly not made for public distribution, in our case that would be trade fairs and company internal apps for marketing / demonstration purposes that need to run both on the big screen on high-end computers with dedicated graphics but also on low-end business notebooks with integrated graphics - and to support that the resolution dialog was just ... available at no additional development cost. It did its job just fine being able to choose the two main balancing factors when it comes to pick either quality or performance: setting resolution and quality level and that's it.
     
  32. Rarykos

    Rarykos

    Joined:
    Sep 12, 2017
    Posts:
    1
    Make Display Resolution Dialog optional. As it was.
    Just another expense and a slowdown for business developers.
    It feels bad when Unity decides to waste our money & time.
    Remove the optional dialog only when you have a replacement ready. I see there are problems with your current replacement in the command line. This is just very unprofessional.
     
    Jingle-Fett likes this.
  33. ezmicken

    ezmicken

    Joined:
    Jun 14, 2020
    Posts:
    2
    What a blunder!
    Today I upgraded my project from 2018 LTS to 2019 LTS and found the feature i use every day is gone.
    The point of deprecation is to discourage use of one method in favor of another.
    The feature is now completely gone and it's "replacement" is not ready and far more difficult to use.
    If this is the way Unity moves now I worry about it's future.
     
    Lars-Steenhoff and Jingle-Fett like this.
  34. Politician

    Politician

    Joined:
    Apr 27, 2019
    Posts:
    8
    What would you deprecate next? Legacy animations, skyboxes maybe? Don't support it. Leave it as a freaking option, no one's harmed because of it.
     
    Lars-Steenhoff likes this.
  35. yuki2006

    yuki2006

    Joined:
    Oct 11, 2018
    Posts:
    5
    I have a question is why these are used.
    (I have to change and delete the registry)

    It will cause troubles, so I would like you to give priority to the item of Unity project setting.

    ・Screenmanager Resolution Width
    ・Screenmanager Resolution Height
    ・Screenmanager Fullscreen mode
     
  36. grrava

    grrava

    Joined:
    Nov 11, 2012
    Posts:
    20
    Question: I last started a build of my game with some debug sized window for testing. Since then I updated to 2019.4 and since I have no dialog anymore, how do I change back to fullscreen? My game keeps starting with the settings I once set?
     
  37. ULTRAWEN

    ULTRAWEN

    Joined:
    Feb 8, 2016
    Posts:
    2
    This is very bad. It's good when there was a choice whether to launch a dialog box or not. I am already tired of constant changes. You install a new version and instead of working, you're looking for solutions to make things work that used to work.
     
  38. Antan

    Antan

    Joined:
    Jun 22, 2017
    Posts:
    4
    This is horrible. As stated before, I currently have 10 projects that I revisit, to test assets and experimenting. And I help friends with their games.

    A huge thanks to Steffen Itterheim! A package makes it a lot easier than the github repo. Still. Not looking forward to installing the package 10 times a year.

    A reasonable approach for "the vast majority of our developers disable when building their standalone players" would have been to disable it. Not to remove it completely.
     
  39. Austin-Jacob

    Austin-Jacob

    Joined:
    Mar 15, 2016
    Posts:
    5
    I swear who ever is in charge rarely uses smart thinking, if at all.

    Unity is driving itself into the ground by constantly removing aspects that many users rely on for prototyping. Yes, we can just make our own, but for networking and other uses that little box was a must.

    Unity is destroying itself in a feeble attempt to become unreal engine 2.0 instead of focusing on the main reason people started using Unity in the first place.
    (Don't even get me started on D.O.T.S, the new networking solution that *cough* never came out *cough*, or what ever the hell is going on with the different graphic pipelines.)
     
    Jingle-Fett likes this.
unityunity