heyitsbench / mod-worgoblin

Module for AzerothCore that adds Worgen and Goblin as playable races.
GNU Affero General Public License v3.0
11 stars 17 forks source link

Goblin support cross default wotlk client. #6

Open Helias opened 2 years ago

Helias commented 2 years ago

I made some experiments in past about a possible mod-race-goblin where:

GOAL: create an "optional goblin race" where the players can choose to download the goblin patch and create a goblin race or just ignore it and use the default wotlk 3.3.5a client BUT still be compatible with the custom client "goblin client" with the race and see the goblin race without any issues.

CONs:

PROs:

With a launcher this experiments are not really useful because you "solve" the issue that the players that does not want the goblin don't need to download the patch (because the launcher would download it anyway).

Hope this is interesting for you.

yuanf225 commented 2 years ago

This has to modify the conditions of the dbc and the quest creature for it to work

Helias commented 2 years ago

it's hard that this can work, but we can do a try if we have time for it

heyitsbench commented 2 years ago

Okay so theoretically this is very possible. image Screenshot taken from a clean Wow enUS client.

About that con though:

limitations for the goblin race about animations, skin and models/equipment

Because goblins were intended to be a character race, Blizzard made all the typical animations you'd expect of a character as well as all the models necessary for them to wear helmets and such. (EDIT: Don't know if they kept up with necessary TBC/WotLK animations, but most other animations were created) Some of the comfort features I've added might be possible to add, such as mounts/achievements, and racial spells might not cause issues seeing as the clean client just cares about what the server is saying, e.g. mounting up on the trike doesn't show any mount for the clean client, nor the aura saying the goblin player is mounted.

Helias commented 2 years ago

Wonderful! Of course, specific animations or face changes cannot be ported, but this is very great. We could do a mod-race-goblin that does not require any client changes to view the goblin race (it requires patch only if you want to create the goblin char).

Very good job man!

heyitsbench commented 2 years ago

Question on this: Assuming any and all custom work will not crash a clean client, should achievements/racials/mounts be included in such a version?

Helias commented 2 years ago

custom mounts no, because to add them you need to force the other clean clients to download a patch "normal" mounts ofc, the goblin should be able to use a mount

not sure if achievements require a custom patch also for others client, I would like to keep it as minimal as possible

heyitsbench commented 2 years ago

The only achievements I can see being possible to add with this would be the realm first 80 achievements, as modifying the existing achievements to accommodate goblins isn't feasible. As for the mounts, the clean client isn't forced to download a patch, it just doesn't show the mount for the client, as in the screenshot in https://github.com/benjymansy123/mod-worgoblin/issues/6#issuecomment-1164705951, the goblin is on a custom trike mount. However, I do agree with you that they should probably just stick with existing mounts so as to not cause confusion for clean client users. I will do some testing to see how clean clients display the various racial abilities I've added to see if those would be feasible.

Helias commented 2 years ago

keep it as minimal as possible, adding a race it's already a big change imho

heyitsbench commented 2 years ago

Okay, I've got it in what I'd call a decent working state in this branch: https://github.com/benjymansy123/mod-worgoblin/tree/optional-goblin. Still a bunch of references to worgen in the DBCs I've got to get rid of, I've likely gotta adjust the SQL for items/quests, and there seems to be a customization issue I need to resolve, but it is working.

Oh yea, there's also a GlueXML issue I made. Whoops.