Rarity

Rarity

17M Downloads

Look into a potential Wow Classic port

rdw-software opened this issue ยท 10 comments

commented

Source: WowAce

Are there any plans to port Rarity to Classic? I feel like it'd be a great addition!

Not sure if this would be very useful and I also don't know how much work it would be.

commented

I think cata classic is fairly close to retail? Have you had a min to give it a look again?

commented

I looked into this again, and it seems that perhaps the changes required wouldn't be so great.

See also: https://wowpedia.fandom.com/wiki/Porting_addons_to_Classic


My primary concerns so far are these:

  • It's not clear what APIs exactly need to be disabled and/or swapped out
  • Most of the code that would need to be changed is completely untested legacy code (same as before)
    • It needs to be refactored to allow making the required changes with little risk of breakage
    • Refactoring without tests has an unacceptably high chance of introducing defects, possibly serious ones
  • Any issues in the retail version will affect approximately 300,000 players
    • This is far more than I'd expect to be interested in a classic version (though I don't have any numbers)
    • Consequently, "just winging it" is not a feasible approach in this scenario

So what needs to happen to actually make this a reality?

  • First of all, a reliable and complete list of ALL required API-level changes needs to be compiled
  • Then, all locations (modules, functions, miscellaneous legacy code pieces) that would be affected need to be found
  • Now, all of them need to be tested and refactored (this may be easier than anticipated with my current experience)
  • A way to differentiate between the individual client versions must then be added
  • Finally, new or modified APIs need to be implemented for each supported classic variant

I'll create separate issues for these and all other classic-related tasks. Since this issue is technically "complete" (I have now looked into it), I'll close it. All future classic-related issues will be added to this milestone: WOW Classic Support

Feel free to use this thread for related discussion and/or question, though Discord is also an option.

commented

Ah, unfortunately I've been very busy and not done much work on Rarity outside of basic maintenance tasks.

I'm not sure how different the Classic API is given they're using a modified retail client, but if the third party libraries Rarity is using aren't working then this would quickly become a big headache. The addon's code is quite messy and doesn't lend itself well to alterations that require more than updating the database, so unless it mostly works out of the box I probably won't have the time to create a separate version just for the Classic servers.

commented

After looking into it a bit, I'd say that before I can reasonably tackle this the addon's code needs some serious refactoring (#86) and possibly streamlining to make it easier to disable the various features not supported by the Classic client without breaking every single thing in a variety of ways.

There's no way I want to go through thousands of lines of code and combat silly problems such as the limit of local variables being exceeded (#91) that stem from the, uhm, "organically grown" codebase.

The good news is that after disabling the pet, mount and toy functionality the rest should be fairly generic, which means that a simpler version of Rarity for the Classic client that ONLY allows manually adding items should be feasible.

commented

Hiya,

To me that would already be terrific. There isn't many things that need to be tracked and having to add them manually is definitely not a problem as the amount that can drop from specific mobs is far lower than in retail.

I indeed was looking at it myself as well in the code and was completely overwhelmed by it not gonna lie. I guess that's to do with all the additions that came over time. I think you can also remove stuff like coins (as I saw those are being tracked too unless I mistook it) and all the farmable professions.

commented

Made a new account just to comment on this. Even with only manual item creation, this add-on would be super-helpful to me in classic. I'm mostly farming profession recipes and all I want is to be able to track how many kills of a specific mob type(s) (or in specific zone) something takes.

commented

Yeah, unfortunately in the current state doing anything at all beyond basic maintenance is a PITA. I don't have the time to clean it up properly, so I can't just swap out the functionality that wasn't added to the Classic client and be done, as the code will break in a variety of ways.

commented

so it's a full rewrite then? If that's the case, that's unfortunate but I can understand your position. Thank you though for looking at it.

commented

Disappointing, but understandable.

commented

Hi, how is this coming along? I was looking for it, but have not seen it as of yet. I could help test driving it if it helps. I want it to track some BiS items to see how unlucky I am, companion pets and mounts. :)