overbound / SonicTimeTwisted2.0

5 stars 1 forks source link

[Future Feature] Custom Character System for PC and Android #53

Open BlueSpeedsterYT opened 9 months ago

BlueSpeedsterYT commented 9 months ago

The following system should, if possible, allow the users to play with additional playable characters outside of the main 3 (Sonic, Tails, and Knuckles) in the game. The main goals of a system like this when it's prepared is to

Really, this could be done at any point, but there is a reason that it's listed as a "Future Feature", I would prefer that we wait a bit on this feature until after 2.0 is shipped and done out of the door, only after that would work begin on the blueprints for a feature like this. That is all.

AlexKhayrullin commented 9 months ago

For now, we should wait to see what becomes of GameMaker's plans to add proper modding support: https://gamemaker.io/en/blog/gamemaker-update-2023

BlueSpeedsterYT commented 9 months ago

For now, we should wait to see what becomes of GameMaker's plans to add proper modding support: https://gamemaker.io/en/blog/gamemaker-update-2023

While that could be helpful, I would prefer that we have something built-in that can work with multiple platforms and something that we can manage and control without an issue that could hamper it down like addons that call to an online API that can be shut down at any point @AlexKhayrullin

AlexKhayrullin commented 9 months ago

What complicates things a lot is this point: "The possibility of additional custom actions that can apply to both the base characters and the custom ones"

I get it that external APIs aren't optimal and I don't know what the official mod support does/will entail, but in any case, the possibility to add custom code looks like a dealbreaker to me. If it only were for custom sprites and strings, it would be doable, but code?

BlueSpeedsterYT commented 9 months ago

What complicates things a lot is this point: "The possibility of additional custom actions that can apply to both the base characters and the custom ones"

I get it that external APIs aren't optimal and I don't know what the official mod support does/will entail, but in any case, the possibility to add custom code looks like a dealbreaker to me. If it only were for custom sprites and strings, it would be doable, but code?

@AlexKhayrullin I understand, but this could allow characters of the base game to have some new actions while also allowing custom characters to have custom actions that would allow them to have their own gameplay scheme (an example can be a custom playable Trip with all of her actions from Superstars in Time Twisted) rather than making players forced to reuse a gameplay scheme of the base characters, as that would allow players to make whatever they want. An example that comes to mind is "Rivals of Aether" and it's modding system using Steam's Workshop, that could be an inspiration we can use for the modding system (that could also expand to custom music and/or stages).

AlexKhayrullin commented 9 months ago

I think you misunderstood me, I didn't say the idea of adding custom actions was bad in itself, I was wondering how exactly we could do it, because unlike sprites and strings, you can't just load GML scripts from external files and use them as if they were native. We're bound to what GameMaker allows us to do.

That's why I wanted to see what became of the official mod support: unless I'm missing something or putting too much hope in their announcement, it looks like the only way to package custom code and execute it in the game without writing our own interpreters and stuff.

EDIT: "What Rival of Aether has isn’t some sort of native script compiler/loader. But rather a whole code interpreter/VM built by hand." https://www.reddit.com/r/gamemaker/comments/174d382/does_game_maker_allow_modding_support/

If someone is willing to make an interpreter, why not. But I don't think that the state machine and all the interactions between the player and the rest of the map that we have in STT were designed with extensibility and mods in mind, so it will be very complicated to know how much modders should have access to. Installing existing solutions, on the other hand, could be problematic license-wise.

BlueSpeedsterYT commented 9 months ago

that would be a big issue for sure, I think that the plan should be to start with rewriting a lot of the game with modding in mind, that way we could manage to see how stuff like adding in additional actions like a Homing Attack to Sonic for example impacts the game or adding in a character like Goku with Knuckles' moveset + an action to attack enemies as a starting point

There is also the possibility that we can also use Lua and have it work in GMS2 but, much like the prior statement, that would require us to find a way to do an interpreter in GMS2 that can load scripts and assets off of something like a basic JS file or multiple uncompiled GML scripts.

I do also agree that having something like a community-made interpreter in the game project could have some issues with licensing of the project, it would be a miracle if somehow we got a smart user on board to help make a solution that could not cause any bigger issues license-wise while also potentially simplify some parts of our external asset loading pipeline. There is a ton of possibility there but it all depends on if and when we should be ready to tackle that issue post 2.0