-
-
Notifications
You must be signed in to change notification settings - Fork 97
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Unify tab list for scene editors, script editors, any other editor types #8131
Comments
This behavior is similar to what web browsers do by default. History-based tabbing is provided in Firefox as an option, but it's not the default. I would prefer Godot to follow what web browsers do out of the box (especially Chromium-based browsers). |
@Calinou, browser-oriented approach that you prefer is convenient for many people, but it's implemented already. Switching between two last tabs is default behavior for Ctrl+Tab in all programming IDE that I know, many people got used to it (also it would give great flexibility in conjunction with unified tab system), and it's not implemented in Godot Editor. No matter what default behavior should be, I believe we need both options available. |
Guys, who downvoted proposal. Could you please share your feedback or reasons for the negative rating? It would be helpful for us to understand your perspective. |
@jmarceno, thank you for feedback! I understand your workflow, and my proposal doesn't break it.
My proposal doesn't remove the scene tree. Just like now, scene tree can show a structure of the last opened scene. So it can be shown always, no matter what script tab is active (just like now).
I's a bug, because it breaks classic "Principle of least astonishment" ("principle of least surprise") that is fundamental in user interface design:
Why scene tab button shouldn't always open that scene's 2D/3D editor? It's clearly semantics of that button.
Then you just don't click the scene tab button. I see that my proposal still supports for your workflow, but adds support for other workflows, too. And it aligns with "Principle of least astonishment". |
Added to the proposal: |
I personally don't believe any of this are problems or bugs, bug intended behavior. While doing a lot of tricks under the hood to save you a couple of clicks can be good some times, Godot workflow makes a clear distinction between 3D editor and scripting tools. Each panel have its own function and as such you don't always want them in sync. |
2 and 4 issues in my list show that "distinction between 3D editor and scripting tools" is not clear. |
in 2 you have a selected scene, which shows properly on the scene tab. Then, you have a script opened, which do not relates to the scene. 4 is frequent misconception. 2D, 3D and scripts are different environments, while shaders, animations etc depend on the selected nodes, and as such are auxiliary tabs, not environments. |
For any complex workflow or environment it's impossible to create a UI or workflow that is universally intuitive, because people work and think differently I find the workflow of Godot to be intuitive, and it's by no means an unintuitive workflow, some software have workflows that confuse most people, Godot is not one of those I don't think that the UI should be changed, or add different settings for it, because it has a learning curve for some users When something doesn't work as you assume or expect, the best way is to learn and adapt, just because it doesn't click with you immediately doesn't mean it's bad or unintuitive |
Please read my answer to @jmarceno, where I clarify that. Also, as @jmarceno mentioned, he doesn't want absolute "distinction between 3D editor and scripting tools", since he needs scene tree always to be shown.
What if you need visual State Machine editor? For example, plugin editor for any custom asset? It doesn't depend on the node, but on resource. |
With all my respect, i read the whole conversation, that's why I'm trying to explain the behavior. Things are not bugs just because you don't like it. The folks working on this have reasons to do stuff the way they do and this is not the first conversation born of misunderstanding the editor in first place. |
Not "universally intuitive", but maximum possible intuitive. |
Please explain, how a not working button is not a UX bug? |
Most users find it intuitive, that's why you don't see these kinds of proposals constantly, but a few users struggling with it, the changes you suggest would IMO be less intuitive and less convenient |
Actually, the changes I suggest (unified tab list) is a common approach in almost every IDE and editor out there.
I found many of them, repeating the same with different words. |
Please, edit instead of multiple post. (With this i mean, if you are the last who posted, edit, of course answer with new post to new information :) ) 1 is not a bug because clicking on the scene tab allows you to select nodes, it is not expected to bring you to the 3D editor. That's what the 3D Editor bottom is. I may want to click on a node to see its properties, to drag it to the script editor to create a reference, or whatever other reason. |
I don't use either Unity or Unreal so I don't know how these work, but other IDEs aren't relevant here as they aren't game engine editors I see a few reports of users who are confused over some of these things, but they are exceedingly rare, and I should know as I am part of the team reviewing bugs Having the script editor be detached from the scene makes sense, because scripts aren't specific to a specific scene or node (unless built-in), and workflow is broken by having to switch back and forth a lot, you can see the scene tree which helps you think about the scene breakdown, etc., further it massively reduces clutter, if you have three scenes and five scripts open it'll be very cluttered if it's all unified
Please list them because I haven't seen any beyond the ones Calinou listed above |
From a technical perspective: The separation of groupings, the "2D/3D/Scripts/Addons/Etc." part, the tab bar for scenes, and the script editor, allows for more of a broad perspective, and also works better on an internals side, currently the scenes tab is directly handled by the part of the editor that handles it and the associated parts, whereas the script editor is self-contained and handles all its logic on its own This means, for example, that we can entirely deactivate the script editor, and the other parts, the scene tabs, don't have to care at all, no logic needed The editor is broken down in various docks and areas, which compartmentalises the workflow, each thing in its place, this gives allows for more working muscle memory, like: "I want to edit animations, go down there", or "I want to edit scripts, click that and then there", having more things jostling for space in one area makes this workflow less smooth, it requires you to look more closely, to read and find "oh yes, this tab exactly", it slows down your workflow For example, though I'm not sure how representative my workflow is, I easily have 2-5 scenes open at any time (any more than that is not really efficient if you're not doing things like tweaking a bunch of different prefabs), and easily 4-8 scripts (more if I use |
Without being aware of certain features and perks of the engine, and the interface aspects required to make them possible, like staying in the script editor when interacting with the scene tree to allow dragging those into the script editor, or just editing in the inspector without having to switch over (especially when, for example, copying property paths, like in the animation player), those quirks can seem like bugs, when instead it's a lack of understanding of how it works The important step in that moment is to sit back and learn, to expand ones horizons about why the engine does a certain thing even if, with limited understanding, it might seem illogical or counterintuitive |
First of all, thank you all, guys. Here are similar opinions to my proposal about script/scene navigation and unified list of tabs. I'll quote and tag authors to make the discussion more complete. All mentioned people, you are welcome to join the discussion. @Exerionius writes:
@Mickeon writes:
@LucidPurple writes:
@kubecz3k writes:
(Different proposal, but aiming similar flexibility.) @vitorbalbio writes:
@YuriSizov writes:
On another page @YuriSizov writes:
@Rain-Gayming writes:
@Leleat writes:
2nd issue described in my proposal is similar to the one @BdR76 mentions. godotengine/godot#29722 (comment) @FrederickDesimpel writes:
@skysphr writes:
@Shadowblitz16 writes:
@FeatherAntennae writes:
@ror3d writes:
@furroy writes:
Not "a few". So:
|
I think this is a somewhat arrogant approach to new users - instead of trying to understand what is convenient for them, too. (It's better "expanding ones horizons", as you say, to understand how to make more people comfortable in Godot.) New users do not have to guess that non-functioning tab buttons, complicated navigation with multiple levels of nested tab lists, or absence of classic shortcuts is a carefully thought out design. Unfortunately, they may get the first impression that the interface is not professionally designed, that it doesn't support basic principles of the UX, and such people will close the editor forever. I wouldn't want that, and you wouldn't want that. That's why I'm sharing my opinion and trying to address those issues. Even if there should be "a single best workflow that fits them all", current interface doesn't communicate that workflow in a clear manner.
|
Several of your quotes are misrepresentative of the views of those involved, they do not necessarily agree with you or think the same, you see that easily but reading the context |
Again, as I said above: many quotes show that "they would prefer unified tab system. Sometimes they propose other solutions, but still going from the similar point of frustration, showing that current interface does not fit them and needs a rethinking". |
Except most of these aren't the same idea as you present, for example not:
They ask for other ways that do not merge scene and script tabs, further you mix both having a unified tab system with those wanting different behavior when clicking nodes, that's muddying the waters There's nothing arrogant with saying "you are missing the point of why this works this way" when you suggest removing a feature that exists for a reason and is helpful But again, these are still actually just a few, and most are comments, not proposals (as that what was I was talking about and asking for), and the general support for these are not good generally, many have far more or comparable down votes to up votes, so the changes are not popular If there was a broad support for this then that'd be a different situation, but adding alternative layouts or setups when that isn't widely demanded isn't a worthwhile way to spend resources |
Well, since I was quoted I would like to expand on my position. I think that there are a few issues with the current UI, and they did hinder me at first. I have more experience with coding tools and they all feature a single tab bar for everything being edited, be it scripts, text files, binary resources, database tables, etc. I like that approach in coding tools and I find it intuitive. That does not mean to me that we ought to do the same in Godot. Godot relies on inspectors, docks, and other editors a lot. It already moves things to the sides and to the bottom of the main view. This allows users to be proficient at editing multiple things at once this way. And I think for every one who doesn't find it intuitive there is at least one who does. Moving everything to tabs would go against basic UI/UX principles of the Godot editor. It may make it better for some, but it will also definitely make it worse for others. I don't think we want that. We shouldn't do a rugpull from under the existing Godot community. Instead we should do more graceful, targeted changes. I would rather we got rid of the scene tab bar entirely than mix it with something else. I would rather we moved scene selection to its natural place — the scene dock. I would rather the script list was moved to a dock as well, since it takes a lot of valuable space in the script editor on smaller displays (I have a whole graphic in one of the proposals about that). These are the things I would do to address my issues with the current system. I have actually made plugins for these changes and used them for many months when working with Godot 3 on my projects. They worked great for me, though the API available didn't allow me to fully port some of the features. I do not support this idea of unification. |
I agree that dock a based system would be much better use of screen real-estate, tabs stored horizontally take up so much more space, and scrolling in them is much less intuitive |
One must distinguish between a problem and a solution. Proposed solutions sometimes are different (as I already said earlier), but they indicate the same or similar problems. @YuriSizov can support another solution, but clearly he states: "I think that Script List is an awful control". It's part of a problem that I try to get attention to. I provided links, so everybody can check what people say and in what exactly contexts. Everything is fair. No matter if opinion is formed as a proposal or a comment. Those are still opinions of Godot users - that's relevant. |
Yuri just commented here himself so no need to speak for him |
Quotes speak for themselves. |
If you are going to continue speak for people when they comment on a proposal clarifying how they don't agree with you then I can't take your approach to this process seriously Have a nice day, I've been trying to express why the system works like it does, and that it's popular, and especially that your suggestion isn't a popular one Please respect when people say they are stepping away from a conversation, tagging them to get their attention when they've declined to continue to engage with you is rude and inappropriate I repeat, have a nice day |
@AThousandShips, so you ignored provided quotes and opinions. You may dislike my proposal, but ignoring a problem (which Yuri tries to address, too, just in a different way) is not serious. Problem remains. |
No, it's about "Sales Funnel", a well-known model of user activity. For every one who actively discusses the problem, there are more people who silently agrees, but isn't motivated enough to express the opinion. Would be interesting to have in-editor polls "vote the editor overall" or "vote this new feature". That's another proposal though. ) |
Since I was mentioned I will give my two cents, I do not think current approach is the most optimal one I have a lot of problems with it and I'm using Godot since it became public, for me it would be the best to pursuit approach from #1935 with some UI support for it That being said this is sensitive topic everyone is using editor in a different way and there has been a lot of discussions around this part of the UX. I think the best we can count on is to expand plugin API to the point which will allow us to integrate various approaches in a way which would be stable and making an impression of build-in behavior, I also think there would not be much opposition towards providing missing parts of such api we just need to identify parts which are missing and have someone determined enough to implement plugins that work the way they want them to |
Let's not delve into quick-chatting here. This repository is a discussion forum, and for a more interactive dialog I invite you all to the Godot Contributors Chat. @good-gamedev Let me put things into a bit of a perspective. Proposals are about both the established problem and the proposed solution. People disagreeing with your proposal may disagree with the problem itself, but it's not a given. In this case, I don't think there is a lot of disagreement with the problem. But there is with the proposed solution. Quoting people who also agree with the problem is useful, but they don't support your solution automatically. In fact, in many quoted cases alternative solutions are offered and supported. I understand that you wanted to dispute the claim that most people are happy with the current UX. I don't think it's possible, since, as mentioned above, happy people would rarely voice their happiness about stuff like that. They will simply use it. But that's fine, we can work with those unhappy few who have voiced their concerns. We just need to find a solution that doesn't face backlash and can get to a consensus. |
@YuriSizov, I agree with that. Thank you for your feedback. |
It would be great! @kubecz3k, thanks. |
I was quoted here. My proposal was quite different but I do think it would be okay to have an "Everything is tabs" plus "Every tab is detachable" approach just like many other software. This seems to be a good starting point to increase flexibility and familiarity for newcomers. What kills the UX in Godot is the lack of consistency so any proposal that tries to unify panel behaviors has my approval. The problem cited here is that it would occupy a lot of space is true but I think it's a plague in all the UI with A LOT of unnecessary spaces and padding and margins so should be treated separately as a UI problem. |
Because of all mentioned issues I decided to minimize usage of Godot Editor. Moving part of the workflow to an extern editor doesn't add a "unified tab list", but it helps to overcome mentioned issues:
For everybody interested how to configure Visual Studio Code for Godot project:
I understand that old-timers are accustomed to a certain interface, which is why resistance arises. They can disagree with my solution, but I was surprised that some people here even denied that problem exist. At least I (and many other mentioned people) have attracted additional attention to UX problems again. Thanks again to all participants of the discussion. :) |
More critical quotes about noted UX problems in Godot editor, regarding tabs and script panel: https://www.reddit.com/r/godot/comments/13k101v/it_always_seems_janky_to_me_that_you_edit_all/
https://www.reddit.com/r/godot/comments/16l1qg0/godot_4_code_editor_and_filter_scripts_can_be/
https://www.reddit.com/r/godot/comments/fc5cka/open_scripts_as_tabs_in_the_top_bar/
https://www.youtube.com/watch?v=p2Qr9jsmp74&t=2495s ("Waiting for Blue Robot: The Ultimate Guide to Godoverse") Pretty much sums up my impression:
|
Why did you feel like closing this proposal, even though you have more to discuss? Doing this makes the proposal harder to discover and gather further feedback for it. |
Some people in this thread denied the problem per se and its relevance to a large number of users. It was stated that UX bugs are not bugs, and that currently supported workflow is ok for them. This discouraged me from actively diving in the Godot engine development. Today I saw more opinions similar to mine and spontaneously decided to write a summary for clarity. Let it help the next adventurers in their proposals. My proposal was closed though. |
Describe the project you are working on
This is proposal about core experience of navigating in Godot Editor. For any game developed in Godot Editor.
I'm experienced programmer (~25 years), but I'm new Godot user and want to contribute. This is a UX proposal, but I'm not familiar with implementation details yet, it can be discussed separately.
Describe the problem or limitation you are having in your project
There are multiple interconnected UX problems. Each of them can be solved separately, but it would be partial fixes, so I propose a unified solution for them. So problems are:
5.1. While in Script Editor, you have to navigate through scripts via Alt-[-] and Alt-[+], but it's not the same (sometimes it requires multiple presses to skip all visited places in the single script file). Or you navigate via Ctrl+Shift+[,] and Ctrl+Shift+[.], but it's not the same, too (order of the scripts in the list, not the order you visited them).
5.2. While in Scene Editor, Ctrl+Tab works for scenes, but it scrolls through the entire sequence of opened scene tabs.
5.3. And, of course, you cannot switch between scene and script back and forth. But it's a common working process for many developers: switch back and forth between two semantically connected contexts (be it a script, scene or anything else), when you edit them together. The absence of this simple feature is hell of an inconvenience.
Yes, there are many similar proposals already. I added a new one to:
Describe the feature / enhancement and how it helps to overcome the problem or limitation
Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams
I'm new Godot user and want to contribute. This is a UX proposal, but I'm not familiar with implementation details yet, it can be discussed separately.
If this enhancement will not be used often, can it be worked around with a few lines of script?
This enhancement will be used always, it's about core experience of navigating in Godot Editor.
There are multiple UX problems. Each of them can be solved separately, but it would be partial fixes. This proposed solution solves described issues in a unified manner - and also improves flexibility and conceptual simplicity for adding more working contexts, developing more custom editors/viewers for other asset types.
Is there a reason why this should be core and not an add-on in the asset library?
Godot Editor is great in many ways, but (regarding described issues) it has UX bugs and favors counter-intuitive workflow in its core. It would be inconvenient if every developer would have to search for a custom add-on and add it to every project to solve these issues. I believe that proposed approach would dramatically improve experience and reduce frustration of Godot users, especially for new ones.
The text was updated successfully, but these errors were encountered: