Here it becomes interesting since I'm working on creating some types of UI myself and some rules are universal.
A few things I'm writing (and showing) in this post are coming with the assumption that
all my previous suggestions regarding gameplay and some other popular ones are implemented.
There are some illustrations at the end of the post, you can avoid all long reading by going straight to them.
1. Party controls.1.1. Remove dragging group portraits as part of the control system.
It's more clunky and takes more space for controls than it could with the same functions being provided by simple clicks. And I'm sure that for a gamepad it could be certain buttons.
1.2. Place the “Group / Ungroup” button right on portraits instead of right-click menu. Rename it on the tooltip as “Follow / Don't follow”. Use the image on the button as an indicator if the character follows the one we are controlling at the moment.
Less clicks and the new name is more suitable to how it actually works.
Also would be great if it would disappear in the battle mode, since it won't work anyway.
1.3. Add a version of the same button for the chosen character to make all the rest stop / start following that character.
At the moment right click on the chosen character's portrait does nothing, so to ungroup the character to do something only with him we need to switch to another, ungroup and switch back (or drag, but look at 1.1). It's obviously too many needless clicks.
1.4. Add keybinding for “Follow / Don't follow” that will work with the left click on the character model.
For example press Ctrl+left click.
1.5. Add a major “Group / Ungroup” button that will break or restore grouping for the whole team, similar to how we enter or exit battle mode.
It's solely for the cases, when we know that we would like to move each character in his own spot.
Same as with 1.2 it would be great if it would disappear in the battle mode.
1.6. Expand the distance at which we can group characters.
At the moment we need to get characters really close to group them back. That's really inconvenient and 4 times more inconvenient when we have all characters at some distance from each other.
1.7. Make all following characters use stealth, active search and attack destroyable objects, when we do it on the leading character.
1.8. Create a party management interface with such functions: send companions to the camp without personal dialog, summon companions from the camp, edit march formation, edit battle formation.
A travel to the camp and talking personally to each companion to change the group is just loss of time for the sake of nothing.
It would be a cool bonus to immersion if after using that interface to replace a companion you'd add some suitable small cutscene or "barks" exchange, considering if we use it in the field or camp.
1.9. Make sure that our companions, who are not in the group, benefit from long rest as well.
It was "a little bit" frustrating to find out that after the whole night of sleeping Gale didn't restore a single spell slot and didn't get his special tadpole powers, because he wasn't in the group.
2. Camera controls.At the moment the camera treats obstacles pretty randomly and allows us to see “insides” of the environment way too often. It both breaks the illusion of palpability of the world and makes controls clunky.
2.1. Improve the default camera collision logic.
A) Cliffs, walls, floors, ceilings and roofs are obstacles and the camera shouldn't move through them on it's own or via zoom.
B) Trees, bushes, furniture, statues, characters, rocks and containers aren't obstacles and the camera should move through them freely.
C) When the camera moves through the object, the object should turn transparent as it works with trees now.
D) When the camera doesn't move through the object the object should stay opaque.
E) Rotation of the camera shouldn't override the default logic and should keep on treating obstacles as normal, changing zoom distance instead of going through an obstacle.
F) WASD should override the default logic for medium or big but thin obstacles like walls, floors, small cliffs. It generally works as it expected already aside from occasional camera moves inside of whole mountains.
2.2. Add a way to move the camera straight by Y-axis.
Probably by Shift+W for up and Shift+S for down by default. This way of moving the camera should also override default collision logic for floors, ceilings and roofs allowing us to go from one floor to another by moving the camera through the floor and clicking on the new one we see.
2.3. Please, add the photo mode with free camera movement and hidden UI.
3. Main UI elements. Group and queue portraits.3.1. Move group portraits to the top border of the viewport and change to vertical positioning, with summoned creatures being added to the right side.
This is to give the quickbars all the space they may need and take a narrower line from the viewport. I will return to the problem with switching characters on “Character sheet” in later posts.
3.2. Place status effects icons (concentration, buff, debuff) on the group portraits vertically and reserve some space for them.
Just one more effect in a battle turns a portrait into a pile of icons. There are too many, they are hard to “read” on a colorful background and they often end up right on the character's eyes.
3.3. Remove the “in battle” and “turn-based” status icon.
With 1.3 from here implemented we won't ever need any kind of additional indication if one of our characters is in the battle or not. Everyone is in a battle and it can be told from the perspective of any character by the change in UI appearance for turn-based mode.
3.4. Remove the additional “hidden” status effect icon.
It's enough to have the “sun” icon to understand if our character is hidden.
3.5. Add a "Dipped / coated weapon" indicator among other status indicators (buffs, debuffs e.t.c.).
3.6. Use only red overlay (better) or HP-bar on group portraits to show the amount of HP.
Two indicators showing the same thing in the same viewport area are redundant. Plus red overlay as an option turns the bar in nothing more than a waste of space.
3.7. Use overlays and vignettes instead of icons for all related to HP status indicators.
A) Drops of blood around the border in addition to red overlay for downed.
B) Fade in black for dead.
C) Blue-green glow vignette for temporary HP similar to the effect on character models.
The goal is reduction of the amount of icons of course.
3.8. Add some clothes (that endless nude-party on portraits, ugh) and facial expressions to portraits of our team.
Also can be a fun feature if you'd tie the clothes to the background and facial expression of our character to our choices in the game. So the darker we act the more evil look our portrait gets and the lighter we act the more enlightened it looks.
3.9. Move turn-queue to the center-top of the screen, make it show only one line with buttons for scrolling if there are more participants than can be shown in one line (1 line should be able to contain at least 8 portraits as if 2 unfriendly parties have met each other).
The turn-queue is an important part of the battle interface. Showing it somewhere on the side is not a good idea. I'm finding myself staring on the left each fight. Plus in 3.1. we moved the group right where the queue is now.
Showing too many lines only takes too much from the viewport even if it's on the side of the viewport.
3.10. Make it possible to choose targets by a click on group or turn-queue portraits.
You had this feature in the previous game, you know it's useful for avoiding misclicks.
4. Main UI elements. Quickbars and resources.4.1. Remove the character portrait from the quickbar.
We can tell which character we are controlling by the highlight on the group portrait and skills on the bar. Having once again the same portrait just smaller only wastes space.
4.2. Place the action and bonus action points in one line with the quickbar. Make the quickbar always stick to the bottom of the screen.
A quickbar that sticks out in some distance from the border takes away more from the viewport and useful space in the battle more than it should.
4.3. Add a reaction point as a shown resource for reactions, so we would be able to make sure if the character spent his reaction on the current turn.
4.4. Show additional reaction, action, bonus action points as some kind of a change (number for example) in the original point icon, instead of showing one more icon.
So the points will always take the same amount of space on the UI.
4.5. Leave only those attacks which can be done with the current weapon on the quickbar with weapon attacks.
Changing the weapon should change the list of attacks as well.
4.6. Move all weapon-based attacks on the quickbar with attacks, adding there automatically.
Sneak attacks, superiority attacks, the offhand attack, shove with current weapon - all should be there.
4.7. Make weapon toggles more noticeable (brighter, taller) and move them to the center (where is the portrait now).
At the moment they are so narrow and dim it's hard to notice and use them. Moving them to the center should both draw some attention to them and the fact of spending bonus points on switching, and help against any interference with change of quickbar slots.
4.8. Make sure it is always possible to change the choice of action / spell / attack by a click on another action / spell / attack with no need to do the right click.
At the moment the “Throw” action totally blocks the quickbar for example.
4.9. Replace pop-ups for throw and variants of spells with options shown roughly in the center of the screen. Make that new options menu disappear or change if we choose another option from quickbar.
Pop-up window as a part of the quickbar makes it all look cluttered and interrupts attempts to use something else if we changed our mind.
4.10. Create the second step for throw action with options: Environment (creatures, nearby rocks e.t.c.), Inventory (heavy things from inventory, excluding grenades and flasks), Grenades (grenades and flasks only).
At the moment there are sometimes too many things at once in the pop-up window and we can't even sort them, so some automated sorting is needed. Plus we don't need that window when we are going to throw something not from inventory.
4.11. Create a special spellcasting quickbar with spell levels being the first step of choice.
We should be able to turn it off in the game options. For a gamepad it can be turned into a part of the radial menu.
Even if this quickbar turned on, it should be shown only for characters that have at least 1st level spells, not only cantrips.
We shouldn't be able to edit this quickbar directly.
This quickbar should contain slots with numbers from 1 to the highest spell level available for our character.
After a click on a number we should get the list of prepared spells of that level. Scalable spells should have a small separate button on or near their icon, that will lead to their upscaled version. Click on the icon itself should initiate the cast of the spell with its original level.
4.12. Create the special “Quiver” quickbar and make the arrows toggleable on all quickbars for use with skills.
We should be able to turn off the quickbar in the game options.
Even if this quickbar turned on, it should be shown only if the character has some arrows in inventory. Even better if you'd also consider if the character uses a suitable ranged weapon or not.
Perfect if it will automatically get / lose new slots depending on the amount of types of arrows in the inventory. If there are too many they can be hidden behind a button.
4.13. Make a shape-like indication for icons of actions (square so that square forms prevail), bonus actions (triangle) and reactions (circle).
For example we have the triangle for bonus action points, so we have triangle-shaped icons for bonus actions.
For such spells as Hail of thorns, which use both action and bonus action, it should be the triangle inscribed in a square.
4.14. Allow us to keybind every quickbar.
4.15. The minimum amount of slots for one page of the main quickbar should be 6 (based on the length of the movement bar).
At the moment we have a strange situation with minimum 14 slots for the custom quickbar, while some classes don't have too many things to put there, unless they find all possible consumables and put them all on the quickbar. At the same time we can have more than 14 slots, when it's really hard to come up with safe and simple keybindings for more than 12 per 1 quickbar.
4.16. Do not create a separate icon for repeating spells like “Hunter's mark”, “Talk with dead”, e.t.c.
4.17. Spell slots near the movement bar need narrower appearance.
While at the moment they look like a perfect fit in symmetry with status effects, later on higher levels they will stick out further than the movement bar.
5. Main UI elements. Map.5.1. Allow us to hide the minimap or turn it into a small compass.
Basically it's better when you allow to hide or minimise every separate piece of the UI. But for such huge and not always useful objects as the minimap it's the must have feature.
5.2. Reserve space for the North marker path on the minimap so it won't go out of screen and overlap other elements. Make the marker itself more compact. Instead of rotating around the map it can be shown as the compass attached to the map always.
5.3. Place zoom buttons so they won't overlap the minimap itself.
Better if you'd also give them a more subtle appearance similar to the buttons of the chat.
5.4. Turn portraits with arrows for characters which are out of the field of minimap, in just arrows.
Sometimes in small areas, they overlay nearly everything.
6. Main UI elements. Details.6.1. Keep the line with buttons (inventory, character list, journal…) always in the same center-top place and make it stick to the viewport border.
The more you move around some recurring elements of the interface the more problems your user gets with remembering where is what and finding elements specific to certain interfaces.
You may hide it in a battle, since we shouldn't be able or need to use more than a half of those buttons in a battle.
6.2. Remove the fast travel button.
It sends us to the general map anyway, so we have two buttons that lead to the exact same interface.
6.3. Move “Long rest” and “Short rest” buttons to the same line with other buttons.
So we would have only those buttons which control the minimap on the minimap.
6.4. Tooltips should always be near the cursor.
At the moment when we hover our cursor over some surface the tooltip appears on the left a bit above the group portraits, which is counterintuitive.
6.5. Replace chance percentages to hit with the target AC vs dice roll.
It's not just a question of seeing “sacred” dice more, it's a question of system consistency and comprehension. We have flat numbers and dice rolls in our character lists, equipment stats and enemy examination interface, but after that we have sudden percentages and we can't connect them to those characteristics without doing some math.
Here some ideas how to visualise the advantage/disadvantage dice differently:
A) Write “x2” near the dice to tell us that it will be rolled twice.
B) Simply write “advantage/disadvantage” in between the AC and the dice.
C) Use color coding: green dice for advantage, red dice for disadvantage.
D) Use some appearance alteration: normal dice for advantage, cracked dice for disadvantage.
6.6. Don't exclude modifiers from the DC, add them to the dice rolls and show near the dice.
It will be both more familiar for old D&D players and a more transparent way to show the new players how their abilities and skills affect their results. Our character progress and difference between builts will be more obvious if we will see the modifier change right near the dice instead of DC change with need to hover over it to get to know that it was affected by the modifier.
Plus I can presume that it will allow you to optimise the code a bit. Since the DC can't be lower than 1, your code at the moment should have that considered for any original DC lower than our modifier. With adding the modifier to the roll, you won't need that.
6.7. Write only once for what we are doing the check in dialogs.
It's redundant when it's both “Athletics”/“Strength check” and totally ridiculous when it's “Strength”/“Strength check”.
As a summary here are some a bit schematic illustrations of how I expect the UI to start looking:
New main UI in a battle with new quickbars turned on and new pop-up.New main UI out of a battle in the turn-based mode.New main UI out of a battle with optional quickbars turned off and minimap turned into compass.New dice roll in a dialog.New party formation interface.