godotengine / godot-proposals

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

Allow dropping assets into the scene directly from OS file manager/outside of the project folder #3173

Open GuyUnger opened 3 years ago

GuyUnger commented 3 years ago

Describe the project you are working on

Not project specific

Describe the problem or limitation you are having in your project

It would be much more natural and convenient to drop images directly into the scene (from somewhere outside the project) than having to drop it into the filesystem and then into the scene.

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

Dragging an image from my computer into the 2D view would place it as a Sprite2D, dropping it in the 3D view would create a Sprite3D. Using godot often feels too much like a programmer/data centered engine, little things like this can help make it more natural and intuitive

Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams

I understand that files have to be imported into the project first, but this is true for most other editors and almost always works

If this enhancement will not be used often, can it be worked around with a few lines of script?

-

Is there a reason why this should be core and not an add-on in the asset library?

-

YuriSizov commented 3 years ago

little things like this can help make it more natural and intuitive

This may be true, but I don't think this promotes a good project organization. Files related to the project need to be inside of the project folder, both for technical reasons and for practical reasons. I don't believe only programmers think about good organization 🙃 So I don't think it's a stretch to ask you to copy the files you are going to use into the project folder.

Here are some tips on organizing your projects: https://docs.godotengine.org/en/stable/getting_started/workflow/project_setup/project_organization.html


And automatically copying files somewhere into the project structure on your behalf is not a great idea as it comes with a lot of problems that would need to be resolved. Ultimately, a human touch is for the best here, especially if you are going to work with other people at any point.

GuyUnger commented 3 years ago

I get that you want to encourage people to keep things proper, but imo a workflow that realizes your idea as easy as possible and where you can clean up after leads to better games than a strained one because things have to be neat from the start

YuriSizov commented 3 years ago

If you just want to prototype, you can still put all your files in an unsorted pile, it just needs to be inside of the project folder. This practice is applicable to any tool. For example, any good Blender tutorial would suggest you keep intermediate files next to the blend file too.

GuyUnger commented 3 years ago

blender doesn't import files so you're less likely to lose references that way. You can drag images into flash (by far the most enjoyable engine for artists, just has a bad rep because adobe ruined it), or even any art tool like photoshop, which, obviously isn't a good comparison, but I still point it out is because those tools are made for artists and lead to good art without having to fight the software, which godot just isn't. Sure this issue specifically isn't a big deal, but only looking at problems through that programmer mindset is really what's holding the engine back imo

YuriSizov commented 3 years ago

blender doesn't import files

Exactly, it just references them in your local file system (unless you opt to bundle them later) which means you have to be aware where those files are when you move them or the blend file around/to a different system. Which is exactly the type of problem good project organization avoids.

I'm not sure why you refer to being organized as "programmer mindset". I think it's disrespectful to artists of all fields to assume they are incapable of organization. And having to put all the files you are going to use into the project folder is hardly an unreasonable requirement that limits your creative opportunities.

GuyUnger commented 3 years ago

I didn't refer to being organized as a "programmer mindset". I'm not arguing for having an unorganized project. I'm arguing for putting things together as easily and quickly as possible, and allowing the cleanup to be done afterwards. Adding this feature doesn't make projects unorganized, it just means that the organization has to be done after dropping in the image, instead of having to organize first and then make what you want to make. And the "programmer mindset" argument is just more general about most of the decisions made in developing godot. It's not that the decisions made are bad, but they're very rarely in favor of being a great tool for artists, because artists aren't making the tool and the programmers making it don't take their needs serious

YuriSizov commented 3 years ago

I am sorry that you feel that way, but I don't think that this issue is a good example of that situation.

You kind of are arguing for less organized projects to save a second on copying a file yourself. If we allow files from the outside of the project folder, it makes the project structure disjointed, makes it harder to track which files are in use, where they are located and if we have a permission to open them at all. We have a lot of newcomers who have trouble keeping track of things as it is, and this would open more opportunities to mess things up. From this point of view, this has nothing to do with who makes the app. It's about the balance between making power-users happy and keeping inexperienced developers from getting lost.

And if we automagically copy and import files behind the scenes, then we have to start making arbitrary decisions about what users want to happen when this happens. Where do they want the files to drop, what do they want to do with duplicate names, etc. These problems are all resolved if you don't make Godot editor do this for you and do it yourself, exactly the way you want it. This may be my programmer's mindset speaking, but I don't find this unreasonable either. You can just copy all the files to the root folder if you want to organize it later. I don't see why this would be stopping anyone artistically inclined. Do you not keep your assets all together already?

GuyUnger commented 3 years ago

just a bit more of where I'm coming from, I do programming and art, when I'm in programmer mode the engine is awesome, some small issues here and there, but mostly very well thought out, probably the most nice and clean experience of any game engine, but when I put on my artist hat suddenly it feels like nothing works and I keep having to fight the software with almost every little action. The points you bring up are all valid, but could also be resolved with some compromises if this easy of working was a high priority. There's no perfect solution, but in my experience the tools that are the nicest to work with do make these compromises, it sometimes creates small problems but leads to an altogether better experience, and therefore better work. Files could be put in the root folder, double file names can bring up a prompt to give it a unique name. I think your point of newcomers is actually more in favor of my suggestion. People are used to dropping images into their work from art tools, docs, presentations etc., it would be a more seamless transition. I guess this probably isn't going to get implemented, and it's not a big deal, you bring up fair points, but I do hope more thought will go into making the engine more intuitive and artist and beginner friendly. And I think you'll start seeing more fun games, especially from beginners, when you do

YuriSizov commented 3 years ago

I guess this probably isn't going to get implemented

So far it was only me and my opinion. You can still get more support, especially if this is important to people who are poorly represented in our community (and thus aren't immediately here to read and support your idea).

Xrayez commented 3 years ago

Reading the discussion, I think it doesn't make much sense to fixate on what kind of workflow will lead to disorganization. If you're disorganized in the first place, a tool that one uses won't help much anyone to get more organized, unless you want and/or need to be organized.

Regarding the debate of "programmer vs. designer/artist" here, I'd like to quote Ariel Manzur (one of the Godot's project founder, quote from https://www.pocketgamer.biz/news/63746/empowering-designers-with-adventure-framework-escoria/):

"It's our responsibility to give designers and artists something they can learn." - Ariel Manzur

This is just to give a hint on Godot's development principles and/or priorities. So I suggest that we focus the discussion on making Godot more designer-friendly instead. While concerns like project organization can be raised, those concerns shouldn't end up being the major reasons to disfavor the proposal, in my opinion.

Xrayez commented 3 years ago

Commenting on:

I'm not sure why you refer to being organized as "programmer mindset". I think it's disrespectful to artists of all fields to assume they are incapable of organization. And having to put all the files you are going to use into the project folder is hardly an unreasonable requirement that limits your creative opportunities.

@pycbouh I have no clue how you interpreted this as being "disrespectful", to be honest. I have re-read what @GuyUnger said and couldn't find anything like that, so yeah I testify that's not what @GuyUnger meant to say at all.

Having said that, @pycbouh I suggest paying more attention, that would be respectful.

I guess this probably isn't going to get implemented

So far it was only me and my opinion [emphasis mine]. You can still get more support, especially if this is important to people who are poorly represented in our community (and thus aren't immediately here to read and support your idea).

Please don't get discouraged just because of this.

YuriSizov commented 3 years ago

So I suggest that we focus the discussion on making Godot more designer-friendly instead.

From talking to other artistic people that I know that work in the field, as well as people working in teams with artists and designers, I have to say that there is no correlation between this proposal and being "designer-friendly". Any attempt to make such correlation only brings stereotypes about artists in the spotlight (hence the being disrespectful aspect) which are not a good reason to make the change.

YuriSizov commented 3 years ago

I've come to realization that we already allow dragging files from the outside of the project and they will automatically be copied to the selected project directory (or the root directory if nothing else), and imported if required. So this may actually be doable. I guess there are 2 technical difficulties with that:

If we can solve them, this may actually be worth implementing.

me2beats commented 2 years ago

I think it would be cool only as an option I have cases when I don't want to add the files automatically to the scene.