Full editor UI overhaul to make almost everything an independent tab or window #9034
Replies: 1 comment 2 replies
-
I’m honestly surprised this proposal hasn’t gotten more attention - both from the community and the maintainers. The problems with the current UI were brought up in countless issues here and on other platforms, and this proposal has the potential to actually solve pretty much all of them in a very meaningful way. The idea of having a more unified, modular tab system just makes so much sense. The current setup, with its different types of tabs and panels that don’t always interact intuitively, feels restrictive and clunky. Being able to open scenes, scripts, and even debugging tools side-by-side without constantly flipping back and forth would be such a game-changer for workflow. I can imagine how much easier it would be to juggle multiple tasks - debugging, editing a script, tweaking a node - without feeling like you’re fighting the editor itself. That said, I completely understand if the maintainers don’t have the time to take on something as big as this right now. A UI overhaul of this scale is no small task. But even if it’s not something that can be prioritized officially, it would be great to at least get an opinion on the idea. If it’s something the maintainers aren’t opposed to, maybe someone else in the community would be inspired to pick it up and start working on it. |
Beta Was this translation helpful? Give feedback.
-
I've seen a few discussion of Godot's UI that touch on similar problems but not one that specifically focuses on this. For background, I've not used Unity before, but do have a few years of professional full-time experience with UE4. I also predominantly use a Mac, which may be influencing my thoughts here.
Main problems
2D
/3D
/Script
/AssetLib
horizontal super-mode-switcher at the very topOutput
,Debugger
,Search Results
,Audio
,Animation
&Shader Editor
.Scene
,FileSystem
,Import
,History
,Inspector
&Node
. These can be moved & docked elsewhere but only as side-panels. Note that several of these are context-dependent. E.g. theInspector
tab can show details for a file selected in theFileExplorer
tab or a node selected in theScene
tab. Others, such asImport
orNode
simply don't make sense unless something of the relevant type is selected in one of the other tabs.Output
at the same time as aDebug
tab. Note that since there are nested Debug tabs, this will often require two clicks to return to the debug view that you were previously looking at.(note that where I refer to a "tab" in the UI, it may be referring to the clickable button and / or the individual "view" that appears when that button is clicked)
Proposed solution
This is a high-level proposal that I think would address most of these issues but I suspect may not be the easiest to implement. You can probably see where I'm going with this but I think what the UI really needs is to step away from everything being quite so "modal" or "singleton-like".
Instead I'd propose there be a single unified tab bar running the full width of (each) Godot window which can contain any number of different kinds of tabs. With a few exceptions I think that pretty much every one of the different kinds of "tabs" mentioned in the previous section could be treated like one of these top-level web browser tab.
This would be supported by common standard modern UI navigation features such as:
Some tabs it may still only ever make sense to ever have one of (e.g.
Output
) and there are some tabs that users may not care about. UE4's solution to this is to have a top-level "Windows" menu item with a list of possible singleton-like windows which allows the user to go straight to any of these & also shows tick marks next to those that are already open somewhere. Some are grouped under sub-menus in order to keep things nicely organised & it even provides up to 4 different (singleton-like) "Find in Blueprints" windows so that you can keep the results of 3 previous searches open while doing a fourth.Also, some of the current tabs do genuinely only make sense as a part of a particular "mode" and so probably wouldn't make sense as being top-level tabs. I'm thinking things like the
Scene
(scene tree),Inspector
&Node
tabs which should probably each be components of other top-level tabs. I.e. each 2D or 3D scene's tab would have its ownScene
,Inspector
&Node
panel. So if you had two scenes open at the same time, you could select a node in each & inspect both simultaneously. Switching to a tab with a script on the other hand wouldn't show any of these by default.Note that this proposal is similar to how both UE4 & Blender do their editor window management & I'm not necessarily proposing copying either in full, but I think there are good arguments for moving in this direction & I'm keen to hear what people think, whether for or against something like this.
Of course there may be good reasons for the current UI window management philosophy that I'm unaware of but it's by far been my biggest frustration with using Godot so far.
Beta Was this translation helpful? Give feedback.
All reactions