jaller200 / LUNIServerProject

A repository trying to bring back the defunct game, LEGO Universe!
31 stars 12 forks source link

Order #12

Open rioforce opened 9 years ago

rioforce commented 9 years ago

This technically isn't a code issue, but it's a project issue. I'm rioforce, I have followed LUNIServer since it's beginnings, and I see that there are some major problems with it. I applaud you for getting this far in the project. However, I see this project being very divided. I don't really know your structure and system, but to me, it looks quite messy. I was chatting with some members of this in Skype, and learned quite a bit about this project.The problem with most projects is the lack of organization. I propose this plan:

First of all, you need to re-upload LU to your own host. A vanilla copy. No "Nexus2" or anything re-branded. Just the pure original LU game. Having to rely on TimTech for a copy of LEGO Universe is just ridiculous. (Personally, I don't trust downloading things from TimTech)

Second, you need to make simple, yet very specific tutorials on how to get the basics of Luniserver to run. If people can't run the Luniserver, the can't help.

Third, you need to document everything. I don't know if you have documented all of your code, but from here, it doesn't look like it (correct me if I'm wrong). Documentation needs to be more than code comments. It mus be PUBLIC documentation.

Fourth, outline the priorities of the project. You need to figure out what needs to be done first. Are NPCs more important than worlds? Is making a racetrack more important than multi-player? These are just examples. You need a PUBLIC outline.

You might already do this, but you need to review and test each and every pull request before merging it. You need to make sure it works and does not break things.

These are only outside observation. These are just some tips on how to organize. My brother went on Google and found tons of different Luniserver websites. I don't know if all of them are related to this project, but if they are, they need to be deleted and one central hub needs to be made. This central hub could be the wiki on this GitHub or and external website.

Correct me if I;m wrong on any of these points. I hope you can get this project working out, and maybe I can help out a bit (though, I don't know C++, so I cannot code anything). ;)

ghost commented 9 years ago

(First off, apologies for that mess I just made, apparently my lack of sleep is affecting my ability to use drop-downs >.<)

Hey Rioforce. Thank you for bringing these up. You have very good points, and I hope I can address them.

Yeah, LUNI is very divided. I assume you have been told how that happened, and really the biggest reason why it is still that way is thanks to people holding grudges. I'm trying to attempt to get people to work together more, but there isn't a whole lot I can really do.

Uploading vanilla LU is a moot point. While I haven't dealt with the client much at all myself, I know that it's been stated a number of times that the client was 'patched' at the games closing so that it would no longer be able to function. Modifications were made to allow it to work again, then errors were corrected (namely sound files), and hence the client that is the most functional and actually closest to the original is now 'Nexus2'. I have had no problem whatsoever with getting stuff from Tim, I honestly think that he's just being villanized unjustly for one rash decision he made. Just my perspective though.

Such things are already available, a couple people have done Youtube videos for setup (the most used is probably by Self-Styled Mythran). This GitHub was really meant to be fro people coming from Tim's site (as that's who the founding members are, as well as that being the only real active place of public development), so i had figured that just getting the server itself to work independently from the source was beyond the scope of what should be included. However, being that I have already done this partially already, and I have probably made bad assumptions there, I'll try to add that in soon to the usage instructions.

All the code from 0.6.0 onward should be fully commented thanks to Jon002. Unreleased code (ie new code in the development version) might not be because of the fact that it is still a work in progress, but I do agree people should comment their additions as much as possible. The next step in my mind is for me to finish the Getting Started Wiki page (still working on that, I just haven't had the opportunity to finish), so that way it will be relatively easy for everyone to get the background, one of the hardest parts up until this point. I will be covering some of the basic structure of the server in a video tutorial I'll be including as well. I think it would be a good idea to have 'static' documentation, however it's just a matter of having someone willing to take the time to do it. I'll work on that if I have the chance, however I can't commit to it for a little while (a large issue LUNI has in my mind is developers who have time they can be constantly devote to the progress, most if not all of us are very busy with school, work, life, etc).

Priorities has been kinda a moot point so far, being that there isn't a ton of stuff to do until the RM is able to be implemented, something that anyone with much knowledge of the project knows about. it hasn't been done yet because no one a part of the public LUNI development has either had the time or the skill to set up the framework for it, however I do know that it is in the process of being completed (can't tell you when It'll be available as again there's issue of sporadic work being done thanks to busy schedules and whatnot, but it had made good progress and I'm hoping to try and pick up on some of the work once I get past insanity over the next couple weeks in school and get that to completion sooner).

Again, reviews are primarily an issue of actually having active developers. Anything I do I'll make sure to test, and I'll test anyone else's code that is or wishes to be pushed. At this point, it is really only Jon002 and I here, Jon having the most experience and thoroughly capable of reviewing his own code, and as for myself I'm the person here who is primarily active, though while I do have some knowledge I don't have a ton of experience. I imagine that code will only be pushed from development to release when a couple people have been able to verify it, and in fact I'll add that into the contributing guidelines when I have the chance.

Again, the community in itself is fractured between groups of people, and I would love to see everything join into one central place (and I've suggested it multiple times), however for that to really be effective, everyone would need to agree to work together. That would be quite the feat in and of itself, though I would love to see it happen.

Let me know if you have any further questions or thoughts.

jaller200 commented 9 years ago

^ I agree with everything KnightofFaith said. The main problem here is the fact that people hold grudges. I wish not, but it happens. Now it really is only us two who want to publicly release code - all other devs want to work in private (mainly because they don't like Tim).

Also, about the client, I have a full vanilla client that I uploaded, but people were having trouble with sounds. It should still be on Tim's site (it hasn't been tampered with as I have access to that section of the file system).

In summary, you are correct. We need order. But we have grudges in the way, and, ultimately, it hinders progress. I know people love how other devs such as Darwin may be working, but the fact is, if they don't release anything, then what is the point of working? Why spend days getting a server to work for a few guys. It may be fun to hold that over people's heads for a time, but eventually people will get tired of it and it won't affect anyone. That's why I publicly release my source (if it is in a usable state, that is :P).

I've tried most of what is in my power, but nothing seems to work. If I try to reconcile, people get angry. If I try to create a site, raffa comes to strike it down. This was not what our recreation was supposed to be, but people have twisted the original idea and now it is this.

Answer the Call. Save Imagination. -Jon002

ghost commented 9 years ago

Definitely agreed Jon. I've tried talking to various people myself, and it's just really hard to get people to see that they're just hindering our main goal here. I'm definitely sticking with what you're saying on this, and hopefully others will be able to see that confining themselves and refusing to fix the issues is really not useful.

ghost commented 9 years ago

I left because of disorganization... Most people thought I left because I was joining DLU... I had already started developing for Darwin, I just didn't want the disorganization of LUNI anymore...

First of all, let's face it... Tim's website isn't a great place for development... Hence, why I created this Git! Second, I would have stayed here, but progress was being hindered because the only developers here on the Git were Knight, Jon, and I...

If we got this organization that Rio speaks of, and brought in a lot more developers, (maybe even bring back old ones...) I would most likely come back! I'll get to work on fixing this Git... But, I most likely won't commit source until I see results that we are bringing in developers...

I'll help Knight with the getting started stuff, and start really fixing the wiki...

Till then...

Timtech commented 9 years ago

My client is safe, rioforce :>

ghost commented 9 years ago

@mater06 I would be pushing more to make something that would work like that, however I don't think it would be very effective unless all parties saw that as the official center for the LUNI Server project. DLU is technically a different project, so while Darwin doesn't need to join I would still appreciate his support, and my primary issue is that I don't have contact with the old devs. If anyone knows how I could get in touch with them (without sharing any information that they do not wish to be publicized, of course), I would appreciate it.

ghost commented 9 years ago

@Knightoffaith Yeah, we need to really push that this would be the main hub. We need to make it understandable. I've already started making a LUNI For Dummies page for new users...

And they only way I see we can bring the old devs back is if we show we won't make the same mistakes the original LUNI Project made...

Also, contact is being made with Darwin and Raffa about the new project.

ghost commented 9 years ago

@mater06 Cool. Also keep in mind that I have my in-progress Development Bootcamp page: https://github.com/jaller200/LUNIServerProject/wiki/Getting-Started-in-Development

What do you mean by make the same problems? It's always been my understanding that they just got mad at Tim for re-hosting the source.

I know that the two of them are in contact (I hope to chat with Raffa at some point soon myself), but when you say new project, do you mean DLU? Darwin just posted on Tim's site about the fact that he isn't sharing. I was specifically referencing LCDR, Humanoid, and PWJones, as while I know they're busy and so inactive, they would still need to be on board as the other core LUNI developers.

ghost commented 9 years ago

@Knightoffaith What I meant by the same problems, is that the original LUNI never had a way New developers could figure out how to use the software. And, no way for users to figure out how to setup the server. Because of that, Tim set up his site to help new users ans ultimately caused the downfall of LUNI

And by the New project I mean this Git, since it is a newer project from the past to repositories...

And like Rio said, we need to figure out what happens next... So let's create issues on what documentation and wiki pages need to be added next.

ghost commented 9 years ago

@Mater06 Ah, got ya. Mind contacting me with any big updates about your conversation about the 'new project'? I would like to help as much as I can to get things flowing as smoothly as possible.

Good idea about adding issues for that stuff... Will make sure to do that as I come across anything.

ghost commented 9 years ago

I think one of the first things we need to do is really go into depth with explain this stuff... And I am going to start working on some C++ tutorials with the LUNI Server... So that instead of people going off and learning C++ through tutorials and then going into LUNI, just explain it with the LUNI Source code! I don't know if that's a good idea, but I thought it was an interesting proposal...

ghost commented 9 years ago

I'm not sure if that would really be a great idea, as it's a lot to get into immediately without any programming knowledge. It's honestly better to start out with something basic and then go from there. However, an explanation of the source code (think the RakNet documentation) as Rioforce suggested would be very helpful. Would you mind working on that? Included there should really be a class diagram of the server and the data model of the database. These will of course need to be updated as time goes on, but they would be helpful to have.

The one other thing I'm missing from the Getting Started is a SQL tutorial. I'm not sure that linking to one would be very helpful, especially as we're using MySQL with Visual Studio through SUTil. Would it be possible for you to make a tutorial on that whole workflow?

Timtech commented 9 years ago

We should merge SUtil into the main project to make things less confusing.

ghost commented 9 years ago

@Knightoffaith Okay, I will start working on tutorials on the LUNI Source code. I'll start writing them right now... I'll make a tutorial with the SQL as well... I was thinking we could go with a video tutorial? What do you thinl?

@Timtech I think we should just leave SUtil the way it is IMO...

ghost commented 9 years ago

@Timtech I don't think that merging it into the main project would really be of any use. I don't see why that would be considered confusing.

@mater06 I think that would be fine, though it would be good to type up a transcript as well (again, it might be nice to have a full documentation in the Wiki like you would normally see for a project). Thanks for helping out with this! If you could send what you have my way before you record/publish, I can check it over for errors, potential difficulty, etc.

Timtech commented 9 years ago

SUtil always seemed kind of useless to me. I thought since it's a separately defined project that's pretty small, it could just be moved into the main files. It's just some relatively simple operations and definitions.

ghost commented 9 years ago

I think the reason Raffa did it that way is because It kinda has a separate purpose, in a way acting as a database interface as opposed to the actual application server. I think @jaller200 has an opinion on that, or was going to look into it.

At any rate, I don't think that really contributes to disorganization of the project.

Timtech commented 9 years ago

I don't think it contributes to disorganization of the project either, but it was just a suggestion.

I also see that this is going to be mainly developed through separate forks and then pull requests. I might look into a separate fork for fixing some typos and stuff.

ghost commented 9 years ago

Please do, that's the point of GitHub. Just make your edits to the dev version in a fork, make a pr, and a contributor (or two :P) will take a look at it and merge, or comment if we think there are any adjustments that need to be made. I haven't gotten to integrate your 0.6.1 to replace the 0.6.0, but I'll hopefully do that at some point.

Timtech commented 9 years ago

Okay, I created my first pull request with basic changes to the readme.

Timtech commented 9 years ago

Jon, could I have write access? My PR has been sitting for a day... Also, the special host is someone who contacted me through e-mail.

jaller200 commented 9 years ago

Sure! I have added you as a collaborator.

ghost commented 9 years ago

@Timtech A day isn't that long to wait, honestly. We do have lives. ;) If it's been waiting for a week, I'd be concerned. But I don't think a day is a long time for ANY project.

Keep in mind for all collaborators that as @rioforce mentioned any significant changes should be reviewed before it is merged into the repo. If it's something simple like how I had to add in the couple DLLs, that's fine in my opinion. But we need to make sure the code is in its best state before it is merged into the main version.

And Tim, please add a new issue instead of using an existing issue that is completely unrelated. Thanks.

Timtech commented 9 years ago

Okay, sorry about that. I just had to wait for this PR to go through before updating the other one.

ghost commented 9 years ago

You're not commenting on the PR, you're commenting on an unrelated issue. You can open a new issue whenever you want.

Timtech commented 9 years ago

Oops.

ghost commented 9 years ago

@Knightoffaith Yeah, honestly, I think all collaborators should be removed in due time from @rioforce's suggestion. That will make better control. For example, weed out vandals, hackers, etc.,

ghost commented 9 years ago

I don't think having collaborators is a bad thing. If only one person had merge access, then it could take a very long time for new code to be merged in, and what if the owner goes inactive for a while?

ghost commented 9 years ago

True... But new developers should not be given that status... They should prove their worthy, that they won't vandalize. And of course, I'll always keep a clone on my desktop

ghost commented 9 years ago

Agreed. Btw, you can always rollback changes if there's an issue.

ghost commented 9 years ago

True, our friend the revert changes button...

CDFalcon commented 9 years ago

Okay guys, thanks for inviting me... I have created a page on the Wiki of packets(char) documentation. I have a "Plain English" text, and the proper documentation for half of it.

Caboose1543 commented 9 years ago

CDFalcon I know a much easier way to change your character's gear in 0.6/0.6.1 it was found by joni and it's literally just going into the MySQL database and changing the id to that of the gear you wish your char to have on. xD

CDFalcon commented 9 years ago

Yes. I agree this is much easier. However, it is NOT better. Not only do the packets allow us more control over the chars, we can edit backpacks, change spawns, ect.... Plus my article was "packet documentation" not "how to change your armor" ;)

😈The Essence of Awesomeness😈

On May 26, 2015, at 10:45 AM, Caboose1543 notifications@github.com wrote:

CDFalcon I know a much easier way to change your character's gear in 0.6/0.6.1 it was found by joni and it's literally just going into the MySQL database and changing the id to that of the gear you wish your char to have on. xD

— Reply to this email directly or view it on GitHub.

CDFalcon commented 9 years ago

lol spawns i say... though those are not in the char packets...

ghost commented 9 years ago

Couple quick things, I apologize in advance for being quite blunt.

STOP POSTING COMMENTS IN ISSUES THAT ARE OFF TOPIC. If you need to, make a new issue. This isn't a place for general chatter, if you want that do it elsewhere. Discussion here should only be about this GitHub repo and the code it contains. This issue has gotten out of hand enough I am going to delete all off topic comments and transcribe them in their own issues at some point within the next day or two. Note that in the future, if found I will comment and if the poster does not delete/repost the content within 3 days I will do it myself. I will not allow this to get out of hand, as it could greatly impact the ability of this repo to function smoothly.

Also, @CDFalcon, I really don't understand the point of the new Wiki article. It really doesn't provide any information for development not already available in the packet docs. Same with the gear change article by @Caboose1543.