godotengine / godot-proposals

Godot Improvement Proposals (GIPs)
MIT License
1.15k stars 97 forks source link

Reuse the same instance of Godot for both the project manager and the editor #2870

Open AaronRecord opened 3 years ago

AaronRecord commented 3 years ago

See https://chat.godotengine.org/channel/editor?msg=4DRXqpP8wD3Hzqvh5

Screenshot for convenience

Describe the project you are working on

Godot

Describe the problem or limitation you are having in your project

Since the godot editor is a godot project (in a sense), I think it'd make more sense for the project manager to be a "scene", and the main editor to be another "scene", in the sense that you can switch between the 2 without a separate instance of Godot being created. Instead, the project manager would just maximize the window and "change its scene" to the editor.

Describe the feature / enhancement and how it helps to overcome the problem or limitation

Advantages of this change:

timothyqiu commented 3 years ago

IINM, the separation of instances is due to the same reason that switching GLES3/GLES2 backend needs a restart. i.e. The project manager might be using a different backend than the project itself.

AaronRecord commented 3 years ago

IINM, the separation of instances is due to the same reason that switching GLES3/GLES2 backend needs a restart. i.e. The project manager might be using a different backend than the project itself.

That's a good point. Since there's currently only 2 renderer's in 3.x and 1 in master, there's a good chance that they'll be using the same renderer, but even if they aren't, if it'd be possible to change the renderer while still using the same process (I'm not very familiar with graphics api's/the specifics of processes so I don't even know if that's possible).

Calinou commented 3 years ago

if it'd be possible to change the renderer while still using the same process (I'm not very familiar with graphics api's/the specifics of processes so I don't even know if that's possible).

This is technically possible, but it's difficult to implement. Unlike some other engines out there, Godot doesn't have a way to fully reinitialize its renderer without quitting the process.

ghostbutter-games commented 2 years ago

It would be great if we could revisit thinking about this, because right now this breaks the dock functionality on macOS, effectively preventing the icon to be manually placed, because it has to be redone every time one starts the editor.

I know, it seems like a minor gripe, but it's kind of hugely frustrating as that's something every single user on macOS encounters every time they start Godot

Also, if this would improve overall startup time, that sounds like a really nice extra benefit, as well.