Détails du Projet
Arkanda
Informations Projet
Chef de projet - Développeur Full-Stack - Responsable Infrastructure / DevOps
4 devs
septembre 2019 → septembre 2023
Description
Arkanda était un projet ambitieux mené en équipe : la création d'un serveur Minecraft mini-jeux adossé à un écosystème web complet pour la gestion, la communication et les statistiques des joueurs. Le développement a été interrompu en raison de contraintes financières liées à l'hébergement de l'infrastructure, combinées aux restrictions de l'EULA de Minecraft qui ont limité les options de monétisation. Points clés : Écosystème Web & Jeu : Interconnexion entre le site web et le serveur de jeu pour la synchronisation des données et des statistiques. Gestion d'Infrastructure : Configuration et optimisation des serveurs, incluant la mise en place de load balancing. Travail en Équipe : Collaboration technique et organisationnelle sur un projet multi-modules.
Technologies
Stack
Problème
Problème initial
Lancer un serveur Minecraft mini-jeux implique de gros défis : gérer une infrastructure serveur solide, développer des fonctionnalités custom et garder un lien direct avec les joueurs via le web pour leurs stats et la vie du serveur.
Objectif
Objectif du projet
Offrir une expérience fluide et communautaire en combinant une architecture de jeu réactive (Java, Spigot, PaperMC, Bungeecord) à un site web dynamique (stats en direct, modération, espaces communautaires) développé avec la TALL Stack (Tailwind,AlpineJS, Livewire, Laravel).
Fonctionnel
Exigences fonctionnelles
Fonctionnalités principales pensées pour l'expérience utilisateur et la stabilité du projet.
Serveur Hub
Mise en place d'un serveur d'accueil principal (Lobby) dédié à la réception et à la centralisation des joueurs.
Load Balancing
Répartition de la charge sur plusieurs serveurs Hub pour fluidifier l'accueil, ainsi que sur plusieurs serveurs de jeu pour exécuter et équilibrer les différentes parties de mini-jeux en parallèle.
Guncraft
Mode de jeu orienté Call of Duty avec des classes d'armes spécifiques et différents modes de combat (chacun pour soi, en équipe).
Valoritz
Mode de jeu style Hero Shooter (type Overwatch) opposant deux équipes de 6 joueurs qui s'affrontent avec des classes dotées d'aptitudes spéciales.
Mini-jeux classiques
Propositions de modes incontournables (Rush, TNT Run, Dé à coudre, etc.).
Modération
Développement et intégration de plugins dédié pour faciliter et centraliser le travail de l'équipe de modération.
Sauvegarde des données
Enregistrement et persistance des scores, statistiques et informations vitales des joueurs en base de données.
Forum
Espace communautaire d'échange et de discussion permettant aux joueurs de proposer leurs idées et de communiquer avec l'équipe ou entre eux.
Site Web
Plateforme pour la présentation du projet, la publication de news, le suivi des classements en temps réel et l'accès détaillé aux statistiques individuelles.
Architecture
Spécifications techniques
Stack, infrastructure et choix techniques utilisés pour construire le projet.
Infrastructure Serveur (Infra)
Infrastructure : Architecture multi-VPS Linux interconnectée via BungeeCord pour gérer le proxy, la répartition de charge (load balancing) et le flux de joueurs entre le Hub et les mini-jeux.
Sécurité
Sécurité & Administration : Configuration du pare-feu (UFW / règles réseau) pour isoler les VPS de jeu et sécuriser l'accès à la base de données PostgreSQL depuis l'extérieur.
Versioning & Workflow de dev
Gestion de code : Versioning de l'ensemble du code source (Java et Laravel) via Git / GitHub avec séparation des environnements.
Intégration d'API tierces
API & Services tiers : Intégration de l'API Mojang (récupération des skins et UUIDs) et webhooks Discord pour les alertes de modération/news.
Plugins Minecraft (Java)
Développement Java : Création de plugins custom via les API Spigot & PaperMC pour orchestrer la logique métier des jeux, les statistiques de parties et les fonctionnalités de modération.
Développement Web (Laravel)
Développement Web : Exploitation de la TALL Stack (Tailwind CSS, Alpine.js, Laravel, Livewire) pour concevoir un écosystème web dynamique et réactif (forum, actualités, classements en direct et statistiques joueurs).
Base de données
Conception d'un schéma relationnel PostgreSQL centralisé, assurant le stockage et la synchronisation en temps réel des données entre l'infrastructure Java (serveurs de jeu) et la plateforme web.
Retour d'expérience
Problèmes rencontrés
Contraintes techniques, économiques et organisationnelles rencontrées durant le développement.
La maintenance et le passage à l'échelle d'une architecture multi-VPS sous Linux sont devenus trop onéreux sur le long terme pour une structure indépendante.
Difficulté à gérer le routage des joueurs et le passage d'état (session state) entre les serveurs sans coupure ni désynchronisation des parties de mini-jeux.
Complexité d'assurer une persistance fluide des données en temps réel entre l'API Java (Paper/Spigot) et la base PostgreSQL du site web sous forte charge.
La stricte interdiction par Mojang de commercialiser des avantages en jeu (Pay-to-Win) a brisé le modèle économique initialement prévu pour rentabiliser l'hébergement.
Difficulté à concevoir des systèmes de progression et de récompenses motivants pour les joueurs tout en restant 100 % conforme aux règles de l'EULA.
Volume de développement colossal (maintenance des plugins Java, de la TALL Stack et de l'infra Linux) reposant sur une équipe entièrement bénévole.