Détails du Projet

Arkanda

Arreté Personnel

Informations Projet

Role

Chef de projet - Développeur Full-Stack - Responsable Infrastructure / DevOps

Team size

4 devs

Timeline

septembre 2019 → septembre 2023

Arkanda

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

Java
Spigot
Spigot
PaperMC
PaperMC
BungeeCord
BungeeCord
Laravel
Livewire
Tailwind
AlpineJs
Filament
PostgreSQL

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.

01

Serveur Hub

Mise en place d'un serveur d'accueil principal (Lobby) dédié à la réception et à la centralisation des joueurs.

02

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.

03

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).

04

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.

05

Mini-jeux classiques

Propositions de modes incontournables (Rush, TNT Run, Dé à coudre, etc.).

06

Modération

Développement et intégration de plugins dédié pour faciliter et centraliser le travail de l'équipe de modération.

07

Sauvegarde des données

Enregistrement et persistance des scores, statistiques et informations vitales des joueurs en base de données.

08

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.

09

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.