Skip to content
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

Live Edit and dockable game window #2338

Closed
draxdeveloper opened this issue Aug 5, 2015 · 43 comments
Closed

Live Edit and dockable game window #2338

draxdeveloper opened this issue Aug 5, 2015 · 43 comments

Comments

@draxdeveloper
Copy link

since we have a live edit, would be a nice ideia that we can dock the game window in the editor window, so we don't need to do alt+tab or two screens...
Also, since i am on the docking topic i would like to be able to undock the script and debug window, it would be useful to the ones with two screens (not my case, but still would be good)

@godotengine
Copy link
Collaborator

I'd like to try that, but honestly I don't have the slightest clue about
how to do it

On Wed, Aug 5, 2015 at 2:58 PM, David Paiva notifications@github.com
wrote:

since we have a live edit, would be a nice ideia that we can dock the game
window in the editor window, so we don't need to do alt+tab or two
screens...
Also, since i am on the docking topic i would like to be able to undock
the script and debug window, it would be useful to the ones with two
screens (not my case, but still would be good)


Reply to this email directly or view it on GitHub
#2338.

OkamStudio

@mamarilmanson
Copy link

please do consult other developers... maybe from other applications... they may have been in the UI OSS business for years...

The thing I noticed about godot is that it's like it came out of the cave without knowing the latest/modern/advance trends with the UI... please update... if starting over is the key, please do... :)

@reduz
Copy link
Member

reduz commented Aug 6, 2015

Dude I'm not stupid, If you know other applications that can dock a
separate process be my guest, as neither Unreal or Unity do this.

On Wed, Aug 5, 2015 at 10:28 PM, Manson Mamaril notifications@github.com
wrote:

please do consult other developers... maybe from other applications...
they may have been in the UI OSS business for years...

The thing I noticed about godot is that it's like it came out of the cave
without knowing the latest/modern/advance trends with the UI... please
update... if starting over is the key, please do... :)


Reply to this email directly or view it on GitHub
#2338 (comment).

@mamarilmanson
Copy link

why limit to Unreal and Unity?

@mamarilmanson
Copy link

also he might mean this one...
floatingwindows

@mamarilmanson
Copy link

@reduz
Copy link
Member

reduz commented Aug 6, 2015

As I said, Godot runs the game in a separate process, while Unity and
Unreal do not. If you can find for me information on how to dock a
separate process in another OpenGL APP, that works in all platforms, I
promise that I will implement it.

On Wed, Aug 5, 2015 at 11:14 PM, Manson Mamaril notifications@github.com
wrote:

or this one...

https://docs.unrealengine.com/latest/INT/GettingStarted/HowTo/PIE/index.html

[image: pie2b]
https://cloud.githubusercontent.com/assets/3820189/9102371/e0694d2c-3c23-11e5-9f48-8ee4b9c77068.jpg


Reply to this email directly or view it on GitHub
#2338 (comment).

@mamarilmanson
Copy link

"Godot runs the game in a separate process, while Unity and Unreal do not." That would be a better explanation. It's easier for me (and maybe for them) to accept that it's hard to implement...

@reduz
Copy link
Member

reduz commented Aug 6, 2015

I wouldn't mind implementing it, but i seriously doubt this is possible.
Maybe it is though through the compositing API in the different OS
versions, but it's definitely not that easy

On Wed, Aug 5, 2015 at 11:21 PM, Manson Mamaril notifications@github.com
wrote:

"Godot runs the game in a separate process, while Unity and Unreal do
not." That would be a better explanation. It's easier for me (and maybe for
them) to accept that it's hard to implement...


Reply to this email directly or view it on GitHub
#2338 (comment).

@mamarilmanson
Copy link

does MAC have some similarities with linux under the hood? because If I am correct also does this on mac...

@godotengine
Copy link
Collaborator

not for the graphics part

On Wed, Aug 5, 2015 at 11:30 PM, Manson Mamaril notifications@github.com
wrote:

does MAC have some similarities with linux under the hood? because If I am
correct also does this on mac...


Reply to this email directly or view it on GitHub
#2338 (comment).

OkamStudio

@mamarilmanson
Copy link

I mean the thing where they do the editor and game in the "same" process...

but still about undocking tabs would be great... like now... :)

@mamarilmanson
Copy link

I just wonder why ui was implemented this way (this is a different app btw, just to illustrate similarity), only inside the application:
lmms

and not like the image of unity above where the tab is floating...

@reduz
Copy link
Member

reduz commented Aug 6, 2015

It's simpler to do the way Godot does it, and also has some advantages such
as better remote debugging and live editing

On Wed, Aug 5, 2015 at 11:37 PM, Manson Mamaril notifications@github.com
wrote:

I just wonder why ui was implemented this way (this is a different app
btw, just to illustrate similarity), only inside the application:
[image: lmms]
https://cloud.githubusercontent.com/assets/3820189/9102614/ffb0a592-3c26-11e5-8ec3-02cf4c68dbce.png

and not like the image of unity above where the tab is floating...


Reply to this email directly or view it on GitHub
#2338 (comment).

@mamarilmanson
Copy link

Technically it's good... as the original post says it's better to be able to undock... and add minimize button and close... like unity and adobe... to cater to 2-monitor and easy customization...

Floating window from adobe:
04

Workspace presets from adobe:
floatingwindows2

@mamarilmanson
Copy link

Oh yeah... how's the tinkering with Overlap2D?

@Fiona
Copy link

Fiona commented Aug 6, 2015

Well you can definitely intercept OpenGL calls from a child process and run them in the parent process, it's how debuggers work. Here's an open source project that does it: https://github.com/dtrebilco/glintercept

I guess you would have to two-way this by throwing input events down to the child process too.

Although I do not appreciate @mamarilmanson tone at all and think he is being frankly rude, this is not an impossible task. Though it is obviously equally non-trivial.

@Fiona
Copy link

Fiona commented Aug 6, 2015

I've just come across this, though I don't even know if the extension really exists anymore.

https://www.opengl.org/registry/specs/EXT/import_context.txt
http://www-f9.ijs.si/~matevz/docs/007-2392-003/sgi_html/ch06.html#LE13528-PARENT

@mamarilmanson
Copy link

I'm not trying to be rude... I apologize for the impression I made...

@mamarilmanson
Copy link

@Fiona ~ I was curious about this one: https://github.com/dtrebilco/glintercept
it says "GLIntercept is a OpenGL function call interceptor for Windows"
windows only?

@draxdeveloper
Copy link
Author

Gimp don't have a version that have all windows in one window and another
that have all floating windows?

2015-08-06 8:37 GMT-03:00 Manson Mamaril notifications@github.com:

@Fiona https://github.com/Fiona ~ I was curious about this one:
https://github.com/dtrebilco/glintercept
it says "GLIntercept is a OpenGL function call interceptor for Windows"
would it be possible for the devs to make it cross platform?


Reply to this email directly or view it on GitHub
#2338 (comment).

David Aguiar de Aquino Paiva
Dive sistemas

@mamarilmanson
Copy link

@draxdeveloper ~ wait? what??? O_O

I mean... I don't get it... -_-

@kubecz3k
Copy link
Contributor

kubecz3k commented Aug 7, 2015

People please don't ask for nearly impossible tasks, please. There is only two main devs of godot who are burning their free time to bring this wonderful engine to us. Godot games are running in different process and that means they are practically different programs than editor from the operating System point of view. The thing what you are asking for would be more suitable for some kind of scientific research then "just implement this", don't be greedy, live editing is working really and it's really awesome this feature is available. Also @mamarilmanson I don't think it's good idea to start writing Godot right from the beginning because you don't like the ui or it's core architecture. There are other engines around I would recommend to try them if you don't like Godot. Also it's OSS project and this mean you guys can contribute, so you can always try to implement nearly impossible feature you want.

@draxdeveloper
Copy link
Author

2015-08-07 6:49 GMT-03:00 kubecz3k notifications@github.com:

s than editor from the Operating System point of view. The thing what you
are asking for would be more suitable for some kind of scientific research
then just implementation, don't be greedy, live editing is working really
well the way

Sorry, i dind't know the complexty

David Aguiar de Aquino Paiva
Dive sistemas

@freemanfromgodotengine
Copy link

@mamarilmanson commented 2 days ago

The thing I noticed about godot is that it's like it came out of the cave without knowing
the latest/modern/advance trends with the UI...

Really, it's about trends now?
I don't think so.

I would rather prefer Godot's devs to work on some new functions or got few more bugs squashed out or let them take time and rewrite audio engine - if they really had no other things to do ;) - than to resolve not existent "fashion" UI problem, that is suppose to make Godot look "modern".

Lets face it. Running the game in separate window is completely fine, especially if you can now run your game on android and edit it real-time.

@cozybuild
Copy link
Contributor

@freemanfromgodotengine no, UI is important as well. Best example was Blender < 2.5. It was horrible to use so it was hard for CGI Artists to switch to Blender. And a big community report more bugs, create more plugins or documentation.

@mamarilmanson
Copy link

^ What I was saying...

@seadra
Copy link

seadra commented Aug 9, 2015

Dude I'm not stupid, If you know other applications that can dock a separate process be my guest, as neither Unreal or Unity do this.

It is actually quite doable, XReparentWindow does just that. SMPlayer, for instance, has been doing that for a long time.

But the problem is godot's internal windows aren't "real" windows that the window manager is aware of.

@godotengine
Copy link
Collaborator

indeed. I think it might be possible to do with compositing, but i'm not
sure

On Sun, Aug 9, 2015 at 2:39 PM, seadra notifications@github.com wrote:

Dude I'm not stupid, If you know other applications that can dock a
separate process be my guest, as neither Unreal or Unity do this.

It is actually quite doable, XReparentWindow does just that. SMPlayer, for
instance, has been doing that for a long time.

But the problem is godot's windows aren't "real" windows that the window
manager is aware of.


Reply to this email directly or view it on GitHub
#2338 (comment).

OkamStudio

@reduz
Copy link
Member

reduz commented Aug 9, 2015

@mamarilmanson : I honestly don't give two fucks about modern trends, and usability wise I don't really see any advantage of having your game in a docked window. It's one of those features that I would add if it was easy to do, but not worth the effort otherwise.

In the case of Unity, if you have a single monitor, it's unusable when they are split in two and in the case of Unreal, the editor window is replaced by the game. So in the end, it's the same thing. You are always focusing in one of the windows anyway, so doing alt-tab won't kill you. It just works fine.

As I said before, I worry the most about actual usability issues of people working on projects and using Godot, not so much about those who say they would use if it worked this way or another, or if it supported C#, drag & drop, etc.

I need good examples of how usability is a problem in the current way and how the new way makes it better, arguments such as "Unity does it this way and I like it" or "This way uses more modern conventions" don't work in my book even if valid. You need to get more technical and refer to real, actual problems with existing use cases.

@mohaalak
Copy link

mohaalak commented Aug 9, 2015

I think make game window dockable is wasting time.
On Aug 10, 2015 12:40 AM, "Juan Linietsky" notifications@github.com wrote:

@mamarilmanson https://github.com/mamarilmanson : I honestly don't give
two fucks about modern trends, and usability wise I don't really see any
advantage of having your game in a docked window. It's one of those
features that I would add if it was easy to do, but not worth the effort
otherwise.

In the case of Unity, if you have a single monitor, it's unusable when
they are split in two and in the case of Unreal, the editor window is
replaced by the game. So in the end, it's the same thing. You are always
focusing in one of the windows anyway, so doing alt-tab won't kill you. It
just works fine.

As I said before, I worry the most about actual usability issues of people
working on projects and using Godot, not so much about those who said they
would use if it worked this way or another, or if it supported C#, drag &
drop, etc.

I need good examples of how usability is a problem in the current way and
how the new way makes it better, arguments such as "Unity does it this way
and I like it" don't work in my book even if valid. You need to get more
technical and refer to real, actual use cases.


Reply to this email directly or view it on GitHub
#2338 (comment).

@MarianoGnu
Copy link
Contributor

better is dual monitors but, come on, do you really want to change tabs all the time? or see the game squashed while editing? no, makes more sense to invest in a monitor or just press alt+tab, maybe it's worth to pause the game while editor window is active, so you wont lose a physic reaction or something, but personally, i dont see why limit the game window position to a space inside of the editor is better...

@Fiona
Copy link

Fiona commented Aug 10, 2015

Okay here's a real suggestion:

Get the client to remember which screen they were last on, where they were previously and what size window they were because currently they seem to open as default every time (at least for me on Arch Linux using Awesome VM, though it could be Awesome messing with me, please correct me if this is the case.)

With this then multiple monitors becomes a truly viable option otherwise it's still a pain in the arse usability wise to have to keep dragging it on to the other monitor every time you open.

@reduz
Copy link
Member

reduz commented Aug 10, 2015

I'm getting a second monitor to be able to add this feature :P

On Mon, Aug 10, 2015 at 8:25 AM, Fiona Burrows notifications@github.com
wrote:

Okay here's a real suggestion:

Get the client to remember which screen they were last on, where they were
previously and what size window they were because currently they seem to
open as default every time (at least for me on Arch Linux using Awesome VM,
though it could be Awesome messing with me, please correct me if this is
the case.)

With this then multiple monitors becomes a truly viable option otherwise
it's still a pain in the arse usability wise to have to keep dragging it on
to the other monitor every time you open.


Reply to this email directly or view it on GitHub
#2338 (comment).

@Fiona
Copy link

Fiona commented Aug 10, 2015

<3

@punto-
Copy link
Contributor

punto- commented Aug 10, 2015

@reduz you can borrow one of my monitors at the office, I'm not using them atm :p

@0azizi0
Copy link

0azizi0 commented Aug 10, 2015

If this feature alone will take so much time and resources, then leave it.
This is not better than easier exporter for ios or enhanced networking.

@mohaalak
Copy link

Plus one for enhanced Networking

On 11 August 2015 at 02:06, 0azizi0 notifications@github.com wrote:

If this feature alone will take so much time and resources, then leave it.
This is not better than easier exporter for ios or enhanced networking.


Reply to this email directly or view it on GitHub
#2338 (comment).

@draxdeveloper
Copy link
Author

wow, a lot of discussion here o0
Like i said before it was just a suggestion, i don't had idea of the complexity of the said suggestion.

@silverkorn
Copy link

@draxdeveloper Unfortunately, some wars are started by totally innocent person without any bad intentions 😞 (Gamergate?)

@reduz
Copy link
Member

reduz commented Dec 31, 2015

It seems the right way to do this is via GL_NV_copy_image extension, but it does not seem to be widely supported (there does not seem to be anything like this on Intel for example, but most AMD chipsets support it). In any case, there does not seem to be a fast way to do this at the moment, Vulkan may provide a solution but we are a long time from that. As such, closing for now.

@reduz reduz closed this as completed Dec 31, 2015
@JonathanDotCel
Copy link

Adding some context as there are some newer issues on the subject, but this remains one of the top google results:

godotengine/godot-proposals#1864

Which was then closed in favour of:

godotengine/godot-proposals#7213

@mamarilmanson
Copy link

7 years ago... XD

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests