samfundev / KtaneTwitchPlays

A mod that allows Twitch chat to solve bombs in KTANE.
MIT License
46 stars 38 forks source link

Mod Exclusivity [Tweaks/TP] #309

Open rocket0634 opened 5 years ago

rocket0634 commented 5 years ago

With the recent post of adding Tweaks-only features to TP, I wanted to bring up an idea that was brought up early in Tweaks development that's been up in the air of rather or not we're going to go through with it or not. The idea is to move features shared between Twitch Plays and Tweaks into Tweaks directly, and having Tweaks handle most of the code TP would need to run these modes. The three features I'm aware of right now that have been considered are the Bomb HUD (including bomb edgework), Time mode, and Zen mode. TP would need to have some individual code for these features, such as point values, but otherwise it should be possible to keep it integrated in one place, as I'd imagine people using Twitch Plays would also have Tweaks enabled.

One thing I've been thinking of in regards to this is something similar to a plugin system, so that the same base code can be bundled with both Tweaks and Twitch Plays. When there's an update, it can be pushed to Tweaks steam entry, and the Tweaks entry can overwrite the TP version as long as it was compatible. (Although, if such a system was implemented, both versions would probably be updated simultaneously.)

This is a heavily unimportant suggestion, but just one I wanted to leave here so that the idea isn't lost or forgotten.

samfundev commented 5 years ago

Related: samfun123/Ktane-Mods#7

red031000 commented 5 years ago

personally I feel that tweaks should give way to TP whenever there's a conflict, as it makes it easier to add TP specific features in TP, rather than having tweaks have a TP specific handler and a non-tp handler

samfundev commented 5 years ago

@red031000 Tweaks already does that. But the problem is we have a lot of overlapping code and not many people want to get all of TP and just want some of TP's features.

red031000 commented 5 years ago

that's fair, but if that's the case, I believe that tweaks should be listed as a dependency for TP if it's going to completely replacce the UI system, as TP isn't really playable without it

rocket0634 commented 5 years ago

@red031000 My thought process here is that most TP users would use Tweaks anyway, for the Better Case Selector at the very least. The only features that I was seeing to move were Time and Zen mode, and quite possibly the Bomb HUD as well.

Although I think that these features could be put into a dll generated by Tweaks, but included in the TP package in case Tweaks isn't installed, and when Tweaks is installed, it just overwrites that dll with the one included in the mod. But I wouldn't know how difficult that would be to manage. Not that saying its required isn't an option as well.

red031000 commented 5 years ago

while I do see the advantages of not having code duplications etc, I can't help but feel that this will make it harder to maintain the elements that are moved over to tweaks, as we would need a whole new system to get the values required from tweaks, and part of the codebase would be split across two repositories