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

Extension system #134

Open
melody-rs opened this issue Jun 27, 2024 · 3 comments
Open

Extension system #134

melody-rs opened this issue Jun 27, 2024 · 3 comments
Labels
enhancement New feature or request

Comments

@melody-rs
Copy link
Member

Is your feature request related to a problem? Please describe.
I'd like to add optional features that RPG Maker does not have by default that may or may not require addition scripts. This has been a core goal of this project, from the very beginning.
However, we really need a system for managing extensions when we start implementing them! A simple config option likely wouldn't suffice as it wouldn't patch scripts, but at the same time users with custom scripts might want to add the patch themselves.

Describe the solution you'd like
We add support for an extension system a la OpenGL/Vulkan where a project lists a set of extensions it's aware of in order to enable extra functionality. There'd also be a config menu for enabling extensions, which would provide a basic description for each extension as well as a basic script patch.
This sort of system could integrate really nicely with plugins as well, plugins would be able to register extra extensions in order to enable their functionality.
If we decide to ship our own custom scripts when creating a new project, all/most extensions are enabled by default with patches provided.

Describe alternatives you've considered

  • Simple checkbox in the project config window that shows you a script patch in a popup when pressed
  • A RGSS runtime version selector (original idea for this, too limiting though)

Additional context
Extensions would range from things like extra tilemap layers (no code change required on mkxp) to self switches being a textbox, rather than a choice between A,B,C,D (minimal to no code changes) and even to #133 (large code patch required)

@melody-rs melody-rs added the enhancement New feature or request label Jun 27, 2024
@melody-rs melody-rs pinned this issue Jun 27, 2024
@white-axe
Copy link
Collaborator

How is a project going to list the extensions it supports? We can't really check what a project supports based on its scripts since we don't have a Ruby interpreter.

@melody-rs
Copy link
Member Author

Separate config maybe?

@white-axe
Copy link
Collaborator

That's basically the same thing as just providing a config menu and having the user manually selecting the extensions their project supports. Still, I agree that this would be better than the RGSS version selector we currently have.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants