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

Decentralize #364

Open
svetogam opened this issue Oct 15, 2024 · 5 comments
Open

Decentralize #364

svetogam opened this issue Oct 15, 2024 · 5 comments

Comments

@svetogam
Copy link
Contributor

The Problem

There are many good plugins and other utilities for Godot, and being able to find them is essential to getting the most out of the engine. But it's getting increasingly difficult to find all the good ones that exist. This list could solve this problem but it's currently badly organized, missing many good utilities, and is out of date.

I made a PR (#349) reorganizing version categories, and it was my intention to update at least some of the list items after it got merged. But that PR received no reply for over a month. This experience makes clear to me that the bottleneck for improving this list is not the will to do the work so much as its current maintainance practices.

But I think that's not the root cause of the problem. (After having over a month to think it over) I identify the root cause as an unhealthy degree of centralization of the Godot developer community in Godot Engine. It's not necessary or good that the maintainers of the engine itself should also be tasked with maintaining curated lists of plugins to use with it and games that are made with it. (That is, beyond the purposes of showcasing and advertising the engine.) It would be a better use of their time to focus on other things, and better lists could be maintained by dedicated volunteers. I have come around to the conclusion that it's really for the best that this list is badly organized and out of date, because it shows good time management. Such a list just shouldn't be maintained through Godot Engine or by the Godot Foundation at all.

It's common in awesome lists to say they are "opinionated". People disagree on what they would like to see in a list and what use-cases the list should be organized to best support, but trying to not take sides often makes a bad list that serves no purpose well. As long Godot Engine is maintaining the list, then the drive is for the list to try to have no opinion, which isn't suitable for a good list.

The Godot Foundation policies express the commitment to "strive for consensus". But consensus is not appropriate for a list like this. Because some disagreement can be expected at every step, it ends in the status quo of doing nothing. The core values of a list being up-to-date, easy to add to, and open to experimentation would be better achieved without going through Godot Engine.

For another argument, maintaining this list is a bad use of the funding that Godot gets because it's a problem that requires relatively little technical skill but is very time-consuming. It's a problem that can relatively easily be solved by volunteers not working through Godot Engine.

However, if I tried making my own list to replace this one, then it would have no chance of getting popular. This list necessarily has much greater discoverability than any other list due to it being an official and pinned repository of Godot Engine, and due to it being linked to from Godot's readme. I conclude that the ultimate problem is that this list exists and prevents better lists from getting popular or being viable to work on. Though it was valuable in the past, it's not a good solution anymore and now prevents better solutions.

The Solution

I therefore propose to transition this list into a being a short list of other lists and compiled resources. Since many people are already watching this list, I think it will be best to redirect them to new lists this way.

One way to do this would be to have a transition period of 1 year during which there is a prominent notice at the top encouraging readers to make their own lists, and linking a new branch of a much smaller work-in-progress list of other lists. During this year the same lackluster maintainance could continue, but after it's over the current list will be archived and the new branch will become the main branch.

I think a major reason the current list is badly organized is that it includes a wide variety of different items under the same organizational structure. In particular, I think games and plugins do not belong on the same list, and including them both makes both harder to find. So I would encourage new lists to be made that have a more focused purpose than including "everything Godot". This would also make the lists easier for individual volunteers to maintain.

Some existing resources on this list for the new list to include could be:

Hopefully community members will step up to maintain these smaller lists that don't try to do everything. This issue can be used for organizing and linking them. The fact of how they're coming along (or not) will be the best argument for or against this proposal. Variations to this proposal could also be worth considering and discussing.

@svetogam
Copy link
Contributor Author

I don't have the time to maintain a list myself, but if someone likes my judgment and wants to work together with me and share the work, then I could help with it.

My idea for plugins and other utilities was #353.

For listing games, my idea is to organize them using tags, and the category division would only be for big/small games. A list of FOSS games made with Godot would best be organized in a website to show screenshots and which has a system for searching by tags, but maybe it's too hopeful to think someone would come along and make that. Tags can still be searched for in a readme well enough.

@antimundo
Copy link
Contributor

antimundo commented Oct 17, 2024

I agree in many things you said, I don't fully agree with others @svetogam

What I agree with

  • This list needs more mantainance and improvements to be more useful.
  • Maintaining this list requires relatively little technical skill but is very time-consuming.
  • It would be a better use of the Godot developers time to focus on other things, since they have the technical knowledge that is crucial for the development of the engine, this shouldn't be a thing that takes away their valuable time.

What I don't agree with

I think having an official curated list, managed by the Godot Foundation, is a nice thing to have. I teach Godot to other people, and this list is a valuable resource for my students, the same way is a valuable resource to have an official Showcase to see cool projects made with Godot.

So, I don't really like the solution of making this a list of other lists. Because the current purpose of this list is already great, and that "list of other lists" would have to be maintained the same way as the current one has to, so it could end up having the exact same problems this list currently has.

My suggestion

In my opinion, this list could be maintained by volunteers, to free those resources for the Godot developers.

If this list was maintained by volunteers, we could take our time curating it, voting which projects are great and which should not be added, voting and discussing how things should be organized... And we could take action without having to take away Godot developer's time. (Specially Calinou's time)

Everything could still be supervised by the Godot Foundation, and the volunteers maintaining this list should do things that align with the views of the Godot's official developers.

But this list is a great resource, I don't thing we should get rid of it, but try to improve it. (But this is all just my personal opinion)

@svetogam
Copy link
Contributor Author

I considered the idea of having a volunteer maintainer committee @antimundo. I'm not completely against it, but I decided to focus on what I thought was the much better option.

Even if there's consensus that having a committee would be a fine idea, I don't think there's likely to be consensus on who should be on it or what voting procedures it should follow. Then a lot of energy would be spent on creating and later reforming the committee, on people getting informed to vote well, and on people who modify the list first having to get buy-in from voting members. Finally, I don't have faith that this committee would make good design decisions.

Compare that with doing things the way GitHub is well designed to do, just linking and forking repositories. It's the easier and less risky option. I could go on with more criticisms, but in order to consider a volunteer committee as at all viable, I think we should first find an example of one actually working to organize a list like this. That way we won't have to speculate on how exactly it would work.

But I don't think that's the core of the issue. A committee is only a means to an end. I think the question to ask is what end you really want here. Then we should ask what would be the appropriate means to achieve it.

the current purpose of this list is already great

I'm not sure what the current purpose of this list actually is. It doesn't seem to have any particular purpose besides linking a lot of things related to Godot, which a smaller list of lists would also fulfill.

this list is a valuable resource for my students

What exactly about it makes it valuable? Could something else be more valuable?

Another option to replace this list is to have a "Godot Starter Pack". It would be smaller and easier to maintain, with a clear purpose of linking resources that are especially valuable for beginners to Godot. Do you think this would serve your purpose better than an "everything Godot" list?

@antimundo
Copy link
Contributor

@svetogam

I'm not sure what the current purpose of this list actually is.
What exactly about it makes it valuable? Could something else be more valuable?

There are many things i find valuable from this list

  • Having a lot of sample open source Godot projects, that I can play around with, and be able to study these projects work and are organized. This is a really valuable learning asset.
  • Some of these projects, like the ones in "Plugins and scripts" are really useful, there are a lot of these open source repos that you can use in your own projects that are really cool.

@svetogam
Copy link
Contributor Author

  • Having a lot of sample open source Godot projects, that I can play around with, and be able to study these projects work and are organized. This is a really valuable learning asset.
  • Some of these projects, like the ones in "Plugins and scripts" are really useful, there are a lot of these open source repos that you can use in your own projects that are really cool.

I think both of these purposes would be served better by specialized lists than by a list trying to do everything. The point I'm trying to argue is that this list doesn't do anything that couldn't be done better by more specialized lists, and without requiring official delegation.

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

3 participants