Quality Game Settings Menu, a good looking UI ready for use

Hi, please read the latest manual for your version 1.5.2

V50EGM1.png

You now connect key and any key directly.
(A user was confused by the “make keyinput” so it was removed in 1.5.2)

You can always check the included blueprint “ExampleCharacterWithSettings” as a working reference.
QOa69d0.png

Thanks for your answer :

I’ve updated the Quality Game Settings to 1.5.2 in the Epic library and package it : it does what I want (open game in fullscreen with my screen resolution). So I will finally try to update your menu in my project.

Here is another minor feedbacks :

  • I don’t see the difference between fullscreen mode and windowed fullscreen mode (packaged project).
  • It would be interesting to add inputs for keyboard arrows.
  • I personally prefer the “Mouse” title instead of “Camera” : it may be clearer for the player (I changed it easily).
  • I saw that default View Distant Scale is now set to 1.

And still congrats for your option menu.

Back in the old days of gaming, a player usually preferred fullscreen to maximize performance over the operating system.
But if you were playing a game, and wanted to check another program, it took some time for game to minimize and operating system to resume working.
That’s why many people prefer to play in windowed mode, so they could quickly swap back and forth with alt+tab. You lost some performance, but gained flexibility.
But people said, no, the window titlebar is in the way, we still want to play in fullscreen.
And so was the fullscreen borderless born. A window, in fullscreen!

Today, there is hardly any performance difference between fullscreen and windowed fullscreen, but the option is still there for those who wants the extra few fps.
With fullscreen, you can also change desktop resolution, so the game has to render less pixels. (But thats almost the same as the resolution slider)
They both do the same, but with some minor differences.

You can remap arrow keys? Or did you mean to navigate menu with keyboard arrows/gamepad?
I have been working on menu gamepad navigation, but the solutions I have tried so far has not been good enough.
If I get it to work, I will add support for it.

I also liked Mouse, but when I thought about it, Camera is more correct since you now can remap any key/axis to move camera. And sensitivity settings applies to all of these inputs.
But you are free to rename it back to Mouse. :wink: I dont blame you.

Yes, this was the black screen fix I ended up for a small number of computers. For those computers, the game instantly started in black screen if the view distance scale was less the 1. (Since 0.75 was the old default)
That’s all I managed to find out. It still happens on those computers if they modify the slider. But the menu is still visible, even if the 3d world goes black, so you can recover from that state.
If anyone gets black screen when they change view distance slider, I would very much like to help you so I can find a proper solution.

Thanks !

I was talking about the keyboards arrows for moving the player in game. I can add it on my own.
I just think it would be better to add it on your menu.

It’s done now. It’s working (Editor+Packaged). There were no problems. Only one link was broken in the FirstPersonCharacter BP : the link between “Any Key” and “Any Key Press” (again it ! It was solved quickly).

Another little feedbacks :

  • I see the default settings are now set to “Epic” instead of “High”. Is there a particular reason for that ? Will this not decrease performances ?
    If I am correct, I can change this in the “GameSettings” BP ?

By default, character movement are mapped to either WASD or left joystick, since it is a very common setup.

If you would like a different system, and use Arrow Keys instead as default, you can change it in the data table InputActionList
pw1EcE4.png

lFAvF75.png

Currently, the menu only supports Primary key and Alternative key. If your game works better with arrow keys, go for it.

Those are the new default values for UserGameSettings.ini since I started to use it in 1.5.2
Some default values are now stored in a new file DefaultUserGameSettings.ini

This is the relevant settings. (List will change in a future update, see part 9.1 in manual for up to date info)
sg.ResolutionQuality
sg.AntiAliasingQuality
sg.ShadowQuality
sg.PostProcessQuality
sg.TextureQuality
sg.EffectsQuality
bUseVSync
ResolutionSizeX
ResolutionSizeY
FullscreenMode

(Other settings still use GameSettings BP defaults)

To create new defaults for these settings, make a new DefaultUserGameSettings.ini file in your projects Config file.
vjjv8FZ.png

Fill it out with this text, and change the relevant default values there.

[Spoiler]


[ScalabilityGroups]
sg.ResolutionQuality=100.000000
sg.ViewDistanceQuality=3
sg.AntiAliasingQuality=2
sg.ShadowQuality=2
sg.PostProcessQuality=2
sg.TextureQuality=2
sg.EffectsQuality=2
sg.FoliageQuality=2

[/Script/Engine.GameUserSettings]
bUseVSync=False
ResolutionSizeX=1920
ResolutionSizeY=1080
LastUserConfirmedResolutionSizeX=1920
LastUserConfirmedResolutionSizeY=1080
WindowPosX=-1
WindowPosY=-1
bUseDesktopResolutionForFullscreen=False
FullscreenMode=1
LastConfirmedFullscreenMode=1
PreferredFullscreenMode=1
Version=5
AudioQualityLevel=0
FrameRateLimit=0.000000
DesiredScreenWidth=1920
DesiredScreenHeight=1080
LastRecommendedScreenWidth=0.000000
LastRecommendedScreenHeight=0.000000

[/Spoiler]0 = Low
1 = Mid
2 = High
3 = Epic

It’s up to you to set the default values that fits with your game. Do you think you will target lower end computers, or high end computers.

You wont see the default settings from DefaultUserGameSettings.ini when you play in editor, but it will work when you package project.

Thank you. About the arrows, I would have liked to have the arrows (make moving) and the WASD available together. It’s a feature I see in unreal engine 3 and 4. It seems easier for PC beginners to use arrows. But if it’s not possible I will do without it.

About the settings, I edited the DefaultUserGameSettings.ini. I delete those lines in order to still have the screen resolution detection :
ResolutionSizeX=1920
ResolutionSizeY=1080
LastUserConfirmedResolutionSizeX=1920
LastUserConfirmedResolutionSizeY=1080

So this works in a packaged project.

Thanks for this information, this will help. I am going to push a final 1.5.3 patch with DefaultUserGameSettings to fix window mode, and fixed the “resave assets” on Play issue.

I have a solution now for the resave problem, it has taken me a good 4 days of finding one.

And here I had written a detailed post explaining my epic adventure in digging around and throwing science at the wall, but I lost most of it when I accidentally left the forum page.

Short version:
I think the editor gets in a loop with macro library and everything connected to it when it validates blueprints, then the assets wants to resave?! The blueprints logic itself does not have a loop so it does not affect packaged games.

I managed to break this loop by finding a single point of failure, where GameSettingsInterface refers to GameSettings. If i replace it with a new Object “GameSettingsWrapper” that only contains a variable GameSettings, it works. Since there is no more nodes in GameSettingsWrapper, the editor validation stops there, and thankfully it ignores the small GameSettings variable.

I have submitted a new patch solving most of the issues mentioned.

Quality Game Settings 1.5.3 (Unreal 4.11 and 4.12)

Thank you all for your feedback and support.
I think this takes care of any pressing issues in the 1.5 release. I’m going to do some other work and then I’m sorta eager to get back to adding features. Ideas and suggestions are welcome.
(Disclaimer: Your ideas may not be implemented, but could give me a direction of where I should continue next)

Edit: Update is out now

Hi . I’ve just finished integrating your settings system into my project. Unfortunately, when I run my game in Play in Editor (PIE), the vertical resolution always expands slowly to my maximum vertical resolution. This happens whether I select fullscreen, windowed or borderless mode. The horizontal resolution always remains at the setting I choose.

Any idea what might be causing this? The issue is caused at this node:

Capture.PNG

Also, changing modes to fullscreen doesn’t actually change to true fullscreen mode. I

Yes, I had noticed 4.12 behaved different in PIE mode. 4.11 worked fine, so something was lost in translation.
It’s not a problem when you packaged the game, so it’s only an annoyance when you work in editor, but until I find out what changed in 4.12, you can use a workaround.

Open up advanced settings in play menu
jOOPyBn.png

Note the resolution of your new window size. (Or set your own)

Set the settings menu resolution to be the same in window mode. Press OK to save, and close PIE.

Now you should be able to playtest your game in PIE without it toggling/flickering between different window sizes.
You can modify the other settings.

If you want to test how your game behaves in different resolutions, you can use standalone mode for that.
In standalone game you can also properly go into fullscreen mode.
LPUr9Qk.png

Thanks for the quick response! This works.

Hi I got this menu, but when I create it and add it to the window it doesnt show up and prints “SaveSettingsFile file was not found, create a new Game Settings file with default values” Im not sure what this is referring to or what I should.

Hi, thank you for buying my menu ^^
The settings menu is closed by default. You call “Open Menu” in blueprints to display it.

You can see tutorial video at 2 minutes and 20 seconds https://youtu.be/jtA3OyT81Ns?t=143.
Or you can read manual part 3.5 http://goo.gl/Ze4kCF

You can also check out the provided example character “ExampleCharacterWithMenu” in the blueprint folder.

If you have it all set up with the including action manager, the E key opens menu by default. This can be changed in “InputActionList”

The printed message is only a debug message, saying that no save file exists, (Since its a new project), so it creates a new one for you.

If you wonder about something, and you can not find an answer in the manual or the example project, you are free to ask me more questions.

Hello,

Thanks for the last patch. I see the quality settings are now set to High by default and I prefer that.

I tested it by exporting your QSM project (UE 4.12) and there is several problems :

  • The V-Synch works when the project is in fullscreen mode but doens’t work in Windowed or fullscreen windowed modes. I think there wasn’t this problem in 1.5.2.
  • Lightings need to be rebuilt (Main map)…
  • The video table shows by default “1400, 875, Custom Resolution, Windowed Fullscreen” but not my real screen resolution (but it renders my real resolution in game). In 1.5.2, there was not this problem.
  • The windowed mode works good most of the time but I could go back one time to a windowed mode fixed at the corner of the screen but I don’t remember how exactly. It was something like that : enable windowed mode in 1280*720 > enable V-Synch > enable fullscreen mode or windowed fullscreen mode (+ my res) > disable V-Synch. Once I pressed ALT + Enter to change the windowed mode. It seems related to the V-Synch problem.
  • The texture quality feature does not seem to work in your Tutorial map.

So I prefer actually stay with 1.5.2 before another patch.

It seems to work at my end in a packaged project, But I’ll do some further testing with it.

This was my mistake, I built it for the 4.11 patch and forgot to rebuild lightning for the 4.12 patch.
But in the next update I am going to disable lightmass on the example maps, this does not affect your own maps, but by removing it, I save over half the project size.
bVH7St3.png

Yes, there are some systems default resolutions that shows up on first start now since I fixed the window resolution bug. I can look into how I patch this in a good way.

I dont have support for the Alt+Enter shortcut, since I dont have a blueprint event I can check when resolution/size changes, but I can sit down and see if I can trigger it myself.

Texture quality only affects available texture memory. If all your texture fits inside the delegated memory, you don’t see a decrease in quality. But you should be able to check it out if you turn down texture quality and move to a image that was in the distance.
HJIdRAB.png

===
Thanks for telling me. We are at the smaller bugs now, but it would be nice to get rid of them.
I am currently working on the next release, I am not saying what features I am working on since its no guarantee I can make them all work, but it looks cool so far.

Thanks for your reply and for the texture quality explanation.

Yes, I’d like you patch it.

About the other problem, I have just found how to reproduce it :

  • Export the QSM project. Open it : it’s set to Windowed Fullscreen. It runs at 50 fps (when I look at the wall between two boards).
  • Press E > Set 1280x720 > Windowed > Apply > V-Synch : On > Apply > OK : V-Synch works in 60 fps.
  • Press E > Set your screen resolution > Fullscreen > Apply > Ok : V-Synch works but with an important frame drop. It runs at 30 fps.
  • Press E > Set your screen resolution > Windowed Fullscreen > Apply > OK : V-Synch doesn’t work. It runs at 50 fps.
  • Press E > Set 1280x720 > Windowed > Apply > OK : V-Synch works at 60 fps but the window is now fixed at the corner of the screen.
    So there is a new problem with this frame drop, it comes maybe from UE 4.12. I don’t know.

Thank you for telling me, I see now that if you go from windowed fullscreen to fullscreen and then to windowed, it is stuck in the corner of the screen.

If you start up the game, and toggles between Windowed <=> “Fullscreen Windowed”, or Windowed <=> “Fullscreen”, it is fine. Once you switch between “Fullscreen Windowed” <=> “Fullscreen”, the bug occurs when going back to windowed.
V-sync being on or off is not related to this problem.

This is not something I can solve in blueprints only, so we have to wait until epic has patched it.
https://issues.unrealengine.com/issue/UE-32842

I dont have much control over the V-sync behavior. The menu only tells the engine to enable it.
When it drops down to 50 or 30, it’s because it attempts to match your screens refresh rate, to avoid “tearing” when in transition between two frames.
It can be especially noticeable with horizontal movement.
jFupyLT.png

You can read more about how V-sync behaves here.
https://hardforum.com/threads/how-vsync-works-and-why-people-loathe-it.928593/

Hello, I have purchased this asset and have a question about its future development.
I notice you say that navigating the menu via game pad is not currently supported, is it a planned feature in the future? And if so is it in the near or far future?

Even without the feature the asset is well worth the price though, thanks!

Hi, I am currently working on menu navigation as a features, but I can’t make any promises if it will be near or far future.
I think I am at a state where I have found a cool looking way. The question is if I can make it well implemented, or if it add too much blueprint complexity, making it difficult to customize my menu.
I do have a fair share of new users asking me for help with UMG, and I am willing to support, but I wont add a system so difficult it will cause more confusion.

The menu navigation I am making now is made to be flexible (Within reasons), intended to extend beyond my menu and can be implemented in other systems. As of now, it is only a proof of concept.
I know others have had issues making UMG menu navigation systems, and I would like to make a solid one, if I can.

Disclaimer:
May or may not be a part of a future update.


So I cannot say if it will come in the the near or far future, but currently, I am giving it a shot.

By the way this problem is now solved and was linked to “Lightings need to be rebuilt”. I disabled lightmass and now V-Synch works normally with only a 2 frames drop.