UnofficialCrusaderPatch / UCP3-GUI

Dev work on the UCP3 gui
GNU Affero General Public License v3.0
2 stars 0 forks source link

Useability Feedback conducted from Monsterfish onboarding with his AI-Castle pack #220

Open Krarilotus opened 5 months ago

Krarilotus commented 5 months ago

We just onboarded @Monsterfish_ for the UCP3. Here are the findings on what we could improve from a usability standpoint:

  1. Tabs and Content functions:

    • The customizations tab should probably be active from the start (I think I mentioned that somewhere in the Discord).
    • The customizations button on the bottom could make space for a different button to 'Save customizations to top plugin', triggering a warning that the plugin will be permanently altered.
    • It would be nice to have a way to open Windows Explorer in the folder where the UCP plugins are located so that people don't need to search and find that folder path if they are clueless.
    • Cloning Existing Plugins:
      • We needed this functionality a lot: the ability to clone an existing plugin.
      • The cloning process should include automatic renaming (like giving it the dialog for creating a new plugin but based on an existing one without adding it as a dependency).
      • This is useful for plugins that don't want to depend on other plugins that might be similar, then remove a bunch of their dependencies and instead use a similar configuration but with different dependencies.
      • E.g., if you want to make something based on UCP2 legacy but don't want to redo tons of configurations:
      • Take the vanilla retraced plugin as a base.
      • Keep the UCP configuration part of it, and maybe the maps because you like them.
      • Then switch out a bunch of other stuff.
      • This means you don't need to start building the dependency and configuration list from scratch, and you can rely on how the files were set up (ini.lua for textures).
  2. File swapping setup for maps and images:

    • Instead of having to add a bunch of GM files individually, Monsterfish_ suggests including complete folders.
    • Use vanilla filenames for the files to replace when loading, to load first from this folder, but with multiple possible GM folders to combine.
    • This is similar to the maps folder feature, but we still need compatibility for multiple folders to be loaded instead of just one.
    • UI for this could be a list of map folders to include, where non adjustable through the top plugin folders would be greyed out and always an empty path is added to the end when one is added (after adding one and applying, the GUI automatically reloads after prompting and adds the next possible entry for the list)
  3. Creator Mode for Developers by Default:

    • Hiding the creator mode for creators is kinda counterintuitive
    • We might want to have two versions of the UCP by default:
      • One is the developer's version and has plugin creation (and customizations) enabled by default, the other has the plugin creation disabled by default
  4. Filter Options:

    • Filter options are heavily needed for finding plugins based on what they contain -> see more in the respective discord discussion thread
    • 'Don't Show' Button:
      • Monsterfish_ suggests a 'don't show' button, where you can put another filter tag yourself on top of plugins.
      • This makes plugins invisible that you are not interested in seeing most of the time.
      • Have a filter 'show invisible plugins' of some sort.
    • Data and Config Plugins:
      • The need for a data plugin and a config plugin to be two different plugins is more often the case than not.
      • This is to avoid messing up someone's configuration for just providing files.
      • This clutters the GUI with a bunch of 'Applied' plugin versions and makes the workflow cumbersome.
      • An option to have for every plugin a button on top of their name to 'enable' / 'disable' configuration might be enough to add plugins as dependencies without loading their configurations.
      • This way you can depend on fully configured plugins just for their data
      • @gynt or do you have a better idea?
    • Filters are also needed for customizations, apparently people just have trouble finding the options they are looking for the more mods are added. Maybe that is because they are not familiar with the sorting, but this could also be trouble for new users as well that start developing and could pose an initial barrier.
      • my take: Make the options on the right side easier to expand, by putting the expansion triangle on the left instead of the right. That would make life much easier!
  5. AI Swapper Related Improvement Ideas (from @TheRedDaemon):

    • Monsterfish_ made a quick draft of a compact menu without submenus.
    • The AI Swapper menu can be condensed as follows (we did consult multiple AI Creators like Nevikov, Krarilotus, Heroesflorian and Krarilotus...):
      • Top Half: The Current AIs Portraits & Names:
      • Original AI names don't need to be placed above the portrait, putting all the portraits in the top half of the AI swapper menu.
      • They are just portrait-buttons like now, + the one name that is based on the active AI
      • The name is now no longer selected on internal merge order but instead will be selected based on the AI of which the portrait was selected.
      • If there is no extra AI's portrait selected, the default AI present in the game files (e.g., the rat or the wolf or else) will be used.
      • If any other categories are modified, there will be an asterisk added to the name ('*'), and hovering over the name shows 'modified' as a tooltip.
      • Clicking on one of the portraits opens the selection of available AIs in the bottom half.
      • Bottom Half: Available AIs Selection:
      • The AIs available to choose from will be showcased in the bottom half of the menu in a list box that shows multiple AIs as cards side by side.
      • The cards will be arranged in a grid, where the cards have a minimum width and a fixed height to show all the necessary information but fit as many cards as possible in the available screen space.
      • The list of all the AIs available always starts with the files combined into the vanilla AI present in the game folder.
        • Not sure how difficult that would be to implement. Else we could add default information for the vanilla AI of said slot to 'appear' as if this was the default present
      • Each AI Selection Card Features:
        • The portrait of the AI (if no portrait is present, this is blank/see-through).
        • Name, package name where the AI came from, and author name all in three lines next to the portrait.
        • Eight checkboxes, which are selectable to say: I want this feature of this AI, with the respective names above (binks, speech, lines, portrait, AIC, AIV, lord, troops).
        • A box is greyed out if this feature is not available for this AI.
        • Selecting a box deselects the current present box (or disables the default box and lets their checkbox get a greyed out Sword, but still be selectable to reinstate the default)
        • If underlying AIs are present from another plugin underneath, the selection that would be currently present from them would be the default selection at the start, overwriting the previously default selection of the vanilla AI.
        • However, the default selections are only getting 'disabled' when another AI with the same feature is selected, giving them instead a greyed out sword but still selectable to reinstate the default (the feature exists, just the activation of it is 'greyed out').
        • Under these boxes, there would be a language selector with the same options as the AI language selector now: Default, AI Default, and all the languages present for the AI.
        • The AI Default option gets an indication of which language that is, and the Default option also gets an indication of which that is.
        • For example: Default: de, AI Default: en, fr, en, de as options.
        • Next to the language selector, aligned to the bottom right corner of the AI card, would be the version tag.
      • The cards would stretch to fit inside the selection window and leave some room for the scrollbar on the right.
      • This could mean different grids for different resolutions, like 5x8 or just 3x2, depending on the size of the GUI window.
    • Buttons and Search Bar:
      • Save, Save and Close, and Close buttons remain on the bottom right of the AI Swapper menu.
      • The search bar would move to the bottom left of this window.
      • The default language selection would move to the middle bottom, with no extra text and instead the language symbol as in the GUI's language symbol for the GUI language selection (remains to be seen if people question this or wonder what it's about).
Krarilotus commented 5 months ago

REHWFnq GF5GFpp

TheRedDaemon commented 5 months ago

Just some quick thoughts for now:

  1. Creator Mode for Developers by Default:

I would object against any "more" versions if the difference is not radical. The overhead just seems so big if it can be easily handled by a flag or config. My mind often questions why we have different UCP3 versions, until I remember that one of them should also include the debug versions of modules... (@gynt Does it even? I think we have talked about this many times, but I always forget the other reasons why we not just have a "release" build version of the backend (with toggable dev features including a "no safety" warning") and debug version for rare cases that debugging needs to be done over multiple modules...)

  1. AI Swapper Related Improvement Idea:

Many stuff I will come back to when I intend to tackle this, but some things may be worth considering
Starting with the biggest thing. Here is actually the overview screen in the smallest supported resolution of the GUI:

grafik

I can see how we could get a bit of space, but it would still not really fit even a single line of cards. Some stuff may currently appear small on high resolutions because I designed it under the assumption that it needs to support the minimal resolution and that most people would use it in the default starting window size. So this issue needs ideas and I would have none.

Save, Save and Close, and Close buttons remain on the bottom right of the AI Swapper menu.

"Save, Save and Close, and Close" are not part of the custom GUI code and will stay on the outside. There are even technical reasons to do it this way. (A module can not "trap" you). This is just a response to the mock-ups.

  • The list of all the AIs available always starts with the files combined into the vanilla AI present in the game folder.
    • Not sure how difficult that would be to implement. Else we could add default information for the vanilla AI of said slot to 'appear' as if this was the default present

The Vanilla AIs are not available to be placed in a slot, nor are they in any way checked. If they should be freely placeable, they would need to come in the form of a plugin. Could also be that I do not understand this point, though.
The vanilla AI is assumed to be always present and the swapper assumes that people who use it stop messing with their files. Additionally, the GUI does not intend to display any detailed information. So, if Vanilla AIs can not be moved and are always present with all options, what is there to display? EDIT: Oh, the activation state...

The cards will be arranged in a grid, where the cards have a minimum width and a fixed height to show all the necessary information but fit as many cards as possible in the available screen space.

I am not sure the cards with their checkboxes make the priority more understandable. That is my personal main issue. Up-down seems universal, left-right is rather western. So it would need a concept to display priority and allow controlling it. Even if usage might clearly indicate the priority order, I am not sure how it should be controlled, since visually AIs can be next to each other, not only under or above.
Also, I am not seeing support for the "whatever the AIs under me say, use Vanilla" option. Correct me if I just missed it.

Monsterfisch commented 5 months ago

regarding space on the smallest window size i would just say that the images should start scaling down at some point as having to click less to get to a desired result is always better than having pretty images for the ui (in this case character portraits) image

The Vanilla Charcter doesnt have to be added as a pack and can just function as a reset to default if thats not possible you can also leave it out? i simply figured it would be a nice way for the user to get back vanilla settings (default could also be the vanilla fixed version)

When only selecting only one card you could hide the individual selection options displaying more cards at the time for the user and having a bit of a less cluttered interface. the different options like lines etc would only show up if such a feature is present in the actual plugin

image image

alternatively it could only show the options for the cards the user selects tho its probs a good idea in general to display what content is present in the ai in some way still either through icons or a small list but thats open to discussion ofc

image

When selecting multiple options of the same type in the cards it will also unhide a priority dropdown menu where the user can select which AI to put at what position in the priority

AI cards move up to the top slots when they have something selected after reopeming the menu or automatically when selected (making it easier to see what actually selected later down the line).

hopefully this will clear things up a bit, but let me know if something is still unclear

Krarilotus commented 5 months ago

I would argue so far, that the priority list is not necessary for within the AI Swapper, and the priority list of the UCP3 framework is already displayedi n the contents tab. However, i can see a point where you want to display which aiSwapper features get overriden by which plugins -> But that is exactly something that should be already known within the contents tab. You don't want to have to open the configurations to see conflicts @gynt would it be possible to already get overwrite feedback somehow on the contents page?

gynt commented 3 months ago

@gynt would it be possible to already get overwrite feedback somehow on the contents page?

Addressed in https://github.com/UnofficialCrusaderPatch/UCP3-GUI/pull/208