AssetLib style guide #4761
Replies: 3 comments 2 replies
-
This is related to the Addon vs Plugin argument. The asset library has Addons and Projects. But Addons don't need to be Plugins. The plugins are the ones you enable in the Plugins tab of the Project Settings. They must extend the I believe the folder should be called plugins not addons. Some of us has confused the terms due to the name of the folder. And of course there addons on the asset library that don't use and others that do use the addons folder (even some for Godot 4.0 already). So changing the name of the folder would imply invalidating them (even if only from Godot 4.0 on). So far we live with these inconsistencies. Anyway, you see, other assets (e.g. textures) that are not plugins are still addons. And so are self-contained scripts that can be placed anywhere (because you refer to them by the name of the class). However, if there is a plugin that needs them, I believe they should be in the addons folder, even if they don't need to. Similarly, if the plugin brings examples, I would rather they were outside the addons folder (some place the examples inside, and that can make less clear what I can delete or modify without messing with the plugin code… To be fair, the licenses of the plugins on the asset library allow messing with the code. This preference is not legal, but architectural). While we are in the topic of examples. Perhaps it would be better if examples were only provided as project assets, downloaded separately? Something else that bother me about the addons is the license. The license file must be in the root folder of the repository, and the recommendation is to exclude it from the zip. But that means I either: lose the license because it is not included, or the license of the addons overwrite each other by default. I would rather the license were in a folder. In fact, I would rather every addon were in a folder (in the addons folder or not), so their licenses can stay with them (and this preference is legal). Anyway, please consider that rules about what goes in the addons folder or not, add time to the review process. |
Beta Was this translation helpful? Give feedback.
-
I'm finding this a point of frustration with Godot, because there is no enforcement of directory structuring for Addons in the AssetLib. This kind of thing needs to be enforced sooner rather than later to reduce how much non-compliant content there is in the wild. I really hope when they do an asset store they don't let it be this laissez-faire. A proper plugin system with content isolation and potential for dependencies is really important. Directory namespaces should also be needed to help avoid folder conflicts and more easily allow segmented content packages from the same creator to place themselves within the same package group. Like |
Beta Was this translation helpful? Give feedback.
-
I want this, but people seem to call it "dependency hell" by default. This is necessary for godot to mature.
This is because there are 2 conventions for addons:
For the latter having the addon in the root is what works. That is why it might be better to just pull things from the root of the repo directly into the addons folder. That is bulletproof, and works with anything. But, makes addon development more difficult as now you might need a second repo for the editor to work properly. |
Beta Was this translation helpful? Give feedback.
-
Hello!
I use the asset library a lot, and it made installing a lot of different plugins significantly easier.
I still have a gripe, that has little to do with the editor itself. These:
https://github.com/Linko-3D/First-Person-Controller-FPS
https://github.com/fractilegames/godot-screenshot-queue
https://github.com/Maujoe/godot-camera-control (I used to use this one a lot)
I avoid using these, because the only thing these do is pollute my workspace. Every developer/team has their own folder structures, and I would not enforce one on the projects themselves for now. But I'd like if these were more like these:
https://github.com/gilzoide/godot-dispatch-queue
https://gitlab.com/atnb/xsm/-/tree/master/
All the code is self contained inside an addon, even if it does not need the added functionality of being an addon (one of those omits the plugin.cfg file as well). This would be a decent "style guide" to me. Put your code into an addon, and the person using your code, uses it from there.
I think examples are fine outside the addon's folder, because for one they need quick access, for two they are easy to exclude when installing the addon.
I'm not sure how pure assets (textures, materials without game logic) would be handled, but there are a living examples for that as well:
https://gitlab.com/MrMinimal/godot-kenney-prototype-tools
This is the one reason why I think that some things on the assetlib are not really usable, because they cause too much clutter to be worth it. What do you think? This would mean that an "addon" can also be a library. It could even be automated when uploading a new addon, so no human needs to check the folder structures.
Beta Was this translation helpful? Give feedback.
All reactions