Witaj
Gość

Wątek: [Projekt] L2Voyager - Reloadable, reliable, cross-chronicle.  (Przeczytany 2640 razy)

  • *******
  • Wiadomości: 1092

  • Pochwał: 22

[Projekt] L2Voyager - Reloadable, reliable, cross-chronicle.
« dnia: Wrzesień 21, 2010, 09:14:06 am »
W języku angielskim, zainteresowani na pewno zrozumieją.

Wkrótce wkleję parę screenów obrazujących co zostało wykonane.



What is L2Voyager ?

L2Voyager, is a seperate project external to L2J ( as datapack is too ) that has as a goal to add to l2j features/events/quality function npc/bot protection and many other features, that by default l2j does not have since most of them are custom. L2Voyager is not a fork, we avoid writting most of the code inside the l2j core and our main goal is not to compete with l2jserver / fix bugs/ add retail features. Thats for the official l2j devs to handle and works better if we dont mess up in that, since experience and time wise the resources are not enough for that actions. L2Voyager aims to create a complete pack, for highrate custom servers. Thats the reason for the previous goals. To add things that high-rate players want.

Who is in L2Voyager ?

The team consists of periodical highrate server owners/devs. People that code usually for their servers and open them periodically or full time. The project is not open source ( although it uses open source projects like l2jserver ). Its a private project. We are already 3 people in it, we aim for more before we start planning the features and dividing the work.

What are the goals ?

Those of you that have made highrate servers should know that out there ( forums ) there isnt any decent highrate pack that has a lot of features/bot protection/ good npc/ balance system etc. What exists atm, is random shares, some good, some bad ( generally all the killing sprees ) which by a fact, makes it impossible to incorporate them in one unique project, since they mess up the code a lot. Appart from that, they dont have the necessary functionallity to stand above the rest.

Our goal, is to unite our powers, for our own benefit ( our servers each of one separatelly ) and add all that necessary codes/custom features in a uniform private project which we can use in our servers, to give us a significant advantage over all that other shit-ass highrates that exist and rot the community. It will be something like l2dc, an inter-server alliance of devs but it will be for highrate. That means we will focus more on customizing than fixing l2j bugs. For two reasons mainly, highrate players pay more attention to custom than meaningless bugs in retail features that are never used ( eg seven signs ) and secondly due to the fact that its l2j's primary role to develop the retail features and fix their bugs.

How will the project be structured ?

We aim for cross-chronicle compatibility, maintainability without restarts and easiness.. We will achieve that almost completelly by using the following design/architecture/tricks:

1)Well specified interfaces that connect the Voyager to the core and the datapack.
2)Project dependancies between L2Voyager and L2JServer.
3)ScriptEngine and reloadable code.
4)L2JFrame, a feature that implements the way Java Swing works on top of html and button bypasses. Contrary to the small performance loss a feature like this adds ( due to object creation ) the robust desing and easiness of use make it a must for rapid development since it gives the developer the ability to focus more on the business logic of the feature/application than the mechanics.
5)Model-View-Controller pattern.
6)Composite Pattern.
7)Template method pattern.

Here's the main uml diagram of how the project is structured and how it communicates with the rest of the servers ( mixture of class diagram with artifact diagram ).



Pros/cons of the project.

Pro:
1)A complete pack that will help your server get a boosted start.
2)Code that allows you to reload it while it runs, without the need to restart.
3)A lot of progrmming experience and teamwork experience.

Cons:
1)Slight performance loss since higher level of abstraciton always adds load, but its insignificant.
2)Some packs must change name to com.l2jserver to be compatible with the project.


How to join the team ?


We arent looking for super-pro java programmers. Which is actually the reason why i made the topic in this forum ( another reason is that top dev forums tend to have guys with too much ego which we dont really need ... ). We are looking for people who can understand java and are willing to learn more.  So.

1)Know the basics of java
2)Know any of the l2j or l2j derivative projects.
3)Be 18+
4)Be sure you are in here to use that code in your server and not to sell it for money.
5)Be willing to learn and listen to tips and advice regarding how you code.
6)Be open for ideas and have a team spirit.
7)Be willing to throw away some ideas when the team decides so. We can do anything, we wont just do everything. - Todd Howard.

Send a pm in this forum account with information regarding servers you developed, any other forum activity and generally why do you think you should be in this team.


  • *******
  • Wiadomości: 1092

  • Pochwał: 22

Odp: [Projekt] L2Voyager - Reloadable, reliable, cross-chronicle.
« Odpowiedź #1 dnia: Wrzesień 22, 2010, 03:30:44 pm »
what we have so far:

1)100% Reloadable code even the data. The data reloading works in two ways. One of them isnt yet implemented. All data singletons implement the IModel interface and register themselves in the core. Once reloading takes place, the interface save() function is called to do the saving ( 2 ways ) then procceed with recompiling and linking the classes. Way1: Store to db, reload and recompile the java classes, load from DB to data model classes. Way2: Implementing an anonymous HashTable<String, Object> which doesnt get reloaded/recompiled. Storing the data type/casted in there --> recompiling --> reloading the data with type casting based on string. De-centralized architecture, the data regarding a character and a feature, are stored in the feature, not in the character ( bye bye facade design patern ).
2)L2JFrame, added DropDownList graphical component.
3)Adding our own handlers/npc/item bypass system ( handlers loading seperate from dp and used without the .).
4)Quality buffer (100% configurable from ingame admin panel with schemes, pet support )- in development. ( eats r1na's buffer for breakfast ).
5)Quality GK (Editable from ingame by admin, bookmarking locations, displaying players/pvpers ). - in development.
6)EventEngine based on java or jython - TBA.


  • *******
  • Wiadomości: 3605

  • Pochwał: 0

  • Shady Aftermath
Odp: [Projekt] L2Voyager - Reloadable, reliable, cross-chronicle.
« Odpowiedź #2 dnia: Wrzesień 22, 2010, 10:05:46 pm »
Nie znam się na tym, nie wiem nawet jak wygląda emulator java i w ogóle mi to nie jest potrzebne. Ale mam jedno pytanie, masz/macie zamiar robić HR'a na tych plikach?
Never regret anything because at one time it was exactly what you wanted


  • Wiadomości: 110

  • Pochwał: 2

Odp: [Projekt] L2Voyager - Reloadable, reliable, cross-chronicle.
« Odpowiedź #3 dnia: Wrzesień 22, 2010, 10:09:53 pm »
 ta ;p  zaraz bedzie obiecywal kolejnego HRa ktory nie wstanie xd


  • *******
  • Wiadomości: 1092

  • Pochwał: 22

Odp: [Projekt] L2Voyager - Reloadable, reliable, cross-chronicle.
« Odpowiedź #4 dnia: Wrzesień 22, 2010, 10:44:49 pm »
Nie znam się na tym, nie wiem nawet jak wygląda emulator java i w ogóle mi to nie jest potrzebne. Ale mam jedno pytanie, masz/macie zamiar robić HR'a na tych plikach?

Tak, www.l2ephion.com - in development.

ta ;p  zaraz bedzie obiecywal kolejnego HRa ktory nie wstanie xd

Różnie w życiu bywa, a ja nie mam zamiaru przejmowac się wypowiedziami ludzi takich jak Ty.

Nie wiesz dlaczego poprzedni serwer, o którym pisałem nie wstał, a więc po co się odzywasz?

Chyba, że może wiesz i oświecisz wszystkich?
« Ostatnia zmiana: Wrzesień 24, 2010, 07:12:22 pm wysłana przez Matim »


  • *******
  • Wiadomości: 1092

  • Pochwał: 22

Odp: [Projekt] L2Voyager - Reloadable, reliable, cross-chronicle.
« Odpowiedź #5 dnia: Wrzesień 24, 2010, 08:28:11 pm »
Vearth, dzięki za uwagę o błędzie, poprawiłem.



W projekcie działa między innymi właściciel znanego serwera http://www.l2relapse.com/

Jak można się domyślić, wiekszość features z w/w serwera pochodzi właśnie z tego projektu.