Main menu overhaul and scaling feature needed
Main menu overhaul and scaling feature needed
I love Minetest in that it's open and moddable, but the main menu organization, presentation, and looks sorely need an overhaul. It also needs a menu scaling option for higher resolution monitors.
I read around in the forums and read similar complaints as well as the idea of having the main menu be moddable, but the default menu needs an overhaul regardless.
There are issues with organization, too, such as handling updates to mods. Right now you have to go to the online content searching section and search for mods you already have installed just to see if there is an update available for them. Instead there should be an updates section, a "check for updates" button, or in the mods "content" section at least something showing the current version and a way to check for updates there. I know that mod updates and browsing mods from the main menu is new, but updates and version info really needs to be worked into it better.
Prettying up the menu could really help bring more players and developers in! Thanks for reading! ^n.n^
I read around in the forums and read similar complaints as well as the idea of having the main menu be moddable, but the default menu needs an overhaul regardless.
There are issues with organization, too, such as handling updates to mods. Right now you have to go to the online content searching section and search for mods you already have installed just to see if there is an update available for them. Instead there should be an updates section, a "check for updates" button, or in the mods "content" section at least something showing the current version and a way to check for updates there. I know that mod updates and browsing mods from the main menu is new, but updates and version info really needs to be worked into it better.
Prettying up the menu could really help bring more players and developers in! Thanks for reading! ^n.n^
-
- Member
- Posts: 348
- Joined: Tue Apr 14, 2020 16:03
- GitHub: cuthbert
Re: Main menu overhaul and scaling feature needed
you are not on the latest version 5.4
now auto updates is a feature . also auto depends .
only issue now is you can not see what you are updating and have to browse as before to check .
get yourself updated and have a looksee
now auto updates is a feature . also auto depends .
only issue now is you can not see what you are updating and have to browse as before to check .
get yourself updated and have a looksee
Project BrutalTest...hide your Petz
Re: Main menu overhaul and scaling feature needed
I am actually, 5.4.0, and I don't see any option anywhere for auto updates. I didn't know updates were available until I went to "Browse online content" and noticed the update button next to mods I already had installed.cuthbertdoublebarrel wrote: ↑Sun Apr 04, 2021 14:40you are not on the latest version 5.4
now auto updates is a feature . also auto depends .
only issue now is you can not see what you are updating and have to browse as before to check .
get yourself updated and have a looksee
So yeah, it'd still be great if perhaps the "Content" section had a "Versions" column next to the mod name column, and next to that perhaps an "Available" column to show that an updated version was available (and perhaps a "Check for Updates" button).
Thanks for the reply! ^n.n^
- rubenwardy
- Moderator
- Posts: 6978
- Joined: Tue Jun 12, 2012 18:11
- GitHub: rubenwardy
- IRC: rubenwardy
- In-game: rubenwardy
- Location: Bristol, United Kingdom
- Contact:
Re: Main menu overhaul and scaling feature needed
You can click the button in the top right to update all content:
Installed content also always appears first.
The content tab doesn't show updates currently because it doesn't know about them - it's only when you open the online content dialog that it loads the data from the server. Showing updates in the content tab is on my plans
Installed content also always appears first.
The content tab doesn't show updates currently because it doesn't know about them - it's only when you open the online content dialog that it loads the data from the server. Showing updates in the content tab is on my plans
Re: Main menu overhaul and scaling feature needed
Oh neat! I completely missed that, sorry. I probably didn't notice because of the issue with a lack of scaling in the menu making the text tiny and hard for me to read. This is how it looks for me on a 4K desktop to give you an idea:rubenwardy wrote: ↑Sun Apr 04, 2021 15:16You can click the button in the top right to update all content:
Installed content also always appears first.
The content tab doesn't show updates currently because it doesn't know about them - it's only when you open the online content dialog that it loads the data from the server. Showing updates in the content tab is on my plans
It's good to keep the online requests minimized until a user wants that for privacy reasons among others, and it just being unnecessary load on the servers. I think not triggering a check for updates until the Content tab is clicked is good in that regard.
However, I agree with your future plans and think it'd be more logical and would improve the menu if content updating was moved into the content/mod list with perhaps a "check for updates" button (perhaps next to an auto-check-on-startup checkbox?) in order for the user to connect to the content server when they choose to. I think having the content update stuff being mixed into the "Browse online content" section is confusing, and you hinted at that yourself when you explained that a user's installed content is at the top of that section. That way, users go to that section only when they want new content, and of course that stuff will always be the newest version, while they can stay on the Content tab page for managing existing installed versions as well as updating those versions. That makes more sense to me.
But yeah, as you can see, a high-DPI or menu scaling option is needed for anyone playing Minetest on a TV which are pretty much all 4K now days, or for stupids like me who bought a 4K monitor. X3
-
- Member
- Posts: 348
- Joined: Tue Apr 14, 2020 16:03
- GitHub: cuthbert
Re: Main menu overhaul and scaling feature needed
go to all settings and increase the font size
Project BrutalTest...hide your Petz
Re: Main menu overhaul and scaling feature needed
That definitely helps, thanks! It's a little bit ugly until proper scaling is implemented for resizing everything, not just the text, but it's definitely lots better! ^n.n^
-
- Member
- Posts: 348
- Joined: Tue Apr 14, 2020 16:03
- GitHub: cuthbert
Re: Main menu overhaul and scaling feature needed
all settings ,graphics, menu, gui scaling . have a fiddle with those settings enlarge the hudbar etc .Swiftpaw wrote: ↑Sun Apr 04, 2021 19:05That definitely helps, thanks! It's a little bit ugly until proper scaling is implemented for resizing everything, not just the text, but it's definitely lots better! ^n.n^
Project BrutalTest...hide your Petz
-
- Moderator
- Posts: 4095
- Joined: Wed Aug 24, 2011 09:44
- GitHub: sfan5
- IRC: sfan5
- Location: Germany
Re: Main menu overhaul and scaling feature needed
Minetest does automatically scale the menu and font size (at least under Linux and Windows), in fact we often have the problem that fonts are too big.
So we can eventually fix this it'd be helpful if you described the environment you are running Minetest under in detail.
So we can eventually fix this it'd be helpful if you described the environment you are running Minetest under in detail.
Re: Main menu overhaul and scaling feature needed
Oh neat, I didn't realize those were also there. Tying them all together in a master GUI scaler might be all there is to it then for the most part?cuthbertdoublebarrel wrote: ↑Sun Apr 04, 2021 19:54all settings ,graphics, menu, gui scaling . have a fiddle with those settings enlarge the hudbar etc .
Oh, it already exists? Neat! :D (not that a single manual GUI scaling setting wouldn't still be useful)sfan5 wrote: ↑Sun Apr 04, 2021 20:10Minetest does automatically scale the menu and font size (at least under Linux and Windows), in fact we often have the problem that fonts are too big.
So we can eventually fix this it'd be helpful if you described the environment you are running Minetest under in detail.
Maybe it's just my desktop or distro then which is breaking whatever Minetest is using for resolution detection? I'm just using Linux Mint which is Ubuntu-based with Cinnamon rather than Gnome.
Or perhaps windowed mode is preventing that auto-detection, if there is a full screen mode that works better?
Or perhaps flatpak is causing it since this is the flatpak version.
Here's some additional information but please let me know if there is anything else you'd like to identify. Thanks for the help!
Code: Select all
Name Application ID Version Branch Installation
Minetest net.minetest.Minetest 5.4.0 stable system
Graphics: Device-1: NVIDIA GP104 [GeForce GTX 1070] driver: nvidia v: 450.102.04
Display: x11 server: X.Org 1.20.9 driver: nvidia unloaded: fbdev,modesetting,nouveau,vesa
resolution: 3840x2160~60Hz
OpenGL: renderer: GeForce GTX 1070/PCIe/SSE2 v: 4.6.0 NVIDIA 450.102.04
-
- Member
- Posts: 348
- Joined: Tue Apr 14, 2020 16:03
- GitHub: cuthbert
Re: Main menu overhaul and scaling feature needed
yeah stick it in fullscreen, option on the main settings page.
i am using fhd 1920 - 1080 gforce gtx 970m
the 1920 registers but have to add the 1080 manually otherwise i get a strip along the bottom.
Project BrutalTest...hide your Petz
-
- Moderator
- Posts: 4095
- Joined: Wed Aug 24, 2011 09:44
- GitHub: sfan5
- IRC: sfan5
- Location: Germany
Re: Main menu overhaul and scaling feature needed
Nah that doesn't make a difference. Also the fullscreen mode has some other issues, I don't recommend using it.
If Flatpak somehow sandboxes X11 access, this could be possible. But DPI detection is such an obvious thing which I doubt they missed.
Thanks for the information so far anyway.
Re: Main menu overhaul and scaling feature needed
I can't figure out how to do any of that besides setting it to fullscreen in the "All Settings" section (I didn't see it in the main settings page on version 5.4.0) which then only changes it when I restart Minetest, and if I don't have remember resolution checked or don't maximize the fairly small default-sized window before exiting, it'll throw me into fullscreen mode at a tiny resolution (which changes the resolution of my desktop as I guess it should, but then doesn't restore it when I exit Minetest which is super annoying). Even if I do maximize the window so that the game is running in fullscreen mode at a high resolution, the text remains tiny i.e. it doesn't change the menu scaling at all. No matter what I've tried so far, menu scaling hasn't changed automatically for me.cuthbertdoublebarrel wrote: ↑Mon Apr 05, 2021 10:23yeah stick it in fullscreen, option on the main settings page.
i am using fhd 1920 - 1080 gforce gtx 970m
the 1920 registers but have to add the 1080 manually otherwise i get a strip along the bottom.
Yeah, that was my experience so far as well with full screen. Nothing I've tried so far has auto-adjusted menu scaling for me.sfan5 wrote: ↑Mon Apr 05, 2021 12:57Nah that doesn't make a difference. Also the fullscreen mode has some other issues, I don't recommend using it.If Flatpak somehow sandboxes X11 access, this could be possible. But DPI detection is such an obvious thing which I doubt they missed.
Thanks for the information so far anyway.
I could try building Minetest from source since there are no other easily distributable binaries besides the flatpak one, but I'm having a hard time figuring out how to tell cmake where the IrrlichtMt version 1.9 libraries are to compile with. I noticed that you made a note saying there is now a need to update the compilation instructions to include Irrlicht, hehe. ^n.n^
I tried defining both of these variables in my shell before running cmake, but that didn't work.
IRRLICHT_INCLUDE_DIR - Directory that contains IrrCompileConfig.h
IRRLICHT_LIBRARY - Path to libIrrlichtMt.a/libIrrlichtMt.so/libIrrlichtMt.dll.a/IrrlichtMt.lib
Code: Select all
swiftpaw@wolfden:~/Games-installed/minetest$ ls -lh
total 28K
-rw-rw-r-- 1 swiftpaw swiftpaw 15K Apr 5 15:19 CMakeCache.txt
drwxrwxr-x 4 swiftpaw swiftpaw 4.0K Apr 5 15:19 CMakeFiles
drwxrwxr-x 16 swiftpaw swiftpaw 4.0K Apr 5 15:18 irrlicht
drwxrwxr-x 19 swiftpaw swiftpaw 4.0K Apr 5 15:17 minetest
swiftpaw@mycomp:~/Games-installed/minetest$ cmake minetest/ -DRUN_IN_PLACE=TRUE
-- The C compiler identification is GNU 9.3.0
-- The CXX compiler identification is GNU 9.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- *** Will build version 5.5.0-dev ***
-- Could NOT find Irrlicht (missing: IRRLICHT_LIBRARY IRRLICHT_INCLUDE_DIR)
CMake Error at CMakeLists.txt:63 (message):
Irrlicht is required to build the client, but it was not found.
-- Configuring incomplete, errors occurred!
See also "/home/swiftpaw/Games-installed/minetest/CMakeFiles/CMakeOutput.log".
swiftpaw@mycomp:~/Games-installed/minetest$ find irrlicht/ -iname '*IrrlichtMt*'
irrlicht/source/Irrlicht/CMakeFiles/IrrlichtMt.dir
irrlicht/lib/Linux/libIrrlichtMt.so.1.9.0
irrlicht/lib/Linux/libIrrlichtMt.so.1.9
irrlicht/lib/Linux/libIrrlichtMt.so
swiftpaw@mycomp:~/Games-installed/minetest$ IRRLICHT_LIBRARY=irrlicht/lib/Linux/
swiftpaw@mycomp:~/Games-installed/minetest$ find irrlicht/ -iname '*IrrCompileConfig*'
irrlicht/include/IrrCompileConfig.h
swiftpaw@mycomp:~/Games-installed/minetest$ IRRLICHT_INCLUDE_DIR=irrlicht/include/
swiftpaw@mycomp:~/Games-installed/minetest$ cmake minetest/ -DRUN_IN_PLACE=TRUE
-- *** Will build version 5.5.0-dev ***
-- Could NOT find Irrlicht (missing: IRRLICHT_LIBRARY IRRLICHT_INCLUDE_DIR)
CMake Error at CMakeLists.txt:63 (message):
Irrlicht is required to build the client, but it was not found.
-- Configuring incomplete, errors occurred!
See also "/home/swiftpaw/Games-installed/minetest/CMakeFiles/CMakeOutput.log".
swiftpaw@mycomp:~/Games-installed/minetest$
-
- Member
- Posts: 348
- Joined: Tue Apr 14, 2020 16:03
- GitHub: cuthbert
Re: Main menu overhaul and scaling feature needed
go to all settings type "screen size" in the search .
I could not get it to scale right in previous versions so i know how frustrating it is , took a lot of fiddling about with the settings before i was happy with the display .
Project BrutalTest...hide your Petz
Re: Main menu overhaul and scaling feature needed
Okay thanks! I didn't see that setting. I might play around with that, but regardless, definitely a master slider for GUI size would fix that. A lot of modern games have that setting, so unless there is some major limitation of whatever library the menu GUI is built on, it would be really sweet to implement that! Unfortunately I don't know much C, but I still might peek into the code at some point.cuthbertdoublebarrel wrote: ↑Mon Apr 05, 2021 20:55go to all settings type "screen size" in the search .
I could not get it to scale right in previous versions so i know how frustrating it is , took a lot of fiddling about with the settings before i was happy with the display .
Right now I'd just like to figure out how to compile it. It's pretty funny that I get this:
Code: Select all
swiftpaw@mycomp:~/Games-installed/minetest$ cmake minetest/ -DRUN_IN_PLACE=TRUE
-- *** Will build version 5.5.0-dev ***
-- Could NOT find Irrlicht (missing: IRRLICHT_LIBRARY IRRLICHT_INCLUDE_DIR)
CMake Error at CMakeLists.txt:63 (message):
Irrlicht is required to build the client, but it was not found.
-- Configuring incomplete, errors occurred!
See also "/home/swiftpaw/Games-installed/minetest/CMakeFiles/CMakeOutput.log".
swiftpaw@mycomp:~/Games-installed/minetest$ grep -i irrlicht /home/swiftpaw/Games-installed/minetest/CMakeFiles/CMakeOutput.log
swiftpaw@mycomp:~/Games-installed/minetest$ grep -i irr /home/swiftpaw/Games-installed/minetest/CMakeFiles/CMakeOutput.log
swiftpaw@mycomp:~/Games-installed/minetest$ grep -i lich /home/swiftpaw/Games-installed/minetest/CMakeFiles/CMakeOutput.log
swiftpaw@mycomp:~/Games-installed/minetest$
But I'm a newblet at compilation so there's no doubt something I'm doing wrong. BASH and Python are much more my cups of tea. I tried merging the irrlicht and minetest git trees together and then compiling it that way, but it just messes things up even more.
Re: Main menu overhaul and scaling feature needed
Was able to compile it. I was dumb and didn't read fully. x3
After tweaking things, I was able to get things to look okay, but obviously scaling the GUI evenly somehow should be easier for users.
I noticed a few things:
As for any kind of auto-scaling, I've still not been able to trigger that in 5.5.0-dev-85163b5 no matter what I've tried so far.
After tweaking things, I was able to get things to look okay, but obviously scaling the GUI evenly somehow should be easier for users.
I noticed a few things:
- DPI is broken on Linux. Fixing this might allow even scaling for all GUI elements to work properly? But I'm not sure what the barriers are to fixing this.
- Vsync is broken on Linux.
- FPS caps are broken on Linux.
- There is no "Apply" button to make settings take effect immediately without restarting Minetest.
- The user-friendly settings page needs a resolution selection drop-down menu along with a fullscreen checkbox. I can see the X and Y custom stuff staying stuffed in the advanced settings section, but basic xXy resolution and full screen/windowed mode selection is pretty common so I feel should be on the main settings page.
- A reset ALL settings back to default button? Of course just wiping minetest.conf is the other way of doing this.
As for any kind of auto-scaling, I've still not been able to trigger that in 5.5.0-dev-85163b5 no matter what I've tried so far.
Re: Main menu overhaul and scaling feature needed
Also @sfan5 I doubt this is helpful as I'm sure you know already, but just in case (and for anyone else), here are my steps for compiling Minetest with the new Irrlicht dependency. After installing the package dependencies for Ubuntu listed on the Minetest compilation instruction page, I did:
Code: Select all
git clone https://github.com/minetest/irrlicht
cd irrlicht
cmake . -DBUILD_SHARED_LIBS=OFF
make -j$(nproc)
cd ..
git clone --depth 1 https://github.com/minetest/minetest.git
cd minetest
git clone --depth 1 https://github.com/minetest/minetest_game.git games/minetest_game
cmake . -DRUN_IN_PLACE=TRUE -DIRRLICHT_INCLUDE_DIR=../irrlicht/include -DIRRLICHT_LIBRARY=../irrlicht/lib/Linux/libIrrlichtMt.a
make -j$(nproc)
Re: Main menu overhaul and scaling feature needed
These are the resolutions I've come up with so far for minetest/builtin/mainmenu/tab_settings.lua:
They're some of the most common resolutions used today, plus some common resolutions of monitors being sold today i.e. will probably become more common. I didn't include any 8K stuff yet.
I've only got those two sections for now. Interesting code, though. I'm thinking a resolutions drop-down box should go right at the beginning of the settings options with a fullscreen checkbox to the side or under it, followed by the autosave_screensize checkbox. I'll post a screenshot later when/if I get it working.
Code: Select all
local labels = {
resolutions = {
fgettext("5120x1440 (32:9)"),
fgettext("3840x2160 (16:9)"),
fgettext("3840x1080 (32:9)"),
fgettext("3440x1440 (21:9)"),
fgettext("2560x1440 (16:9)"),
fgettext("2560x1080 (21:9)"),
fgettext("1920x1080 (16:9)"),
fgettext("1680x1050 (16:10)"),
fgettext("1600x900 (16:9)"),
fgettext("1536x864 (16:9)"),
fgettext("1440x900 (16:10)"),
fgettext("1366x768 (16:9)"),
fgettext("1280x1024 (5:4)"),
fgettext("1280x960 (4:3)"),
fgettext("1280x800 (16:10)"),
fgettext("1280x720 (16:9)"),
fgettext("1024x768 (4:3)"),
fgettext("800x600 (4:3)"),
fgettext("768x1024 (3:4)"),
fgettext("720x576 (5:4)"),
}
}
local dd_options = {
resolutions = {
table.concat(labels.resolutions, ","),
{"5120x1440", "3840x2160", "3840x1080", "3440x1440", "2560x1440", "2560x1080", "1920x1080", "1680x1050", "1600x900", "1536x864", "1440x900", "1366x768", "1280x1024", "1280x960", "1280x800", "1280x720", "1024x768", "800x600", "768x1024", "720x576", }
}
}
I've only got those two sections for now. Interesting code, though. I'm thinking a resolutions drop-down box should go right at the beginning of the settings options with a fullscreen checkbox to the side or under it, followed by the autosave_screensize checkbox. I'll post a screenshot later when/if I get it working.
Re: Main menu overhaul and scaling feature needed
So this is what I was thinking for part of the main menu overhaul as far as a resolution chooser is concerned:
I moved the elements around to put the resolution chooser and "Autosave Screen Size" checkbox together at the beginning of the settings as I think this is one of the most important settings.
Looks like Minetest devs chat on IRC so perhaps I can mention this there. I don't have a github account because Microsoft is evil, but I could certainly post the code some place else for someone to copy.
These are just dumb labels and aren't using any logic such detecting the available screen resolutions and culling the list based on that. This was mostly just for show but most of the code is there and updates screen_w and screen_h which are normally individually updated in the All Settings section.
I might be doing some of that wrong since I'm totally new to Lua but it's not too hard to figure out most of it. It doesn't actually set the resolutions yet.
Oh also that "Autosave Screen Size" checkbox should probably be renamed to "Autosave Screen Size On Exit" or something.
I moved the elements around to put the resolution chooser and "Autosave Screen Size" checkbox together at the beginning of the settings as I think this is one of the most important settings.
Looks like Minetest devs chat on IRC so perhaps I can mention this there. I don't have a github account because Microsoft is evil, but I could certainly post the code some place else for someone to copy.
These are just dumb labels and aren't using any logic such detecting the available screen resolutions and culling the list based on that. This was mostly just for show but most of the code is there and updates screen_w and screen_h which are normally individually updated in the All Settings section.
Code: Select all
if fields["dd_resolution"] == labels.filters[1] then
core.settings:set("screen_w", "5120")
core.settings:set("screen_h", "1440")
ddhandled = true
elseif fields["dd_resolution"] == labels.filters[2] then
core.settings:set("screen_w", "3840")
core.settings:set("screen_h", "2160")
ddhandled = true
etc...
Oh also that "Autosave Screen Size" checkbox should probably be renamed to "Autosave Screen Size On Exit" or something.
Who is online
Users browsing this forum: No registered users and 8 guests