Re: L2J Changes, Server Discussion.

If something doesn't fit in any other forum then post it here.
Forum rules
READ NOW: L2j Forums Rules of Conduct
Post Reply
Carlos_Ed
Posts: 8
Joined: Sat May 23, 2009 10:53 pm

Re: L2J Changes, Server Discussion.

Post by Carlos_Ed »

Hello everyone,

While I highly doubt there is anyone still around that remembers me from the old forum, I am somewhat glad to see that at the very least my profile is still here, somewhat. Since it appears it lost the post count I had, I am left unable to present the comment I would like to this topic in server discussion section. Now, instead of replying to a bunch of irrelevant threads, with matching irrelevant replies just to reach the minimum post count, I will rather present my comment about the referred ongoing topic here. I decided to post here on the Off-Topic section, because it will also include a few observations not really related to server specific discussion, but relevant to my comment. Be warned, it may get long since I have been quiet here for years... and there may be a lot piled up since. For that I apologize in advance, but bear with me please.

For starters, I am actually glad to see that there has been a drastic change in the mindset of the project leader ring. It was so sorely needed. At the very least, now it seems that among other things people are now open to suggestions. The opening post on the topic in question, bore a rather curious meaning in the way I see it. For the looks of it, it appears that it has been noticed by the leader ring that L2J has been loosing development resources and as time passes it seems less and less people are willing to commit anything at all to the project. Now this has a multitude of reasons that I will not go into detail, since I am sure the smart person Zoey appears to be is already aware of. But in my case, one of the reasons that made me become a silent bystander of the L2JServer project career, and stop contributing to it (I can still recognize bits and pieces of patches submitted by me on the current builds...), was that nobody seems to have any grasp at all where they want to lead this project to. I am not speaking about the leader ring, as this is an open source project anyone in the community shares part of the responsibility of it. Even me.

In that sense, the way I read it, there are a few ideas various members seem to have, but basically they are variations of these two:
- Keep chasing NCZ0ft, regardless of the ability of the project to commit enough development effort to deliver proper releases on time.
- Fix it all up before moving on, regardless of the limited development effort available, not caring for how much this causes the project to stall.

The community appears conflicted by these two stances. As expected, because these two stances are two matched opposites. IMO, this is what seems to be making people loose interest, and it is part of the base problem that needs to be taken care of. Which is, the leader ring needs to find a balance between these two first and foremost before making plans about "hiring more developers" vs "implementing task systems" and whatnot. Any system, rule, protocol, status, methodology, etc ... is irrelevant if placed on an "empty room". I salute the initiative of starting a vote cast in order to obtain community feedback, about where the project should go. But in the end, I believe this will only serve to provide evidence that not even the community itself has any idea, as a collective entity, of where/how the project should proceed. At least, not with the vote options that we are given. And since I do not agree with either of them, I will not cast a vote. As an example of what I am trying to say, the option "bugs and exploit fixes" is terribly biased. Of course that on such a project, the vast majority of voters will pick that option. It has no reason to be there, because regardless of whatever comes out of it, the project will need to have it's "bugs and exploits" fixed. And the leader ring surely knows it (my guess is that's why it asks for two options rather than one...), it doesn't need the community to tell it, or does it?

I have been following L2JServer since a first checkout of Interlude, back in the day. During that initial stage, I have to thank the project for providing for a lovely entertaining educational platform. As time passed, and chronicles progressed, it became evidently clear that the project itself could not keep up with NCZ0ft releases. But this didn't stop the progressive accumulation of bad programming practices, and poorly conceived implementations to pile up over time, thus choking the potential of the project. Without underestimating the commitment effort put by everyone involved with it, I believe that if one would simply strip the bad bits out of it one would be left with little more than what L2Chef had when he made his last visible commit using that name. It was around when Kamael/Hellbound was released, that I decided to part with L2JServer due to severe divergences in development implementations. The working copy that I was contributing to, stopped looking even remotely like L2JServer sources. There was no longer a way for me to contribute to this project, and there was also no other way for me to get anything from it anymore, except much valued data from the datapack side. This working copy then progressively became the standard basis for a server, that grew a modest community around it (which I will not mention, due to personal reasons...) with a taste for very specific modifications that found their way into it. Hence, why I could no longer contribute back to the datapack side either. Basically, the game not only forked from L2JServer but also form NCZ0ft itself, since almost none of the gameplay changes that take the old-school retro-Lineage II feel from it exist on the private repository sources I contribute to.

Knowing this, I'm sure the ones that are not yet asleep should be wondering what does this have anything to do Zoey's poll. Well, it has _everything_ to do with it. Because the same lead ring difficulties that Zoey seems to be evidencing, are the exact same difficulties my "secret" development team has faced, and solved internally. That is, once we settled on what we wanted for our own little ongoing experiment everything just sort of clicked into place. Then the beauty began to grow. Blazing fast database pool (not c3p0...), vector math, polygonal spawn zones with accurate surface placement, updated libraries, logback back-end for logging, random number sampling using Mersenne Twister, and the list just goes on... with ongoing development. And it pains me to know that none of this can be used by L2Jserver without some severe, serious porting job, which would still require extensive modification of the core to even be remotely pluggable. The story for the data side is different. Our data is useless to L2J because the parts we develop/change/update do not mimic NCZ0ft. Sometimes I look at everything from afar, and wonder what would have become of L2JServer if I ignored the conflicts that began to brew between me and most of the narrowed view commiters back then, and insisted on voicing alternative implementations.

So you see, this can be considered an example, of talent and development commitment that L2JServer project sorely needs and cannot be used by it. And like me, I'm sure there is a whole truckload of talented developers that have made a checkout in the past, but could no longer contribute to L2JServer at some point because the successive leader rings over the years made "no-so-correct" decisions about the project. These dropped/forgotten talents, if put together, would surely amount to a development driving force that would surely be able to tackle the 3 most wanted goals of that poll: "bugs and exploit fixes", "new missing features" and "compatibility with new game versions". Thus, possibly rekindling the interest of many more "silent community spectators" into an active role. I believe with enough development power, the two conflicting stances I mentioned before will rather merge into one clear course for the project. But for that, the current inertia needs to be broken, and the voices of these talents must be heard and heeded. Talent shapes the project, the other way around chokes talent and it will simply run away.

Final word, commenting on Zoey's list of "todo's" (if one can call them that...), I believe the leader ring should rather consider first how to recover lost development force (regardless of it's form), rather than fancy tools without having people to use them. The lead ring should try to track down people that lost interest, and possibly attempt to bring them back into the loop, and scout new talents without pretentiousness or arrogance in the likes of "I R L2J Core dev., thou art noob. Be my code slave.". Most of the recruiting attempts people have done in the past, came across like that most of the time, because there seems to be next to no-flexibility in accepting new perspectives for old problems that still linger today (check how "lovely" character movements are synchronized between server/client...). The most used excuse a while ago was the "coding standards" bull. Yes, there should be standards. But not when these standards are used to shackle talents into submission. I know this, because some of the people with me came from here and they told me about their experiences with L2JServer project leads. If Zoey and the current lead ring are actively working to change this, then I'm sure we will see again brighter days for L2JServer.

Thanks everybody, for your attention. And sorry for the long read. Good evening.
Illusionz
Posts: 13
Joined: Wed Apr 23, 2014 1:23 pm

Re: L2J Changes, Server Discussion.

Post by Illusionz »

Well , that's a long post ! I'm a newbie ! Although i know nothing about coding , still i want to contribute to this project by reporting bugs ( sometimes wrong/invalid bugs :P ) and try as hard as i can ( don't laugh at me :D )
User avatar
jurchiks
Posts: 6769
Joined: Sat Sep 19, 2009 4:16 pm
Location: Eastern Europe

Re: L2J Changes, Server Discussion.

Post by jurchiks »

Since it appears it lost the post count I had, I am left unable to present the comment I would like to this topic in server discussion section.
The old forum used to be available under a slightly different URL, but I can't find the link anymore and I've forgotten the URL. Maybe someone else (Zoey?) could provide more info about that.
At the very least, now it seems that among other things people are now open to suggestions.
Only some people.

Anyway, good read, interesting opinion, +1 from me :)
If you have problems, FIRST TRY SOLVING THEM YOURSELF, and if you get errors, TRY TO ANALYZE THEM, and ONLY if you can't help it, THEN ask here.
Otherwise you will never learn anything if all you do is copy-paste!
Discussion breeds innovation.
Carlos_Ed
Posts: 8
Joined: Sat May 23, 2009 10:53 pm

Re: L2J Changes, Server Discussion.

Post by Carlos_Ed »

I wasn't really trying to dig up references from the old forum, I just wanted to provide some background of where I come from regarding L2JServer community. It was just a shame that I have lost my post count and couldn't really post in the place I wanted.

But looking at it now, it was probably best this way, because what I wanted to say became way too long to cram in the middle of another ongoing topic. I think it would feel like an hijack of some sort. To be honest, I am not expecting people to pay much attention to me because, being honest, my fame on this community has long since evaporated. And short of putting up code for people to see (which I can't do because parts of it are proprietary work of other software developments. It just uses l2j *.jar files as libraries and extend classes without even touching any sources...) there isn't anything I can really do to change that... unless, I take time off from my own stuff to code specifically for L2Jserver until enough people notice I exist and start "trusting".

Since that did not work so well in the past, and I am not going to invest time on something for a goal as vain as pure fame. Besides, there is way too much I do not agree with the way "coding standards" work here. It feels as if "seniority" talks, and good code walks... sometimes just because it's not properly formated to the taste of some people, probably the same ones you are excluding out of being "open to suggestions". It's rather troublesome to code stuff on a basis riddled with thousands of conflicts just because some people prefer this...

Code: Select all

if (integer == value){    // ...}
... over this ...

Code: Select all

if ( integer == value ) {    // ...}
...and committed a full blown WC auto-formated like this from a template in one go, just as an example. Code formatting, most of the time, works as a developer signature. Many developers perceive the forcing of such policies as robbing their creation of it's identity, or simply being just a pain in the ass. Regardless, this is just another one of those things that look small, but when packed together with others causing similar effects, amounts to create a negative image of both the head staff of L2Jserver and it's community. I have plenty more to say about this, and many other miscellaneous things. But for the time being, I do not feel it is the right time just yet. If anyone shows interest on reading/learning more about what I have to say, I will gladly comply. But I will not be preaching to the fish, nor do I intend to force a lecture on people here, especially when it seems like some feel like they own... when the work that goes public shows otherwise. It would just turn to a nonconstructive pissing contest. This is the last thing L2JServer community needs: even more crap smeared on it's image.

I will be around, until next time everyone.
User avatar
jurchiks
Posts: 6769
Joined: Sat Sep 19, 2009 4:16 pm
Location: Eastern Europe

Re: L2J Changes, Server Discussion.

Post by jurchiks »

Parts of those coding standards are there for a good reason - to make patches shorter because a similar coding style means your patches don't contain re-formatting and just the actual code changes. The brace style (Allman vs BSD) hasn't really been discussed here for years, which leads me to believe people are fine with it. But some other rules are there just because somebody wants them, even if they give no obvious advantage (switch case braces, keep/delete empty lines between statements and code blocks, etc) or are outright stupid (line width of 300 characters - doesn't even fit on a 1080p screen without scrollbars).
I mostly follow the Oracle coding guidelines, with very few exceptions. Unfortunately, it seems Oracle has taken their code conventions off their site, all the links are broken at the moment, some people are guessing it's because of JDK8.
Anyway, it's pointless to talk about coding standards on this forum. Takes too much effort to change any rule or even discuss it seriously, apparently.
If you have problems, FIRST TRY SOLVING THEM YOURSELF, and if you get errors, TRY TO ANALYZE THEM, and ONLY if you can't help it, THEN ask here.
Otherwise you will never learn anything if all you do is copy-paste!
Discussion breeds innovation.
Carlos_Ed
Posts: 8
Joined: Sat May 23, 2009 10:53 pm

Re: L2J Changes, Server Discussion.

Post by Carlos_Ed »

jurchiks wrote:Parts of those coding standards are there for a good reason - to make patches shorter because a similar coding style means your patches don't contain re-formatting and just the actual code changes. The brace style (Allman vs BSD) hasn't really been discussed here for years,[...]
Agreed, and that fact about how much time since the last discussion, about the example I came up with from the top of my head, should be a good hint about how long I have been watching silent...
jurchiks wrote:[...]But some other rules are there just because somebody wants them, even if they give no obvious advantage (switch case braces, keep/delete empty lines between statements and code blocks, etc) or are outright stupid (line width of 300 characters - doesn't even fit on a 1080p screen without scrollbars). [...] Anyway, it's pointless to talk about coding standards on this forum. Takes too much effort to change any rule or even discuss it seriously, apparently.
Hence, why I am just using stuff as mild, clear, examples of points I wish to make. Not as any real basis for elaborated initiatives to break the current project inertia. Fact is, the project has grown way too big, way too fat, and is a prisoner of it's own policies. There is no way in hell anyone will be able to even make it nudge on any direction, right or wrong. Creative and talented people are suffocated by it, and once they realize the limitations on their entirety, they end up forking the repository and work on their own thing. This is the exodus of development talent I am talking about, and that I say the project leader ring should focus on reversing. The "collaboration system between forks and future integration" presented by Zoey on the bottom of the OP is what I like to call a "unicorn". There is no "system" possible other than a series of ports to enable code migration/sharing between real forks. Yes, because I do not count the forks that just change names of variables, or change a couple of NPC/SKill stats and then call themselves L2J<insert-whatever-fancy-name-here>, in the equation. Because for those, its real easy to port code. Just do a search on the diff with notepad, and replace some stuff, and it works lovely. For serious forks with completely alternative implementations/extensions, any "collaboration" other than porting stuff over in either direction, is next to impossible, or at the very least too time consuming. Generally speaking, developers will not want to double-implement their creations, one for their fork and another for L2J. This is not happening, for real... present tense.
User avatar
Zoey76
L2j Inner Circle
L2j Inner Circle
Posts: 7005
Joined: Tue Aug 11, 2009 3:36 am

Re: L2J Changes, Server Discussion.

Post by Zoey76 »

I just tested your permissions, you are able to post and vote on the announcement section: viewtopic.php?f=66&t=29706

Also we removed the post count restrictions long time ago..

About what you wrote; yes it's obvious that everyone will at least pick "bug and exploit fixes", the idea of doing it like that was to show:
  • If you have compatibility with newer versions and new features: you'll have bugs
  • If you have compatibility with newer versions and bug fixes: you won't have features (Old model)
  • If you have features and bug fixes: you won't have compatibility with newer versions (Current model)
  • if you get...
And so on, it's not possible with our current man-power (current or previous) to have everything on the poll.

We (the team) changed the way L2j was going, from having compatibility with latest client and temp fixes committed right away to completing a server version adding features in the most retail like way, replacing temp fixes with proper implementations.

This lead (our beta branch mostly) to become unstable, due the lack of feedback, since people saw the "beta" word on the name they stop using it, so we were forced to delay sync with stable branch, and that made L2j community very unhappy.

I already tried to get former developers back, and most of their answer were, "all good, but I've got a life now".

Open-source is complicated, people try to monetize everything and when they give too much and only get sh1t in return they tend to go closed-source (private) or even worse stop working at all.

On top of that L2j has the problem that we develop a solution that is linked to the success of the game, that means that at some point there will be no sense on developing it since everyone will be playing MMOs with virtual reality headsets.

On my professional experience when you develop proprietary software, you get for each development (or each company depending on it's size) a code standard guide (really long and boring), that you must follow, like it or not, that is not open to suggestions or anything like that.
In L2j we somehow created a "code standard" that follow many Java conventions, but not all.
What I see here is people saying we (committers) block contributions because code style, that's a lie, we request it to be formatted under our own formatter, otherwise it represents more work to us, beside reviewing it and committing it.

Open-source is about giving, maybe you have to give up your own standards in order to contribute.
We are open to suggestions, the problem is that some people when they receive a NO for answer, after explaining the reasons, none of them is valid and they keep pushing and disrupting the work flow.

The talents you mention, if they are so great, I'm sure they could find a way to work with us and eventually give shape to L2j in any way they want, like I did when I didn't like how the project was going (and I wasn't more than an Adv. User.)

The announcement was made to show that I do care about the community, I have seen many developers lose interest on the so called community, I myself sometimes was close to lose faith on it, I've been working everyday here since the day I started and I've found wonderful people, even made a few friends along the way, but I still get private messages full of hate and stuff like.. it'd be a fair assumption to say that something is not right.

Please try to post on the link I posted above, I'd like to merge both threads, since they are about the same topic.
Powered by Eclipse 4.30 🌌 | Eclipse Temurin 21 ☕ | MariaDB 11.2.2 🗃️ | L2J Server 2.6.3.0 - High Five 🚀

🔗 Join our Discord! 🎮💬
User avatar
jurchiks
Posts: 6769
Joined: Sat Sep 19, 2009 4:16 pm
Location: Eastern Europe

Re: L2J Changes, Server Discussion.

Post by jurchiks »

Standard copy-paste reply from you, nothing new.
If you have problems, FIRST TRY SOLVING THEM YOURSELF, and if you get errors, TRY TO ANALYZE THEM, and ONLY if you can't help it, THEN ask here.
Otherwise you will never learn anything if all you do is copy-paste!
Discussion breeds innovation.
Carlos_Ed
Posts: 8
Joined: Sat May 23, 2009 10:53 pm

Re: L2J Changes, Server Discussion.

Post by Carlos_Ed »

Zoey, I'm sorry to say that I am still bound by a post limit. Which is a shame since because of it, I lost a huge post I wrote in reply to yours. If this keeps up I will hit the minimum of 5 posts to post in the announcements soon.

Suggestion: auto-save drafts would be nice. I will reply in accord to your wishes once this situation is permanently fixed. Whatever you did most likely had just a temporary effect for some reason.
Carlos_Ed
Posts: 8
Joined: Sat May 23, 2009 10:53 pm

Re: L2J Changes, Server Discussion.

Post by Carlos_Ed »

I managed to post a reply on the announcements topic now. I'm not in a a position to point causes, but taking a wild guess it seems like a privilege caching problem.

As per Zoey's request I would like everyone interested in participating, or just writing any constructive follow-up, to go there and share their thoughts instead of doing so here.

Have a nice day, everyone.
Post Reply