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

"A new expansion just came out and the plugin updated, but I don't have combos for <job>!" - an explanation #110

Closed
PrincessRTFM opened this issue Jul 15, 2024 · 0 comments

Comments

@PrincessRTFM
Copy link
Owner

PrincessRTFM commented Jul 15, 2024

Hi, primary developer here, to share a little bit of the struggle to update for new expansions! Every new expac brings moderate to major changes to existing jobs, on top of adding new ones.


The first problem is that even for the smallest job changes, there are usually a handful of new actions that go on top of existing ones - and that means we need to update existing replacers. It's critical to make sure that things like level-based action upgrades or buff-based action replacements are respected, because if you use an action that's supposed to be replaced with something else, it's a dead giveaway that your client is using third-party modifications - and, as a reminder, that is against TOS and you can be banned for it. That means we need to go over all of the changes and make sure that any "this action replaces that one when conditions are met" changes are handled, before we can even test the plugin ourselves. Otherwise, we would risk being banned.

The second problem is then any moderate-but-isolated action revamps. If an action previously required something on your job gauge and now it requires a particular buff - or it required a certain buff and now requires a different one - we need to rewrite the logic for that, but it's usually contained within a single replacer, or at most a small handful of them, and it's usually pretty simple. Instead of "if your job gauge has this value", it's now "if you have this status effect". But we still have to get the ID of status effects, and we still have to update every place that the old check happened to replace it with the new one.

The third problem is jobs that got reworked. In those cases, we often have to remove every replacer for the job and then either build the new logic from the ground up, or take each of them one at a time and put them back in, then go over changes to every action they involve. If a replacer changes one action into four others depending on conditions, that makes five actions that we need to examine in detail. If four in five job actions got changed, that's an average (as of Dawntrail) of 24-28 actions we need to look at, and that number only goes up with every expansion adding new ones.


The thing is that the first two of those problems combined take up about as much effort as the third one does alone. However, only the first two present potential ban problems - if your actions aren't replacing as they would in vanilla (ie, you use an action you shouldn't have access to), then there's a risk, but if we just rip out old replacers... well, it's annoying because now you may as well not use the plugin, but you're safe when playing the job.

So what we do is update just enough to be safe, rip out the replacers for major reworks, and release our initial "MVP" build - the minimum viable product. At that point, you - the users - are able to give us feedback and tell us what works and what doesn't, what the reworked jobs need changed and what can be used as it was, what the new jobs need added, things like that.

It's important to be aware that yes, this means you may encounter broken replacers. We don't release until we're reasonably sure they're safe, but things might not do what you expect (or want) them to. In those cases, it's essential to come let us know, because right now, this project has two developers and one additional tester who specifically tests SMN. We don't play every job, and even if we did, it would be a lot of work to level everything to cap and test everything in the plugin, particularly because some replacers are specifically designed to handle lower levels. We do the best we can, but we rely on users providing feedback to catch things.

Unfortunately, this means that jobs which received major reworks are generally disabled after those reworks, so that we can at least get something out for people to use. If you play such a job, then you can help us bring it back by telling us, right here on the issue tracker, what old replacers should still work or what combos would be useful.


As a final note, the devs do also want to play new expansions, so sometimes we put out the MVP build and do only minor bugfixes until we're done with the MSQ. Sorry if this affects you, but we'd be able to do much more with dedicated players of those jobs telling us exactly what would make sense to implement, rather than leaving us to read through the job guide pages and try to assemble things ourselves... just a suggestion!

Repository owner locked and limited conversation to collaborators Jul 15, 2024
@PrincessRTFM PrincessRTFM pinned this issue Jul 15, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant