L2J

Un article de Wikipédia, l'encyclopédie libre.

L2J désigne un émulateur Java sous licence GNU GPL, pour le serveur du MMORPG Lineage II. Il est possible de se connecter à un serveur L2J avec le client officiel Lineage II sans modifier celui ci, par une simple modification du fichier hosts.

Sommaire

[modifier] Structure

L'émulateur et la communauté de développement est structuré en 2 équipes. Chacune dispose individuellement d'un forum, d'un repository Subversion et du système wiki / bugtracking Trac.

[modifier] Le Core (L2J)

Cette partie "noyau" est constitué de tout le code java :

  • GameServer (GS) : le programme principal gerant toutes les actions du jeu, depuis l'écran de choix de personnage.
  • LoginServer (LS) : le programme gérant la procédure d'authentification et le choix d'un serveur.
  • MMOCORE : bibliothéque java développée par l'équipe L2J utilisée par les 2 composants ci-dessus, contenant entre autres des fonctions générique de gestion de packets.

Un LS peut donner accès à plusieurs GS. Le GS et le LS utilisent lisent fichiers de XML configuration ".properties" que ce soit pour des réglages techniques ou pour modifier le comportement du jeu par rapport à ce que propose par défaut l'émulateur[1]. L2J utilise aussi entre autres les librairies java c3p0 (JDBC DataSources/Resource Pools), Javolution (Java library for real-Time, embedded and high-performance applications) et MySQL connector

[modifier] Le DataPack (L2JDP)

Il faut comprendre que la notion de Datapack sur L2J est vaste. Elle découle intégralement de la notion de Core pour la partie codée en Java de L2J. En effet, le Core (coeur) est le centre du fonctionnement du serveur, le Datapack représente juste l'ensemble des données que celui ci va utilisé pendant son éxécution. Nous trouverons donc de simples fichiers HTML qui correspondent aux textes des NPC, mais aussi des script écris en Jython ( Implantation embarquée du langage de script Python en Java ) notamment utilisés pour les quêtes, voir même des classes codées en Java (non compilé).

Voici quelques exemples de fichiers trouvables dans le Datapack en vrac :

  • Fichiers sql et outils d'installation : crée une base de donnée de jeu sur un serveur MySQL (nécessaire au core), composé de table initialement vides (liste des comptes, des personnages, des items possédés par les joueurs...) et de table pré-remplies (liste de chaque type de NPC, points de Respawn des NPC, statistique de base des classes de personnage, liste des items / armes / armures, leur description et leurs statistiques de base...)
  • Des fichiers XML décrivant les skills[2] et leurs effets, chaque skill ayant un type et des caractéristiques selon une DTD définie par L2J.
  • Des fichiers dans un format "type sous-ensemble de l'HTML" pour les dialogues avec les NPC.
  • Des scriptes jython pour le déroulement des quêtes.
  • D'autres éléments représentant une part plus faible du volume du datapack (fichier XML dis "multi-sell" pour les échanges d'objets par NPC, des fichiers CSV avec différents rôles...)

[modifier] Autres

Optionnellement, il est aussi possible d'utiliser :

  • Des fichiers "GeoData" : traités par le GS, ils permettent la gestion de la "géométrie de l'environnement". Si ces fichiers sont présent et que l'option correspondante est activé dans la configuration du GS, les joueurs ne pourront normalement pas tirer à travers les murs ou traverser les murs et seront bloqués dans ces actions.
  • Des fichiers "PathFinding" : ils sont une addition récente aux fichiers geodata et permettent à l'émulateur de calculer un chemin lorsqu'un joueur doit aller d'un point a un autre (sans cette option, le trajet des joueurs est rectiligne et arrête lorsque l'obstacle est rencontré).
  • Différentes applications d'administration ou de statistiques programmé par des tiers, généralement sous forme de pages PHP, par exemple "Michelle's Dropcalc" ou "L2JZsystem" (aujourd'hui apparemment non maintenu).

[modifier] Historique

[modifier] Critique

Le nombre de serveurs basés sur L2J se compte en centaines et le nombre total de joueurs sur l'ensemble des serveurs privés en milliers. L'équipe L2J cherche au maximum à se rapprocher du comportement des serveurs "officiels" de [NCSoft], il existe encore des différences souvent considérés comme des bugs ou lacunes[3] (certaines skills manquantes, formules différentes, comportements du jeu différents).

Le nombre de joueurs maximum pouvant se connecter à un serveur L2J tout en conservant une jouabilité et des performances acceptables est sujet à débats et variable en fonction de la puissance du matériel du serveur, de la bande passante et de la version de L2J utilisée. 1000 joueurs simultanés est l'ordre de grandeur maximum a ce jour.

[modifier] Projets dérivés

Il existe plusieurs forks du projet L2J, en voici les principaux :

  • L2JFree

Connu autrefois sous le nom de L2Jc, L2JFree est un des premiers fork et surement le fork qui a la communauté la plus " active ". Le projet semble s'éloigner d'L2J sur différents points de plus en plus. Cet emulateur est également connu pour souvent proposer une ebauche du serveur d'une version Lineage dès la sortie de cette version en PTS Coréen (PTS = Public Test Server). Cet emulateur permet de plus facilement personnaliser le serveur quand on ne programme pas, et consomme souvent plus de ressources que le projet originel.

  • Red Rabbit Project

L'emulateur Red Rabbit fut connu autrefois sous le nom de L2Jb (c'est vous dire...), c'est un emulateur russe, dans le sens ou l'equipe de developpement est Russe. Il sort egalement des versions un peu en avance comme L2JFree, mais n'est pas reelement orienté mod. Cela dit il est important de preciser que cet emulateur est illégal car les dévéloppeurs de celui-ci ne dévoilent pas le source du projet et donc violent allègrement la license GPL !

  • L2JOneo

C'est encore un autre fork, son dévéloppement est actif et très coordonné avec L2J. D'ailleurs la coopération entre les deux projets est devenue officielle fin 2007. C'est le fork dont le code se raproche le plus au projet originel. Il possede quelques fonctions en plus, quelques implantations, mais qui n'ont pas le merite d'être reelement vérifiées. Certains skills sont implantés avant même d'être sur de l'effet exact du skill. (On retrouve la même chose chez L2JFree) L2JOneo a fusioné avec le projet principal L2J début 2008, il aura fallut peu de temps à L2J pour aspirer ce projet

[modifier] Références

  1. pour plus d'information sur l'installation et la configuration d'un serveur, veillez vous référer au guide d'installation
  2. Pour Lineage II, compétences, sorts magiques, coups spéciaux physiques, résistances spéciales... soit par apprentissage ou intrinsèque à une classe, race de personnage ou de NPC, soit lié à la possession ou usage d'un objet, soit déclenché par des quêtes
  3. débats sur les forums L2J

[modifier] Liens Externes