DBSynchronizer

article publié le 28 octobre 2019

Minecraft est un jeu vidéo qui possède une communauté très importante autour du modding :

Minecraft constitue un cas assez particulier puisqu'un système de support simplifié des mods a bien été créé, mais par la communauté de joueurs elle-même au fil des années, et non pas par les développeurs en tant qu'élément officiel.

Wikipedia

Par exemple, certains mods appelés "shaders" permettent d'améliorer les qualités graphiques du jeu :

Minecraft avec des shaders

Voulant apporter ma propre pierre à l'édifice, j'ai commencé à développer quelques mods sur le jeu. Je me suis alors rendu compte qu'il y avait quasiment à chaque fois une tâche fastidieuse à réaliser : la synchronisation client/serveur. Cette tâche est nécessaire même si on n'a pas envie d'utiliser le mod en multijoueurs, car Minecraft est bâti sur une architecture client/serveur, donc même quand on joue seul, un serveur local tourne.

J'ai alors développé le mod "DBSynchronizer" qui est totalement transparent pour le joueur, mais qui sert de bibliothèque pour les autres moddeurs.

Cette bibliothèque donne accès à une base de données légère stockée en RAM. Les données qui y sont enregistrées sont automatiquement synchronisées entre le serveur et les clients. Elles sont également stockées dans la sauvegarde de la partie.

Démonstration rapide du stockage d'un entier :

DatabaseGetter.getInstance(MOD_ID).getPersistentFolder().setInt("an integer", 42);

DBSyncronizer est disponible en téléchargement ici et un tutoriel est disponible ici.