-
-
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
Add support for multiple displays/screens/monitors in Godot editor #28
Comments
Hoping to be able to implement this for 4.0. The Vulkan back-end already supports multiple windows on the API side, but it needs to be implemented on every bakck-end. It will be quite a challenge, though. |
I can imagine it's going to be a lot of work. 4.0 would be great timing and would definitely improve usability of the engine for many people. It was a thing I missed the most when I switched from game Maker 2 |
I like the idea. However I would like to be able to popup the editor window from the main editor. |
I think it is a feature that we all need but something that should be improved is the UI depending on the workspace we are using. For example, if a window has the text editor, it is not necessary to observe other buttons depending on another type of work or windows within that workspace. |
+1 here for the multiple monitor support. Just started using Godot and love the engine so far - but the lack of multiple monitor support (through whatever method) is a little frustrating. I'm constantly resizing windows to find stuff in the current layout. Personally, I'm a fan of floating windows. |
With multi-window support now enabled for 4.0, does this make this proposal as-is redunant? |
Partially fixed by godotengine/godot#37317. |
Has someone already mentioned multiple 2D/3D view in this proposal? So that we can see different parts of the game at the same time? A bit similar to blender's multiview.
|
I don't think those individual viewports were considered to become single windows though |
I hope we can do this on 4.0, because I tried to use VSCode as an external editor to have the editor on another monitor, but the issue #10946 prevented me from using it. |
for linux this would work better implementing it together with wayland, see #990 (comment). |
Supporting Wayland is irrelevant to this proposal. This proposal can be implemented independently of Wayland support. |
Of course, i mean just a little better |
I love Godot's text editor. I tried to work with Geany instead to be able to code on another screen, but I always keep coming back to Godot's internal text editor. It's really awesome. As a workaround to this issue (not being able to "modulate" the engine over multiple screens), would it to be possible to create a command line switch to disable all the default features but the text-editor? This way we could use another instance of Godot as an external text editor on another screen. Thank you in advance. |
Unfortunately, this is easier said than done for two reasons:
|
Couldn't that be solved adding the .--sc-- file (can't figure out how to underscore here) inside Godot's folder? When I open the same project on multiple instances at the same time, I can indeed edit and save files. When switch back to the original instance it displays a confirmation dialog: "The file whatever.name is newer on disk. What action should be taken?" Among the edited files is, as you said, project.godot. Just a small annoyance but kinda works. That's why I thought it could be used exclusively as an external text editor. Thank you. |
The |
@Zylann good points Something that I found missing in almost any Engine is the ability, to instead of passing through an established Editor pipeline, allow you to build/customize your own. So let all workspaces | editors | views | dockers | panels be detachable-attachable, allowing for craft interesting layouts using building blocks, where you can have all the stuff where you want it, either in separated windows, virtual desktops or displays. It can be done by modifying open source editors and by building your own with libraries (a good example is the Rust echo-system). But when its about to an "out-of-the-box" way where it uses a well tested workflow with a good UX, not aware that such thing can be found. Being able to customize all yourself without worrying about breaking the editor and bridge well with the underlying engine sounds like a dream setup for me. Including plugins (here the barrier between plugin and not could be diffuse). When forcing a specific workflow or layout, a lot of flexibility gets lost, and the most of the problems of fitting, coupling and compatibility raise. |
So I've known that this has been a highly requested feature for years in Godot, but until Godot 4 it hasn't really been possible, so I decided to take a stab at it now just to see what I could do. I think I've gotten pretty close with this. Here's an early prototype I'm working on: Floating.Script.Window.mp4This isn't perfect, and it's just a proof of concept at the moment. Still has some bugs, but works quite well nonetheless. I don't think anything like this would even be possible in Godot 3 though, only Godot 4. Written in native C++ source code. |
@SirQuartz Looks good. You can create an MR for it. People will pitch in to help. |
I agree with this proposal and I want to share some ideas on this. I think there are some basic UI-UX design problems on the top-center bar.(2d,3d,Script, Assetlib...extension features) The top bar must be a embedded window task bar. For example If I want to use script windows as a seperate window, I should be able to break it out of the top panel. The same scenario must also apply to the items in the other top panel.(2d,3d,Assetlib...etc) I should be able to use it as a separate window and even close it if I want. If I want to reopen the windows I have closed, there must be a "Windows" section to the top context menus (Scene, Project, Debug ... section) . When we click on the "Windows" menu, these usual windows can be reopened and used.(or close) This scenario is also intuitive for the end user. If I close all windows what will be happen? Is it a problem for new users? I hope these ideas will help this proposal. |
Just FYI, I implemented popout in one of my plugins: Zylann/godot_voxel#414 (comment), it's working for standalone windows. |
Awesome! |
This is amazing, can we already use it in a plugin or something ? Is it only for 4.0 ? |
This was implemented for the script and shader editors by godotengine/godot#62378 EDIT: Changed milestone for 4.x for tracking support for multiple displays for other parts of the editor, but note that the most important part, the script and shader editors, are supported in multiple windows as of Godot 4.1. |
That's awesome! It's working great! There are still some UI/UX issues to be addressed, like other comments here suggested, but it's a great start. One of them is that when I hit save, the focus shifts to the main window, and then quickly shifts back to the floating script editor. It should be a non-issue, but it's weird when I try to put both windows in different "Desktops" (using Windows OS). For instance, I'm editing the script in a floating window on Desktop 2. If I hit save, or run, or any other regular shortcut, the shift of focus takes me back to Desktop 1, and then gets back to Desktop 2 again, with a quick animation made by the OS, which is really jarring. However, it's a pretty large step already, I just added this comment to document the issue. Thanks for the work! |
Describe the project you are working on:
I am working on a simple platformer game Mario clone right now just to learn how to use the engine.
Describe how this feature / enhancement will help your project:
My set up has 2 monitors with possibility of expanding in to 3 in a future. I would like the ability for Godot editor to have multiple un-dockable windows I can move around on my set up. Ideally I would be able to save configuration as a preset. This would make task of switching between room editor and code editor significantly easier. I could also have my inspector open in another screen without taking my monitor real estate.
Generally it would help me to have more things visible without needing to keep switching between them. I could have player scene open on right screen and level scene open on 2nd scene. I could have parent object open in one and child in other so I can better see all the available functions etc. Possibility with this are endless.
Show a mock up screenshots/video or a flow diagram explaining how your proposal will work:
I would see it working like here with Game Maker workspaces
Describe implementation detail for your proposal (in code), if possible:
I have not enough coding experience to give technical knowledge on how to accomplish what I request but I expect this would require significant rework to editor code itself.
If this enhancement will not be used often, can it be worked around with a few lines of script?:
This is enhancement that I would use 100% of a time while working on any project as it would help me to utilise more of a real estate I have in my current set up that is now just wasted space.
Is there a reason why this should be core and not an add-on in the asset library?:
It is something that majority of users would find useful it is a feature requested since Godot 2.1 days and if not in use would not interfere with single monitor workflow for others.
Bugsquad edit (keywords for easier searching): window, pop out, popout, pop up, popup, multi-window, multiwindow, multi-screen, multiscreen, multi-display, multidisplay, multi-monitor, multimonitor
The text was updated successfully, but these errors were encountered: