Open Speak2Erase opened 4 days ago
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.
Separate config maybe?
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.
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
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)