Un serveur Minecraft peut fonctionner avec une accumulation de plugins indépendants.
LodgeCraft prend une autre direction.
L'idée est de construire un ensemble de systèmes capables de communiquer entre eux autour d'un cœur commun.
C'est le rôle de LodgeCore.
Une identité pour chaque joueur
Dès qu'un joueur rejoint LodgeCraft, plusieurs systèmes doivent pouvoir connaître son état : son argent, son niveau, son rang et plus tard de nombreuses autres informations.
Pour éviter que chaque plugin construise sa propre version du joueur, LodgeCore centralise cette logique autour d'un profil commun.
Les profils peuvent être chargés lors de la connexion, manipulés par les différents systèmes puis sauvegardés de manière centralisée.
Une tâche de sauvegarde automatique vient compléter ce fonctionnement afin que les données du réseau ne reposent pas uniquement sur les déconnexions.
Construire une économie commune
L'économie fait partie des premiers systèmes intégrés au cœur de LodgeCraft.
Une API dédiée permet aux autres modules de consulter et modifier les soldes sans avoir à connaître le fonctionnement interne de la base de données.
Le système monétaire est également retravaillé afin d'utiliser des valeurs entières.
Les 10 et 11 juillet, plusieurs modifications sont consacrées à cette migration et à l'unification du fonctionnement de la monnaie dans le projet.
Ce choix prépare surtout la suite : boutiques, hôtel des ventes, récompenses, rangs et autres systèmes économiques pourront tous s'appuyer sur la même base.
Faire parler les systèmes entre eux
Centraliser les données ne suffit pas.
Quand le solde d'un joueur change, son interface doit pouvoir se mettre à jour. Lorsqu'il obtient un nouveau rang, ses permissions et son affichage doivent suivre.
LodgeCore commence donc à fonctionner autour d'un système d'événements.
Des événements sont notamment créés pour signaler les changements de balance, de rang ou l'état des profils joueurs.
Les autres modules peuvent alors réagir à ces changements sans devoir vérifier continuellement la base de données.
Cette architecture deviendra particulièrement importante quelques jours plus tard avec LodgeUI.
Une base de données qui peut évoluer
Plus LodgeCraft grandit, plus sa structure de données est amenée à changer.
Le 14 juillet, LodgeCore reçoit donc un système de migration de schéma SQL.
L'objectif est de pouvoir faire évoluer la structure de la base de données avec le projet sans devoir modifier manuellement chaque installation.
Le cœur du serveur commence ainsi à prendre une forme beaucoup plus durable : API, services, repositories, événements et migrations travaillent autour des mêmes données.
Les rangs deviennent un véritable système
En parallèle, LodgeRanks évolue fortement.
Les définitions des rangs sont déplacées dans un fichier de configuration dédié afin de ne plus dépendre entièrement de valeurs écrites directement dans le code.
Le système gère les changements de rang, les informations VIP, le temps de jeu et la progression permettant d'accéder à certains rangs.
Les transactions liées au rank-up sont également sécurisées afin d'éviter qu'une progression de rang et son paiement puissent se retrouver désynchronisés.
LodgeRanks devient progressivement la référence du réseau pour définir ce qu'est un rang.
Centraliser les permissions
Les rangs et les permissions sont naturellement liés, mais LodgeCraft conserve deux responsabilités distinctes.
LodgeRanks définit les rangs et les permissions qui leur sont associées.
LodgePerm se charge ensuite de résoudre les permissions réellement accordées aux joueurs, tout en permettant la gestion de permissions individuelles.
Le 15 juillet, la logique est restructurée afin de centraliser les permissions des rangs dans LodgeRanks.
Deux jours plus tard, le 17 juillet, LodgePerm V2 est finalisé.
Le système dispose alors de sa propre API, de permissions utilisateurs, d'un système de résolution, d'événements de modification et de mécanismes de rafraîchissement lorsqu'un rang change.
Un projet devenu modulaire
Derrière ces systèmes apparaît surtout une philosophie qui va guider la suite du développement.
LodgeCraft n'est pas construit comme un énorme plugin chargé de tout faire.
Le projet est découpé en modules spécialisés. LodgeCore fournit les fondations et les API communes, tandis que les autres composants peuvent se concentrer sur une responsabilité précise.
Économie, niveaux, rangs, permissions, interfaces, marchés ou encore fonctionnalités sociales peuvent ainsi évoluer séparément tout en partageant les mêmes fondations.
Une vraie expérience
Survival.
Les fondations sont là. Il est maintenant temps de construire ce que les joueurs verront réellement : progression, niveaux, compétences, récompenses, spawners et fonctionnalités du quotidien.
DEVLOG #03 →