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

Add function-oriented categories for plugins #353

Open
svetogam opened this issue Sep 1, 2024 · 0 comments
Open

Add function-oriented categories for plugins #353

svetogam opened this issue Sep 1, 2024 · 0 comments

Comments

@svetogam
Copy link
Contributor

svetogam commented Sep 1, 2024

After reorganizing version categories to only a few headers, there is room for plugins to have a higher-order set of categories. This is like games have for 2D/3D/XR.

What kind of categories should these be? The Godot Asset Library has its own set of categories (2D Tools/3D Tools/Shaders/Materials/Tools/Scripts/etc.), but the best reason to not use these is that the Godot Asset Library already exists, so it won't be beneficial to copy its functionality. It will make this list more useful if it satisfies unique needs. Having more specific, function-oriented categories will be one way to do this. I think function-oriented categories will be especially good because they group together plugins that solve the same problem in different ways. This will make it easier for developers to understand and compare their options.

The biggest difficulty in making such categories is minimizing overlap between them, so that it's clear in which category any plugin could be found. There should also be an "everything else" category since trying to make the categories exhaustive for all possible plugins will make them less effective for organizing by specific functions.

I propose the following list of categories. It will have to be modified over time. A category might be split after it gets a bunch of items in it, categories might be merged if they have some overlap, and so on. But I think this might be fine to start with:

Plugins

Building and Exporting

Improve getting runnable programs out of projects.

Code Structure and Architecture

Organize code without adding functionality.

Data and Resource Management

Enhance developer ability to work with complex data.

Debug and Testing Tools

Help developers keep projects bug-free.

Editor Tools

Improve Godot Editor workflows.

Game Frameworks and Systems

Determine substantial parts of the game as experienced by players.

Graphics

Determine and control what players see.

In-Game File and Memory Management

Manage game-state and memory during gameplay.

Input Device Support and Extension

Improve working with input devices.

Menus and Control Nodes

Improve the GUI for players to use.

Monetization and Telemetry

Snoop on players and shake them down for all they're worth.

Multiplayer and Networking

Manage connections with players and servers during gameplay.

Music and Sound

Determine and control what players hear.

Physics, Navigation, Procedural Modeling, and Shapes

Determine and control spatial interactions.

Processing and Mathematical Calculation

Process data to obtain results.

Uncategorized and Everything Else

Do things that don't fit into any of the other categories.


I use a lot of "X and Y" names with X and Y being functions that are likely to be done together in the same plugin. I don't think it's possible to have cleaner names than these without the categories overlapping or being ambiguous. I think the descriptions are also needed because the category names are often not self-explanatory. For example, it's helpful for clarifying if the name relates to players or to developers.

(I know #313 exists, but this is a more specific proposal, so I made it a new issue.)

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

2 participants