Usability and user interface improvements (discussion and feedback)
ToxicShourin opened this issue ยท 7 comments
Don't get me wrong this a great tool but it's not exactly very user friendly. It's hard to find functions and the sea of menu's. I was watching xisumavoid trying to take a standing schematic and lay it on it's side and it not working despite his live stream chat trying to help. Any plans to make this more user friendly?
Replay time stamp! He's used this a number of times and still has to relearn every time he uses it!
https://www.youtube.com/watch?v=CtXg01oOZDk&t=34m59s
Usability and lacking documentation is definitely an issue for new users, and most of my mod configs menus also suffer from this same thing of "stuff is scattered in multiple places".
There is some malilib config GUI refactoring planned, and the new things that will allow should improve the config GUI part of things quite a bit, hopefully, allowing me to group and link together related options a bit better.
And as to the particular video clip and area selection confusion... I have already changed the default area selection mode to be the Simple
mode in the future releases of the mod, as I imagine that is the most common use case - you just want one box. That way you don't need to first go and create the new selection in the area selection browser, that you need to do in the Normal
mode, where the selections are meant to be separate and persistent, and they allow an arbitrary number of sub-regions to be created.
(And when it comes to flipping the schematic between horizontal and vertical... yeah that would be impossible to find currently, as it's not yet implemented, it's still only on my TODO-list...)
I think I'll turn this issue into a generic usability improvements discussion. If anyone has actual constructive feedback and ideas on how to improve the usability and user experience on some area, then describe the issue you are having, and how you would improve the GUI or some other functionality to make things easier and clearer related to that issue.
One thing to note is that I don't want to sacrifice any features or functionality. As an example, the schematic placements will remain, and won't be changed to "you simply load the schematic and rotate it" or something like that. Ie. removing the separate placement concept won't happen. This is because the placement being separate offers more flexibility and reduced memory usage if you need to place the same schematic in multiple places, and also in the code it would still remain as separate concepts like they are now.
So basically I would like ideas on how to better present the functionality to the user, or if anything can be modified in a way that still offers the same features and flexibility. One example of this would be ideas for better GUI layouts.
How about ability to search settings by parts of setting name / some keywords specific to every setting?
Grouping settings would help in most of cases, but if setting is hard to assign to any specific group - it would actually be harder to find it, as user would need to go in and out of multiple group folders. In this case setting search should help.
There are searches in every tab, but I guess it would make sense to have a global search, maybe in the malilib config.
keywords are actually interesting, maybe some settings/hotkeys could use some (hidded) aliases, but that sounds like a nightmare to start working on without a big search data set.
Currently you can search by the config name, and you can "OR" multiple terms by using the pipe character |
, so for example foo|bar
would find both someFooThing
and anotherBarStuff
. The current search just filters the list of config options that the GUI list widget will get, so it won't pull in any configs from other categories. I probably should add some way of making it a (mod-)global search, or just include a combined view of all configs in a separate tab for that.
Additionally I should probably also allow the filter to consider the tooltip/comment in addition to the config name. And maybe all configs could have a list of keywords associated with them that the search could also use. But that basically just shifts the problem into naming/terminology.
I second this, I believe the mod has so much good to offer but it's just incredibly unintuitive to use, have you considered making a stripped down version of the mod where all it has is the following:
- A dead simple selection mode
- A single button to open up a menu where you can
- Save the current schematic
- Load a schematic
- Edit the current schematic selection
Selecting things
My idea of selection would work kind of like world edit: hold the stick in hand and middle-click a block to start selecting, and middle-click it again on another block to confirm the selection. If a user middle-clicks for the third time it clears the current selection.
The mod menu
When a user presses m
, they are presented with the mod menu, the idea of this is that it's a very minimalistic design which anyone can use with ease. The following screenshots is how I personally would design it:
Interaction with buttons:
Would love to hear what you think :)
I can say for sure that there won't be a separate "simple" version of the mod, at least not by me, as I can't even keep up with things as-is, the 1.13.2+ versions of the mod are about 9 months behind the main development in 1.12 currently. Maintaining a separate version of the mod would just become even more of a maintenance nightmare.
Another problem with a separate mod variant would be that where do you draw the line of what should be included? Should there even not be a Material List? That's considered essential functionality isn't it? What about the Schematic Verifier? What if the user wants to change some blocks in the schematic, should the Rebuild mode be included? What if the user wants to adjust some rendering options, should they be included, or if not all, then which ones?
I think what the separate version would be, is simply just either removing the hotkeys and buttons to open the current menus or even remove the menus entirely, which just seems silly.
So in my opinion there shouldn't be functionality stripped away from the mod, especially in the form of another mod, as I imagine then there would be a number of users that are confused what the differences of the mods are, or maybe they see a tutorial video, and go and download the simple version, and then they can't find the feature they saw in a video. So I think the better approach is simply to work on the usability of the current mod, and that is certainly on my TODO list to improve various things whenever I come up with a better or clearer way to implement or present something. If the user wants a simpler user experience, then there could just be a simpler new menu added that omits lots of the configuration options and extra feature access.
So for example the simplified menu you propose could be added to the current mod as an alternative "simple mode" menu, with a new hotkey to access it just like you would access the current main menu. You don't present anything for configuring the placement, such as the position and rotation. How would you include those, or would you leave those for the current placement configuration menu? Would you allow loading multiple schematics at once, or creating multiple placements from one loaded schematic? How would you add access to the Material List?
And finally I don't really understand your idea about the tool and using just middle clicking. How is that easier to use? How does that even work exactly? You say middle click on a block and then middle click again to "confirm a selection". What does that select? Just that first block? Or the area between where you click the first and the second time? And if you need to amend the selection such as expand it by one block, you need to start from the beginning because the third click resets the selection? I don't see how that is better than the simple "left click to set corner 1, right click to set corner 2"?
Although personally I pretty much exclusively use the Expand selection mode, where you right click to reset/collapse the selection to the clicked block, and then you left click blocks on the edges or corners to expand the selection around all the clicked positions. Or if the build is a free floating contraption, then you can do it way faster by collapsing, and using the selectionGrow
hotkey, like shown here in this "joke tutorial": https://streamable.com/70pmm
So I guess to summarize, I don't really want to compromise on the feature set in any way, but I obviously do want to make things easy to use. There are some things already planned to improve usability in some areas, and one notable planned addition is a searchable built-in documentation menu and possibly a separate "tips & tricks" menu to let the users know about certain shortcuts and fast and easy ways of doing some things in the mod. Also the config menu will probably see some better organization and grouping of some options that belong together, after I rewrite some config menu stuff in malilib to be more flexible.
One things I've noticed that is somewhat common in streams or videos etc. is that people fumble around with the Loaded Schematics vs. Schematic Placement menus searching for what they are looking for. I don't really know how to improve on that, except make an official tutorial video and/or in-game documentation that explains those concepts in the mod, so that the users would hopefully understand how those work exactly in the mod and thus what options are expected in which menu.
To that last point, basically the mod allows loading an arbitrary number of schematics at once, and those loaded schematics are listed in the Loaded Schematics menu. A simple loaded schematic is not placed or visible anywhere, and does not have any associated position or rotation values. A Schematic Placement is what defines where and how an instance of a loaded schematic should be placed at. So a placement basically refers to one schematic, and the placement contains the positioning data, such as the origin point and rotation and mirror values, and any possible modified sub-region positions and rotations, and whether or not some sub-regions should be disabled ie. not placed in the schematic world. Any tool actions refer to the currently selected placement, so that they know which schematic instance and where in the world they should affect.
and possibly a separate "tips & tricks"
Maybe better add it as a random 1 tip at a time displayed on the bottom of menus in small font? Or rather both (all tips menu + random tip). I just don't see many people actually taking their time to read all of the both doc's + tips. But as a random short tip that is updated every time you open config or main menu - it should be much more popular.
I don't really know how to improve on that, except make an official tutorial video
How about displaying some sort of overlay with arrows and short explanation when menu if opened for the first time? It sounds perfect for explaining that loaded schematics are virtual, while placements is what is placed in in-game world.