godotengine / godot-proposals

Godot Improvement Proposals (GIPs)
MIT License
1.1k stars 69 forks source link

Allow to discuss and present ideas freely for core and/or plugin development #47

Closed Xrayez closed 4 years ago

Xrayez commented 4 years ago

The bar is too high just to spark ideas here

Continuing an off-topic discussion from https://github.com/godotengine/godot-proposals/issues/39#issuecomment-529095104.

Note: I'm personally against segregation but there seems to be no consensus with maintainers so I'm just seeking alternatives.

Example repository

godot-ideas

It mimics the process of godot-proposals without too much restrictions, and users are pointed to this repository if they feel like they could get approval from core developers, else it would be a nice place to discuss stuff without imposing too much rules.

Problem

We've established previously that proposals could be classified as:

The "Nice-to-have" type of proposals, based on the official guide and feedback, are going to be closed eventually without them being considered for review, because allegedly they don't fulfill the actual needs and fix problems that users are dealing with on day-to-day basis.

While I completely understand the amount of "low-quality" proposals that are going to spawn if we waive the restriction of having to fill out every single question, the need to express ideas and be heard still exists, and we'd rather avoid dealing with frustrated users.

The listed community channels aren't as functional or reliable as they could be, see https://github.com/godotengine/godot-proposals/issues/47#issuecomment-529203868.

Human factor 🙂

  1. I guess people wouldn't like their proposals to be "closed" even if they can be reopened by maintainers if deemed satisfactory or needed, there's enough of examples how this makes people discouraged and rather frustrated.

  2. The feeling of guilt that people feel starting random and general-purpose discussions by having to type "wall of text" godotengine/godot#19486. This can be avoided with dedicated place for that.

Proposal

There should be an official repository for people to allow to discuss their ideas there. Maintainers are free to "ignore" these ideas so they don't really have to put much effort by having to read and understand them. Don't feel like users are demanding you to make it happen. Moreover, such repository would be a place for people to ask the questions like:

Controversial topics would be a perfect fit for this.

Such repository wouldn't necessary be targeted for Godot core, but a place for people to kind of request independent developers to write modules/plugins for them, but it needs to be centralized. An author is free to open and close an issue on his own.

Also see alternative approach/reasoning in https://github.com/godotengine/godot-proposals/issues/47#issuecomment-529388737.

A list of proposals with mentioned issues or criteria (if not relevant, see first edits in mentioned issues) * #58 - plugin-candidate. * #55 - just an idea, proposal template disregarded. * #63 - the author is not sure whether it could be made as plugin or could be part of the core, avoiding presenting more ideas + template ignored. * #65 - nice-to-have, possibly plugin-candidate, met with disapproval which could otherwise be welcomed.
willnationsdev commented 4 years ago

Here's the icon we made for the Godot Extended Libraries organization. Feel free to use it if you want. The idea was to be a spellbook of some sort: recipes for executing magic (libraries and all).

icon_gel (1)

Xrayez commented 4 years ago

@willnationsdev I think this makes perfect sense, you've contributed a fair share of stuff to Godot community-wise and you've already set it up, I could simply transfer godot-ideas repo there, if you're willing to rename GEL to godotengine-community, what do you think?

willnationsdev commented 4 years ago

@Xrayez Here ya go! https://github.com/godot-community

Edit: Oh, whoops. Followed the godot- convention. Oh well.

willnationsdev commented 4 years ago

Now, I don't wanna have to be the only "moderator" for the community, so if there is someone who wants to be super extra responsible and not horribly mess with other people's code in the repo.....now's the time to volunteer. lol

Xrayez commented 4 years ago

Followed the godot- convention

Might be better as it's non-official in fact.

Transferred just fine I think: https://github.com/godot-community/godot-ideas

willnationsdev commented 4 years ago

Given all this, I think that if we update the godot-ideas proposal template and share the godot-community and godot-ideas stuff around social media, we should be able to gather new interest in the space. I'll put together a post for Reddit and the FB group.

I think this Proposal is more or less closeable at this point.

Xrayez commented 4 years ago

Yeah, lets see how it goes though so that maybe some godot-proposals issues can be possibly revealed here (or people get redirected at first stages), but I'm fine if anyone closes this at this point.

clayjohn commented 4 years ago

Also, if successful we can link to it into the community channels doc and on the readme here. :)

willnationsdev commented 4 years ago

Here's the Reddit post: https://www.reddit.com/r/godot/comments/d71adf/github_organization_godotcommunity_1_new_home_for/

amisner2k commented 4 years ago

This is amazing you guys! I love the solution you all came up with. I love what you guys are doing here.

willnationsdev commented 4 years ago

@Calinou Is there any hope of creating a reference to godot-ideas' existence in the issues template(s) for godot and/or godot-proposals, in addition to godot referring people to godot-proposals? That might help keep people from falling through cracks. Not sure if that's desired though as it may also lend credence to some association with the godotengine organization. I feel though that if unacceptable Issues were to be migrated wholesale to godot-ideas as appropriate, then that kind of collaboration might engender some long-term relationship worthy of that. Figure I'd bring it up for discussion anyway.

willnationsdev commented 4 years ago

In the interest of avoiding any confusion with official godotengine channels, I have renamed the organization back to godot-extended-libraries and will leave it at that for now. We need to let @akien-mga and @reduz take a look at this Issue before we really greenlight things (a little late for that though - whoops). I have also deleted the FB post I made, to help mitigate the content spreading for now.

Xrayez commented 4 years ago

Updated godot-ideas description to better convey the actual intention, the repository was meant to demonstrate an alternative to godot-proposals but the ideas have diverged greatly.

As for renaming, "community" stands for "users" and "engine" mostly stands for "developers", so I'm not sure what other name could be chosen for this...

@akien-mga and @reduz should really make the final call then, but there's clearly an issue for me here (and some others here), the reason why I started to discuss this early is to prevent users to become discouraged with the process, so I have the best intention, sorry if I've created any impression of hostility here, peace.

reduz commented 4 years ago

@Xrayez I think it's too soon to do anything, and we haven't even tested the new system because @akien-mga was on vacation. We will have enough time to see how it works and how we can adjust it over time so most can be satisfied, so I feel that all this is an overreaction at the moment. Let's see how things work first and what can be improved before discussing any speculation about shortcomings.

If you want to do your own system in parallel feel free to do it, but it won't be official, so it won't need any need official approval.

reduz commented 4 years ago

The hard line of conflict will probably always be the dismissal of proposals that don't have user interest, or any practical use in existing projects (even if they sound cool), and this won't change because we want to avoid bloating Godot with stuff no one will use.

That said, and as others mentioned, we are a lot more open on feedback for improving external plugin support, including the plugin API and GDNative C++ so extending as outside plugins is easier (it's kind of a hassle for a lot of things). You feedback for these kind of features that are on a gray area will be a lot more interesting if it's about improving plugin API development so they can actually be implemented externally.

Xrayez commented 4 years ago

@reduz my overreaction is mandated by the survivorship bias which could be quite real here. People who want to make a proposal which doesn't match up to the standard/requirements could just decide to close the tab because most don't have any authority nor influence to suggest an alternative. And those who do notice potential problem would remain in minor group, so one could make a logical error that the issue is not really there nor it is objective enough to allow any changes to be made.

I think discussing this won't hurt anything. No actions are needed for now indeed, let the system be tested, I go idle mode. Sorry for making it appear too serious of a problem. 🙂

reduz commented 4 years ago

@Xrayez Yes, but then again, all you have to do is explain how it would be of use to you in a real-life project. I think it's a fair requirement.

reduz commented 4 years ago

Your only "risk" is basically a situation where:

This is a too corner case situation, and a terrible criteria for adding new features. If we accepted this kind of thinking, the project would quickly bloat with useless features for the sake of having maybe a very few amount of them that were useful. It's just not worth it.

It just works much better the other way, when you find a real-life obstacle and can describe it, then you or the the community can work together and think of ways to overcome it.

Our mission is about making something useful for others based on their real needs, not having fun adding features that we find cool, that no one currenty needs, so that may nor may not be useful.

willnationsdev commented 4 years ago

@reduz

This is a too corner case situation, and a terrible criteria for adding new features.

I think we all agree that godotengine/godot and godotengine/godot-proposals shouldn't be cluttered with such Issues.

It's just not worth it.

I can personally see how devoting manpower to Issues with such vague usefulness could be viewed this way. It might lead to like-minded people finding each other. They might discuss it in depth. They might actually build something out of the idea. It might end up solving some kind of problem in the future. It's all so nebulous.

It just works much better the other way, when you find a real-life obstacle and can describe it, then you or the the community can work together and think of ways to overcome it. Our mission is about making something useful for others based on their real needs, not having fun adding features that we find cool, that no one currenty needs, so that may nor may not be useful.

I agree wholeheartedly with these statements. Which is why I still think we have a gaping hole in our Issues at the moment.

In particular, we do not have a proper tracker for issues where the submitter...

  1. Knows a use case for an idea.
  2. Has met with obstacles because their idea doesn't exist yet.
  3. Knows the idea itself could exist outside of the engine itself.

Examples include...

  1. an addon with assets.
  2. an EditorPlugin.
  3. an engine module.
  4. a template project.
  5. a full project that provides a useful tool for the community.

These entire categories of ideas don't belong in godotengine/godot because they aren't bug reports and don't belong in godotengine/godot-proposals because they aren't necessarily feature requests or enhancements for the core engine repository. Having a GitHub repo allows us to fully transfer away all issues in /godot that are more suitable for addons (like the Dragonbones plugin stuff that was recently closed). This is why GitHub is preferable over Godot forums and the like.

A good example is #13. It would be convenient to have it built into the engine, sure. But if we decide it shouldn't go in the engine, then I suddenly have no prescribed place on GitHub to track the idea. This is where godot-extended-libraries/godot-ideas could be useful. I already made the GEL organization a ways back to hold community plugins. We've got godot-tensorflow, godot-next and the godot-plugin-refresher in there (latter two are mine). This is especially useful to me since I can now fork those repos and keep all of my experimental WIP feature branches to myself rather than in the repos that the community largely looks at.

The godotengine organization could host something of that sort, but @Calinou suggests otherwise:

Having a third repository makes it even more difficult to manage labels and permissions consistently, so I'm not sure about it. We'd also run into the issue of having people submit proposals and ideas to the wrong repositories.

As such, I thought it better to have a separate organization that doesn't have an expectation of core dev maintenance and which has a separate "ideas" repo especially for tracking such things.

Edit: if I'm wrong, and people do want such an ideas repo in the godotengine organization, then that would obviously be preferable. I could also see it being easier to preclude unnecessary Issues in /godot-proposals if 1) the addon/module/project ideas repo existed and 2) the /godot-proposals issue template referred people with plugin ideas there specifically.

Xrayez commented 4 years ago

To summarize

The expectation that the new GIP would be simply a separate place for discussing and proposing features is not met (at least for me). Instead, a new set of restrictions is added with an intent that the place doesn't become cluttered, promote high-quality proposals which are easier to maintain and review by the Godot Engine members (for a lot this is also a volunteer/unpaid work).

Based on the feedback so far, I think it's very unlikely for something akin to godot-ideas to be officially maintained by Godot Engine members that way. Some (failed) attempts were made to modify the existing proposal system to be more flexible as in #39, #42.

We see how some people still ignore the proposal template, or fill out questions just because they're required to fill, so the quality of most current proposals is still quite low.

Having said that, I think it would be good if users could choose whether they just want to share an idea which is "nice-to-have" and propose a feature which is "need-to-have", so please consider adding a link to unofficial godot-ideas repo: #91.

The system needs more testing, the discussion is quite controversial and this particular meta proposal can be closed for now. Still open for discussion though. 🙂

ghost commented 4 years ago

i think this is pretty lame, i could use something like this, i had some pretty general \ broad feedback, and it was all closed away, it kinda puts me off from honestly bringing up any suggestions anymore, and i know how valuable feedback is, from a person who has used a piece of software, for the very first time, but i find it pretty dissapointing, when some of my thoughts get tucked away, while i see the leads, or other people, being able to freely share their thoughts, and to not have their ideas hidden away somewhere

i think it's a shame, because godot has a ton of minor usability problems, which i've spotted

wat

i was even going to propose, renaming the "spatial" stuff to 3D, and a whole other buncha things, but i guess realistically there's no real interest in that, from the most experienced users, whch is kinda dissapointing

i've decided to just, gather up all these ideas, and i'll keep them to myself, and if one day i become experienced enough, i'll just apply the changes to godot myself if i can

i mostly end up feeling like nobody takes me seriously, and honestly this is why i'm not a fan of open source communities - sure, the source code might be open, but most of the time people do seem a bit close minded, and i see a lot of elitism pop up whenever more major projects start to grow

i think godot is cool, but it's not as accessible or as open as it could be, it kinda pushes me off away personally anyway

willnationsdev commented 4 years ago

i was even going to propose, renaming the "spatial" stuff to 3D, and a whole other buncha things, but i guess realistically there's no real interest in that, from the most experienced users, whch is kinda dissapointing

Actually, reduz proposed exactly that not too long ago. And I believe that if you'd opened an Issue mentioning that suggestion, it's very likely it would have been received in a similar vein.

i've decided to just, gather up all these ideas, and i'll keep them to myself, and if one day i become experienced enough, i'll just apply the changes to godot myself if i can

To each their own, but I always encourage people to share ideas. While some may be rejected, there is every possibility that some will be accepted. The more experience you get in understanding the project's requirements/goals, the more likely it is that suggestions will be accepted. And getting that experience takes time.

i mostly end up feeling like nobody takes me seriously

I have never known anyone on the Godot dev team to not take a proposal seriously. What I have seen is developers accepting or rejecting proposals based on their quality level and/or suitability for the engine repository. Of course, without me reviewing your past submissions, I can't really comment on this point effectively.

a lot of elitism pop up whenever more major projects start to grow

From what I have observed at least, most accusations of elitism I have seen appear to be misinterpretations of comments, like core devs > contributors or contributors > users. However, every time I see this happening, it is because the contributors in question simply understand the requirements of the engine repository better, and so their arguments are better grounded in the project goals. If a user likewise made suggestions that matched well with the project goals, then they would be equally valued. That is, the perceived elitism/favoritism seems to be a result of those people having a better awareness of the project overall, not because they're subjectively better somehow.

i think godot is cool, but it's not as accessible or as open as it could be, it kinda pushes me off away personally anyway

I'm sorry to hear that. I say all this only because I believe that everyone can eventually form effective suggestions as they improve their understanding of the project goals, including you (course, I say that without having examined your submission history, so take as you will).

I myself have had huge amounts of work done and rejected, along with many ideas thrown out. But over the past 3-4 years of contributing, I've gradually gotten better at understanding things and forming better suggestions. And I'm constantly learning/improving in this regard. No one instantly gets that experience. Some people gain that experience faster than others, or can even pull in development experience in other fields to bolster their ability to pick up Godot's project design.

Anyway, take this as you will. I'm just a random contributor voicing his thoughts. :-) I look forward to seeing you around, whenever.

Xrayez commented 4 years ago

I myself have had huge amounts of work done and rejected, along with many ideas thrown out. But over the past 3-4 years of contributing, I've gradually gotten better at understanding things and forming better suggestions. And I'm constantly learning/improving in this regard.

So far I've noticed a certain spectrum to this:

  1. At the start of the proposal spectrum, the feature/limitation is obvious, so there's no point to propose something in the first place, as contributors are likely already working on this.

  2. At the end of the spectrum, the feature/limitation is only relevant for specific project implementation, so it's pointless to propose this stuff either (for core).

The proposal is only relevant if it adds something in a way that most people don't see/realize yet and which would elicit the "aha" moment for many (effectively being in the middle of the proposal spectrum) but:

i've decided to just, gather up all these ideas, and i'll keep them to myself, and if one day i become experienced enough, i'll just apply the changes to godot myself if i can

which, depending on how you're likely to contribute to open-source projects, makes the whole proposal spectrum useless. This is why GIP process needs to be more open-minded, and/or needs better plugin/module/gdnative support (and better advertisement of it), so that people are less likely to derail/branch off like that.