Open olanti-p opened 1 year ago
i couldn't agree more with what was described in this issue. if i may add a few suggestions regarding to the UI in general in cdda that c:bn inherited from being a fork of it, is that there are too many duplicate panels doing almost the same things but each end up having their own specific quirks and tricks. for example:
examine and picking up an object in game.
there may be even more ways but you get the idea. that's a lot of redundency. the two "pickup" panels and the two "examine" panels, in total 4 panels that overlap eachother and provide similar function. it could be trimmed into just 1 instead of 4 panels. the panel "list all items and monsters" and "lookaround" panel also both kind of overlap one another. and of course no two panel work the same, they all have their own shortcuts and it's generaly confusing. one example to illustrate could be 'sliders', one panel will accept page-up/page-down, while another will want ">" and "<" to move it around. they're all lacking a structured and standardized way of listing and displaying stuff. often time i end up looking up at something with one of the available panels, then having to switch to some other panels to pick it up. constantly switching around mutiple layers of panels displaying/stacking on top of one another in a messy way. their coordinates of origin vary wildly. some will display at center, some will display on top of sidebar, shadowing it, some other will just display with a slight offset from it's parent panel...etc..
idealy, there should be just one panel for a dedicated use. the way it list stuff should have some sort of general layout consistency with the rest of the panels. and the coordinates choosen to start display it should be consistent too. there should only be one inventory system, and only one panel to look around and interact with the world. and a choice should be made weither it shadow the sidebar (display it on top of side bar, completely hiding/replacing it while it's open) or if instead the panel should be displayed on top of game area, completely hiding it and thus leaving the sidebar always fully visible. rules for that sort of things should be made and respected. that builds consistency and it's good for user experience and the game in general.
so while the points presented in the opening post of this issue are being worked on, it would be nice if a little bit of what i've just added could be kept in mind: trimming down all the inconsistencies and duplicates.
another example of the weird UI/UX choices inherited from cdda, is the character sheet page, shaped like if it was cut in half diagonaly. what's the purpose of that ? what's the merit of such choice ? what's next, hearts and stars shaped panels ? it makes zero sense. more so, the page fails to show actual data on the player. for example where are the lockpick or the swiming skill listed ? many data are simply missing from character sheet.
in such games, rpg, roguelike, and text based games, there are two crucial, very immportant bits: the log message and character sheet. they are your eyes and brain in the game. everything happening in the game are conveyed to you mainly by character sheet and the game log message. if those are not well done they ruin the experience.
most of cdda is like this. panels failing to do what they are supposed to do, and ending up resorting to other panels to gather scattered infos. the game does have consistency but in faillure. faillure to deliver proper feedback to the player in many ways. the log message, never hint you at anything, leaving you in the dark having to figure things out, and forcing you to work with a broken UI. any improvements on that front should bring a lot of immediate return in satisfaction in user experience and renewed interest in the game, in my humble opinion.
For anyone reading this thread, the 2 comments above are only relevant to the "player side" of UI issues, for which a new ticket has been created: #3602
Note: For issues on how the interface is presented to the player, see #3602.
There are some issues with how the game interface code is organized:
TILES
define. This makes it hard to trace the workings of interface internals, and requires building the game (and tests) twice in order to test some interface changes. Possible solution is to split off SDL and curses code into separate libraries that can be used by a backend-agnostic abstraction layer - this would also allow implementing new backends, for example a backend that can perform UI tests in headless mode.Resolving these issues would in the long run help with implementing advanced ui features, such as #2941 or universal mouse support.