godot-asset-library
godot-asset-library copied to clipboard
Reviewing the available categories
I was already unconvinced when we defined them, and practice has shown that they are not clear to end users either.
Here's the list of our current categories (https://github.com/godotengine/asset-library/blob/524892a5fdb107d198498c7cdee76a157c4e063c/data/sqldump.sql#L91-L101), together with their actual use case in the assetlib (as understood by its users, browse by category here: https://godotengine.org/asset-library/asset):
- 2D Tools: 18 items, contains mainly plugins either for assets pipeline (Tiled, asset dropper), custom node types (CircularContainer, Arrows), or scripts (RTS camera). Also some shaders (blackhole effect, CRT) --> aka "everything 2D2
- 3D Tools: 10 items. contains 3D plugins (terrain editors, VR stuff)
- Shaders: 3 items
- Materials: 0 item
- Tools: 18 items, mostly editor plugins that are not 2D or 3D-bound, like Git or Hg integration, unit tests, FSM, dialog tools), though also some 2D and 3D plugins (vehicle controller 2D, atlas importer, aseprite import)
- Scripts: 12 items, many FPS controllers, more FSM stuff
- Misc: 2 items, editor plugins (project time tracker) or themes (arc dark theme)
- Templates: 1 item (Flappy Godot)
- Projects: 5 items, example games/demos, one relatively advanced/finished (Minilens)
- Demos: 1 item (Minesweeper)
All in all it's pretty obvious that the current categories don't work. We need to think of a better classification where we could sort the existing 70 items.
In my opinion, using only categories is complicated. A tag system should be better.
That's a good point. Maybe use only broad categories for the actual asset type (e.g. Plugin, Asset (can be a shader, a material, an audio file, a script, etc.), Projects) and handle the rest with tags.
I totally agree with that:
- we keep a generic "ressource type" categorization, with enough granularity to cover all cases.
- we use tags to categorize their use: 2D/3D, UI...
The aim should be to split the "what" and the "why"
BTW, we also need a godot version field. This would enable filtering according to the godot version.
Would be nice if we get this sorted out before Godot 3.0 release 😃
A tag system would be relatively easy to do (I hope), though searching by tags might be a bit more complicated.
Seeing as we are nearing 3.0 release, we could maybe clean up the categories in a way that would complement adding tags at a later point?
Suggestions:
- New ctageory: Nodes Reason: Godot is all about nodes, so this for custom nodes, and fits tags like "UI" later on
- New category: Assets Reason: Place for 2D/3D assets (textures, models, etc.), could use tags like 2D, 3D later on
- Merge "Demos" and "Projects" into "Projects" Reason: "Demos" can be seen as example "Projects", and there aren't enough to warrant own categories for both
- Merge "Shaders" and "Materials" into "Shaders" Reason: As above, one is a more specific sub-thing of the other, and there currently aren't enough to warrant two categories
Later on, if tags are added:
- Merge "2D tools" and "3D tools" into "tools" (with 2D+3D tags being available)
I like that Category/Tag mixed approach. As I said in https://github.com/godotengine/godot/issues/29389, it would be nice to have a "Theme" category, or with the tags system, a tag.
Could we take care of this before 4.0 release?
@menip We can perform category changes when deploying the asset library rewrite. Also, the new asset library has a free-form tag system which makes categories less important.
I have also been looking for a place to share my 3d models, sound assets etc. in a Godot-ready format.
@mhilbrunner's approach to having a tag/category specifically for assets would go a long way.