apollo-rsps / apollo

An open-source Java game server suite designed to be lightweight, fast, and secure.
ISC License
184 stars 141 forks source link

Move revision 317 release into another repository #79

Open rmcmk opened 9 years ago

rmcmk commented 9 years ago

Apollo adds a lot of unnecessary (and frankly confusing to some) bloat with the current hack-job implementation of multi-revision support. I say hack-job as it is not actual multi-revision support which people think of (running 1 server, connecting to it via multiple revision clients).

Don't get me wrong, Apollo's multi-revision idea is nice,... but it isn't ideal.

There are several alternative solutions that can be brought to the table that will work much nicely.

Discuss, ask questions, propose your own solution or otherwise

Major- commented 9 years ago

I don't like the idea of removing the existing abstraction, but bundling the 317 release separately is something I am quite keen on.

rmcmk commented 9 years ago

The existing abstraction isn't really something I like to work with either. Option 2 seems to be something that would be more ideal if you were to bundle different releases.

Abstracting some core parts of the server that are necessary for revision specific code would work nicely (keep one API for each release branch, that way fixes to the core won't have to be duplicated) and simply branch each release.

WizardJesse1 commented 9 years ago

I never understood the whole reason for the multi-revision in apollo since you need to change the login decoder and etc.. to get a different protocol working. but I do like this since I don't have to make 20 different apollo sources for one revision since I use apollo as a 474 and etc.

lare96 commented 9 years ago

I agree, not a fan of the bloat that comes with supporting multiple revisions.

Major- commented 9 years ago

@WizardJesse1 apollo is only designed for 3xx anyway

WizardJesse1 commented 9 years ago

@Major- True but you know how people are

Major- commented 8 years ago

377 will be removed when #161 lands. The message encoders/decoders will still be available, but won't be distributed with the official release (and all plugins that ship with apollo by default will work on plain 317).

rmcmk commented 8 years ago

A step in the right direction I think

Major- commented 8 years ago

Considering removing 317 instead of 377. We have an actual 377 cache, whereas we don't for 317. The 317 client everyone uses also has some bugs with head/hint icons, although I haven't investigated to see if the issues are present in the obfuscated client too.

Apollo currently requires a cache from somewhere around 320-330, because some of the NPCs used in one of the location plugins don't exist in 317. Obviously we could remove these, but personally I think defaulting to 377 is the better choice (it's quite nice to be able to have 'everything' prior to 400 imo).

We'll probably stick the codec stuff for the removed revision in a separate repo.

ping @ryleykimmel @garyttierney for thoughts

rmcmk commented 8 years ago

I think we should do that as well as construct a wiki for all of our 317 and 377 findings and then remove all of the boilerplate code out of Apollo for supporting multiple releases.