ZenCraft V3.5 : Découvrez la Nouvelle Architecture


ZenCraft V3.5 : Découvrez la Nouvelle Architecture

Table des matières

  1. Introduction
  2. ZenLib1 - Notre Infrastructure Actuelle
  3. ZenLib2 - La Nouvelle Architecture
  4. Ce Que Cela Change Pour Vous
  5. Statut et Perspectives
  6. Questions Fréquentes







Introduction

Chers joueurs de ZenCraft,

Depuis sa création, ZenCraft a toujours eu une vision : vous offrir une expérience Minecraft survie unique, fluide et évolutive. Aujourd'hui, nous souhaitons partager avec vous les coulisses de notre infrastructure et les évolutions majeures que nous préparons.

Ce document vous explique comment fonctionne actuellement le framework de développement de ZenCraft (ZenLib), quelles sont ses limitations, et comment notre nouvelle infrastructure accompagnée du nouveau framework (ZenLib2) va révolutionner votre expérience de jeu.

Pourquoi ce whitepaper ? Parce que la transparence est une valeur fondamentale de ZenCraft. Vous méritez de comprendre ce sur quoi nous travaillons et pourquoi.

Glossaire :

  • ZenLib1 : Framework de développement de ZenCraft V3. En production, stable, c'est ce que vous utilisez aujourd'hui
  • ZenLib2 : Framework next-gen pour ZenCraft V3.5. En développement actif, prochainement disponible

ZenLib1 - Notre Infrastructure Actuelle

Comment ça marche aujourd'hui

Actuellement, ZenCraft fonctionne sur une architecture que nous appelons "1 serveur = 1 monde". Concrètement, cela signifie que chaque monde du serveur (spawn, construction, ressources) tourne sur sa propre instance de serveur Minecraft.

┌─────────────────────────────────────────────────────────────────┐
│                    ARCHITECTURE ZENLIB1                         │
│                       (Système Actuel)                          │
└─────────────────────────────────────────────────────────────────┘

                         ┌─────────────┐
                         │   JOUEUR    │
                         │  (Vous!)    │
                         └──────┬──────┘
                                │
                                ▼
                    ┌───────────────────────┐
                    │    Proxy Velocity     │
                    │   (Point d'entrée)    │
                    │    play.zencraft.net  │
                    └───────────┬───────────┘
                                │
           ┌────────────────────┼───────────────────────┐
           │                    │                       │
           ▼                    ▼                       ▼
 ┌───────────────┐       ┌───────────────┐      ┌───────────────┐
 │  Serveur 1    │       │  Serveur 2    │      │  Serveur 3    │
 │               │       │               │      │               │
 │  ┌─────────┐  │       │  ┌─────────┐  │      │  ┌─────────┐  │
 │  │ SPAWN   │  │       │  │CONSTRU#1│  │      │  │RESSOURCE│  │
 │  │(1 monde)│  │       │  │(1 monde)│  │      │  │(1 monde)│  │
 │  └─────────┘  │       │  └─────────┘  │      │  └─────────┘  │
 └───────────────┘       └───────────────┘      └───────────────┘

    1 SERVEUR = 1 MONDE (architecture rigide)

Les mondes supportés

ZenLib1 supporte quatre types de mondes :

  • Login : Monde de connexion et vérification
  • Spawn : Monde principal où vous arrivez
  • Construction : Monde dédié à vos constructions
  • Ressources : Monde pour récolter des ressources (reset régulièrement)

Les limitations de ce système

Cette architecture, bien que fonctionnelle, présente plusieurs contraintes :

1. Rigidité Chaque monde nécessite son propre serveur dédié. Ajouter un nouveau monde = configurer un nouveau serveur complet. C'est coûteux en temps et en ressources.

2. Pas de mondes privés Il est techniquement impossible de vous offrir votre propre monde avec cette architecture. Imaginez devoir créer un serveur entier pour chaque joueur... impossible !

3. Scalabilité limitée Minecraft est fondamentalement mono-thread (un seul fil d'exécution). Si 200 joueurs sont sur le construction #1, le serveur du construction #1 souffre, peu importe la puissance de la machine. On ne peut pas simplement "ajouter de la RAM" pour résoudre le problème.

4. Support linguistique limité Le système actuel est principalement conçu pour la communauté francophone. L'internationalisation (multilingue) n'était pas une priorité lors de sa conception.

5. Coordination complexe Synchroniser les données entre serveurs (ZenCoins, inventaires, positions) requiert beaucoup de "bidouillage" technique.


ZenLib2 - La Nouvelle Architecture

Le concept révolutionnaire : les "Workers"

ZenLib2 introduit le concept de Workers. Un Worker est un serveur de calcul intelligent capable d'héberger plusieurs mondes simultanément.

Pensez-y comme un immeuble d'appartements : au lieu d'avoir une maison (serveur) par personne (monde), on a des immeubles (workers) qui peuvent accueillir plusieurs appartements (mondes).

┌─────────────────────────────────────────────────────────────────────────────────────────────────┐
│                                    ARCHITECTURE ZENLIB2                                         │
│                              (Nouvelle Architecture "Cloud")                                    │
└─────────────────────────────────────────────────────────────────────────────────────────────────┘

                                         ┌───────────────┐
                                         │    JOUEUR     │
                                         │   (Vous!)     │
                                         └───────┬───────┘
                                                 │
                                                 ▼
                                    ┌─────────────────────────┐
                                    │     Proxy Velocity      │
                                    │    (Point d'entrée)     │
                                    │    play.zencraft.net    │
                                    │                         │
                                    │   + Tracking Joueurs    │
                                    │   + Routing Intelligent │
                                    └────────────┬────────────┘
                                                 │
         ┌───────────────────────────────────────┼───────────────────────────────────────┐
         │                   │                   │                   │                   │
         ▼                   ▼                   ▼                   ▼                   ▼

┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│    WORKER 1     │ │    WORKER 2     │ │    WORKER 3     │ │    WORKER 4     │ │    WORKER 5     │
│   Spawn/Lobby   │ │   Ressources    │ │  Construction 1 │ │  Construction 2 │ │  Construction 3 │
│   (multi-monde) │ │   (multi-monde) │ │     (dédié)     │ │     (dédié)     │ │     (dédié)     │
├─────────────────┤ ├─────────────────┤ ├─────────────────┤ ├─────────────────┤ ├─────────────────┤
│                 │ │                 │ │                 │ │                 │ │                 │
│ ┌─────────────┐ │ │ ┌─────────────┐ │ │ ┌─────────────┐ │ │ ┌─────────────┐ │ │ ┌─────────────┐ │
│ │    Spawn    │ │ │ │  Ressource  │ │ │ │             │ │ │ │             │ │ │ │             │ │
│ │  Overworld  │ │ │ │  Overworld  │ │ │ │  Constru #1 │ │ │ │  Constru #2 │ │ │ │  Constru #3 │ │
│ └─────────────┘ │ │ └─────────────┘ │ │ │             │ │ │ │             │ │ │ │             │ │
│ ┌─────────────┐ │ │ ┌─────────────┐ │ │ │   Grosses   │ │ │ │   Grosses   │ │ │ │   Grosses   │ │
│ │    Tuto     │ │ │ │  Ressource  │ │ │ │    bases    │ │ │ │    bases    │ │ │ │    bases    │ │
│ │  Overworld  │ │ │ │   Nether    │ │ │ │   joueurs   │ │ │ │   joueurs   │ │ │ │   joueurs   │ │
│ └─────────────┘ │ │ └─────────────┘ │ │ │             │ │ │ │             │ │ │ │             │ │
│ ┌─────────────┐ │ │ ┌─────────────┐ │ │ └─────────────┘ │ │ └─────────────┘ │ │ └─────────────┘ │
│ │  PVP Arena  │ │ │ │  Ressource  │ │ │                 │ │                 │ │                 │
│ │   Nether    │ │ │ │     End     │ │ │  1 monde dédié  │ │  1 monde dédié  │ │  1 monde dédié  │
│ └─────────────┘ │ │ └─────────────┘ │ │  = perfs max !  │ │  = perfs max !  │ │  = perfs max !  │
│                 │ │                 │ │                 │ │                 │ │                 │
└─────────────────┘ └─────────────────┘ └─────────────────┘ └─────────────────┘ └─────────────────┘


┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│    WORKER 6     │ │    WORKER 7     │ │   WORKER ...    │
│  Mondes Joueurs │ │  Mondes Villes  │ │                 │
│   (multi-monde) │ │   (multi-monde) │ │  + de workers   │
├─────────────────┤ ├─────────────────┤ │    déployés     │
│                 │ │                 │ │     selon       │
│ ┌─────────────┐ │ │ ┌─────────────┐ │ │   la demande    │
│ │ Monde Alice │ │ │ │ Monde ville1│ │ │                 │
│ └─────────────┘ │ │ └─────────────┘ │ │  ┌───────────┐  │
│ ┌─────────────┐ │ │ ┌─────────────┐ │ │  │ SCALABLE  │  │
│ │  Monde Bob  │ │ │ │ Monde ville2│ │ │  │     +     │  │
│ └─────────────┘ │ │ └─────────────┘ │ │  │ WORKERS   │  │
│ ┌─────────────┐ │ │ ┌─────────────┐ │ │  └───────────┘  │
│ │Monde Charlie│ │ │ │ Monde ville3│ │ │                 │
│ └─────────────┘ │ │ └─────────────┘ │ │   Scalabilité   │
│       ...       │ │       ...       │ │   horizontale   │
│  (10+ mondes)   │ │  (10+ mondes)   │ │                 │
└─────────────────┘ └─────────────────┘ └─────────────────┘


◄─────────────────────────────────────────────────────────────────────────────────────────────────►
                                      Base de données Redis
                                  (Synchronisation en temps réel)

Pourquoi les mondes Construction ont chacun leur propre worker ?

Les mondes de construction hébergent actuellement vos bases lourdes : fermes automatiques complexes, systèmes de redstone élaborés, grandes structures avec beaucoup d'entités... Ces mondes sont les plus gourmands en ressources. En les isolant chacun sur leur propre worker dédié, nous garantissons des performances optimales.

Et à terme ? Transférez votre base vers votre propre monde !

Avec ZenLib2, nous prévoyons de vous permettre de demander le transfert de votre base depuis un monde construction vers votre propre monde privé. Concrètement :

  • Fini les voisins gênants : Vous avez une base qui s'étend et vous craignez de tomber sur le claim d'un autre joueur ? En transférant vers votre monde privé, vous aurez tout l'espace dont vous rêvez pour vous étendre.
  • Liberté totale : Votre monde, vos règles. Construisez dans toutes les directions sans contrainte. Autorisez uniquement certains joueurs à rejoindre votre monde. Etc.
  • Futur système de villes : À terme, ces mondes privés pourront servir de base pour créer des villes avec un système dédié. Imaginez : votre base devient le centre d'une ville où vous pouvez inviter d'autres joueurs à s'installer, avec des quartiers, des plots, et une économie locale.

Le transfert se fera sur demande auprès du staff, qui s'occupera de déplacer votre construction vers votre nouveau monde. Une fois transférée, votre base bénéficiera de son propre espace isolé, hébergé sur les workers dédiés aux mondes joueurs, et l'ancienne zone en monde construction sera remise à neuf.

Les piliers de ZenLib2

1. Tracking Distribué

Le système sait exactement où se trouve chaque joueur sur le réseau, en temps réel.

  • Tracking des joueurs : UUID, pseudo, worker actuel, monde actuel, dernière position
  • Tracking des workers : État de santé, nombre de joueurs, mondes chargés, capacité
  • Tracking des mondes : Quel worker l'héberge, propriétaire, état (chargé/déchargé)

Concrètement, si vous tapez /tp Alice, le système trouve instantanément Alice sur le réseau, même si elle est sur un autre worker.

2. Téléportation Transparente

Avec ZenLib1, changer de monde implique une téléportation bloquante. Avec ZenLib2 :

  • Téléportation fluide : Pas de "flash" ni de freeze
  • Cross-worker : Vous pouvez vous téléporter vers un monde sur un autre worker sans le savoir
  • Système de warmup : Délai configurable avant téléportation
  • Événements : Les plugins peuvent réagir aux téléportations (protection de zones, etc.)

Comment ça marche ?

  1. Vous demandez une téléportation
  2. Le système localise la cible (joueur ou coordonnées)
  3. Si la cible est sur un autre worker, une "réservation" est créée
  4. Vous êtes transféré de manière transparente
  5. Vous apparaissez directement aux bonnes coordonnées (pas au spawn puis téléporté)

3. Messagerie Réseau

Envoyer un message à n'importe quel joueur, où qu'il soit sur le réseau :

  • Messages privés : /msg Alice Salut ! fonctionne même si Alice est sur un autre worker
  • Broadcasts : Annonces serveur visibles par tous les joueurs du réseau.

Le système est intelligent : si le destinataire est sur le même worker, le message est envoyé directement. Sinon, il passe par le proxy Velocity qui le route vers le bon worker.

4. Système Multilingue (i18n)

ZenLib2 intègre un système de traduction complet :

  • Détection automatique : Le jeu utilise la langue de votre client Minecraft
  • Fallback intelligent : Si une traduction n'existe pas en fr_CA, on essaie fr, puis en, puis la clé
  • Extensible : Facile d'ajouter de nouvelles langues
Exemple de fallback :
   fr_FR (français France)
      ↓ pas trouvé
   fr (français générique)
      ↓ pas trouvé
   en (anglais par défaut)
      ↓ pas trouvé
   clé brute (pour debug)

Cela nous permettra d'ouvrir ZenCraft à des communautés internationales (anglophone, hispanophone, etc.) tout en gardant le français comme langue principale.

5. Comptes Centralisés

Vos données sont synchronisées sur tout le réseau :

  • Statistiques : Vos données sont les même partout, mis à jour en temps réel
  • Authentification : Connexion unique, valide sur tous les workers
  • Opérations atomiques : Pas de risque de duplication ou de perte de données

6. Monitoring et Robustesse

Le système surveille en permanence la santé du réseau :

  • Heartbeat : Chaque worker signale qu'il est vivant toutes les 10 secondes
  • Détection de pannes : Si un worker ne répond plus pendant 60 secondes, il est marqué en erreur
  • Locks distribués : Les opérations critiques (transfert d'argent, téléportation, etc) sont protégées contre les conflits
  • Pas de perte de données : En cas de crash, vos données sont en sécurité dans Redis et MySQL

Ce Que Cela Change Pour Vous

Mondes Privés Joueurs

C'est LA nouveauté majeure !

Avec ZenLib2, chaque joueur pourra avoir son propre monde :

  • Votre espace : Un monde entier rien qu'à vous (ou à partager)
  • Chargement à la demande : Votre monde n'est chargé que quand vous y êtes, économisant les ressources
  • Invitations : Invitez vos amis à visiter ou construire avec vous
  • Gestion automatique : Pas besoin de demander à un admin, tout est self-service

Les mondes privés sont répartis intelligemment sur les workers dédiés. Si un worker de mondes joueurs devient surchargé, le système en utilise un autre automatiquement.

Plus de Joueurs Simultanés

L'architecture horizontale de ZenLib2 permet une vraie scalabilité :

Aspect ZenLib1 ZenLib2
Joueurs max ~200-300 1000+ (extensible)
Ajout de capacité Difficile Ajouter un worker
Répartition de charge Impossible Automatique

Comment ? Au lieu de mettre tous les œufs dans le même panier (un gros serveur), on répartit la charge sur plusieurs workers. Si un worker est bondé, les joueurs sont naturellement répartis, et on peut ajouter des workers à la volée.

Ouverture Internationale

Le système multilingue natif nous permettra :

  • Communauté francophone : Toujours notre base, toujours prioritaire
  • Communauté anglophone : Bienvenue aux joueurs internationaux
  • Autres langues : Espagnol, allemand... selon la demande

Tous les messages système, commandes, et interfaces seront disponibles dans votre langue.

Robustesse et Fiabilité

ZenLib2 est conçu pour être résilient :

  • Détection automatique des pannes : Un worker qui crash est détecté en moins d'une minute
  • Pas de duplication : Les locks distribués empêchent les exploits de duplication
  • Récupération gracieuse : En cas de problème, vos données sont protégées
  • Shutdown propre : Les workers attendent que les joueurs partent avant de s'éteindre

Statut et Perspectives

Où en sommes-nous ?

Composant Statut
ZenLib1 (actuel) En production, stable
ZenLib2 Core Développement actif
Tracking distribué Implémenté
Téléportation cross-worker Implémenté
Messagerie réseau Implémenté
Système i18n Implémenté
Service comptes Implémenté
Mondes privés joueurs En cours

La transition

La migration de ZenLib1 vers ZenLib2 sera progressive et transparente :

  1. Phase 1 : Tests internes et corrections
  2. Phase 2 : Déploiement sur serveur de test avec volontaires
  3. Phase 3 : Mise en production de la nouvelle infrastructure (maintenance d'environ 24h à 48h)
  4. Phase 4 : Activation des nouvelles fonctionnalités (mondes privés) pour les ZenPass en avant première
  5. Phase 5 : Mise en place des mondes privés pour tout les joueurs

Questions Fréquentes

"Vais-je perdre mes données ?"

Non. Toutes vos données (ZenCoins, progression, constructions) seront migrées. La base de données reste la même, c'est uniquement l'infrastructure qui évolue.

"Quand est-ce que ça arrive ?"

Le développement est actif. Nous ne donnons pas de date précise pour éviter les déceptions, mais nous communiquerons régulièrement sur l'avancement via Discord.

"Est-ce que le serveur sera en maintenance longtemps ?"

Environ 1 à 2 jours. Il y aura peut-être quelques redémarrages courts une fois la nouvelle infrastructure déployée afin de réaliser des hot-fix.

"Comment fonctionneront les mondes privés ?"

Chaque joueur pourra créer son monde de manière autonome à partir d'un certain grade OU de faire une demande de transfert d'une base existante en monde construction vers un monde privé. Le monde sera hébergé sur un worker dédié aux mondes joueurs. Vous pourrez y inviter des amis, le protéger, et le personnaliser.

"L'ouverture à d'autre langue ne risque t'il pas de créer de la confusion ?"

Aucun souci ! Le français reste la langue principale de ZenCraft. Le multilingue est une option qui sera ajoutée plus tard pour ceux qui le souhaitent et pour accueillir de nouveaux joueurs. À terme, nous prévoyons d'intégrer un système de traduction automatique par IA afin que les joueurs puissent communiquer entre eux peu importe leurs langue d'origine.

"Pourquoi changer si ça marche ?"

ZenLib1 fonctionne, mais il a atteint ses limites. Pour vous offrir les mondes privés, accueillir plus de joueurs, et préparer l'avenir, nous devons moderniser l'infrastructure. C'est un investissement pour les années à venir.


Conclusion

ZenLib2 représente une évolution majeure de l'infrastructure ZenCraft. Cette nouvelle architecture "cloud" nous permettra de vous offrir des fonctionnalités longtemps attendues (système de villes, mondes privés, système de quêtes, etc), d'accueillir plus de joueurs, et d'ouvrir ZenCraft à l'international.

Nous sommes enthousiastes à l'idée de partager ces avancées avec vous et nous vous remercions pour votre patience et votre confiance.

L'équipe ZenCraft


Ce document sera mis à jour au fur et à mesure de l'avancement du développement.

Dernière mise à jour : Janvier 2026