BerryGames
Open Source

BerryGames

Un réseau de serveurs Minecraft pouvant accueillir jusqu'à 500 slots, construit sur une famille de plugins maison nommés d'après des baies, avec sept minijeux, un système de progression et un site Symfony branché sur un forum XenForo.

Date de début

septembre 2018

Statut

Archivé

Équipe

4 membres

À propos du projet

BerryGames était un réseau de minijeux Minecraft, et la plus ancienne chose dans ce portfolio : le premier commit a eu lieu en septembre 2018, sur un plugin de minijeu appelé WitchRush. L'architecture était répartie sur une famille de plugins, chacun nommé d'après une baie. GooseBerry était le proxy BungeeCord routant les joueurs entre les serveurs, CloudBerry l'API Spigot partagée par chaque jeu, SkyBerry le cœur du serveur, et StrawBerry une API REST exposant les données des joueurs sur le site web. Un Hub contenait le lobby, avec sa propre progression montrant des pièces, des crédits, un niveau et de l'expérience. Sept minijeux se déroulaient dessus : SkyWars, BedWars avec huit équipes et des générateurs de diamants, GroundFall et son scoring TNT, Catfight, Pvpwall, Pitchout et WitchRush. Les joueurs gagnaient des myrtilles et des crédits, et des écrans de fin de jeu résumaient ce que chaque round leur avait donné. Le personnel avait des outils à l'intérieur du jeu plutôt qu'un bureau séparé : un système d'amis et un menu de gestion du serveur changeant un serveur entre Public, Beta VIP et Maintenance sans quitter Minecraft. Le visage public était un site Symfony branché sur un forum XenForo, affichant les comptes de joueurs en direct par jeu à côté du flux Discord. Un redesign en React a commencé début 2021 et n'a jamais été terminé. Les neuf dépôts ont été archivés entre 2020 et 2022.

Impact et métriques

500

Slots

Capacité annoncée dans la liste des serveurs

7

Minijeux

De SkyWars à WitchRush

9

Dépôts

Plugins, API, site et redesigns

Fonctionnalités clés

Sept minijeux

SkyWars, BedWars, GroundFall, Catfight, Pvpwall, Pitchout et WitchRush, chacun avec ses propres règles et cartes

Réseau serveur

Un proxy BungeeCord routant les joueurs à travers des serveurs Spigot, avec une API partagée et un cœur de serveur en dessous

Progression et monnaies

Pièces, crédits, myrtilles, niveaux et expérience transférés entre les jeux et affichés sur le tableau des scores du lobby

Outils pour le personnel en jeu

Un menu de gestion changeant un serveur entre public, beta VIP et maintenance sans quitter le jeu

Site communautaire

Un site Symfony branché sur un forum XenForo, montrant les comptes de joueurs en direct par jeu et le flux Discord

Système d'amis

Ajouter et suivre des joueurs à travers le réseau, depuis un menu d'interaction en jeu

Technologies utilisées

Java

Chaque plugin sur le réseau

Spigot

Serveurs de jeux, l'API partagée et le cœur du serveur

BungeeCord

Proxy routant les joueurs entre les serveurs

Symfony

Site communautaire et sa consommation REST

XenForo

Forum et comptes derrière le site

React

Redesign inachevé du site de 2021

Galerie

Lobby, avec le tableau des scores de progression

Lobby, avec le tableau des scores de progression

SkyWars, avec vote de carte et kits

SkyWars, avec vote de carte et kits

BedWars, huit équipes et générateurs de diamants

BedWars, huit équipes et générateurs de diamants

Fin d'une manche de GroundFall et ses récompenses

Fin d'une manche de GroundFall et ses récompenses

Menu d'amis et gestion de serveur, tous deux dans le jeu

Menu d'amis et gestion de serveur, tous deux dans le jeu

Site communautaire, avec des comptes de joueurs en direct par jeu

Site communautaire, avec des comptes de joueurs en direct par jeu

L'équipe

Antoine Kingue

Antoine Kingue

Web Developer

Jérémy Baudrin

Jérémy Baudrin

Backend Developer

Arthur Danjou

Gameplay Developer

Lucas Bodin

Lucas Bodin

Designer

Défis rencontrés

  • Routage des joueurs à travers plusieurs serveurs tout en gardant le réseau comme un seul endroit

  • Transport de monnaies, niveaux et progression entre les jeux fonctionnant sur des serveurs séparés

  • Écrire une boucle de jeu distincte, un tableau des scores et une table de récompenses pour chacun des sept jeux

  • Donner au personnel les outils pour gérer le réseau depuis Minecraft plutôt que d'un bureau séparé

  • Brancher un site Symfony sur un forum XenForo pour que les comptes et les publications restent au même endroit

Apprentissages clés

  • La plupart du travail était consacré au proxy, à l'API et au cœur avant qu'un seul jeu puisse être publié

  • Les comptes de joueurs et le Discord comptaient plus pour le réseau que toute fonctionnalité individuelle

  • Les bâtisseurs, modérateurs et personnel communautaire n'ont laissé aucun commit, donc les dépôts créditent une fraction des personnes impliquées

  • Faire fonctionner un réseau a enseigné l'architecture serveur, la modération et la gestion des versions plus tôt que tout projet client ne l'aurait fait

Perspectives futures

Tous les neuf dépôts sont archivés, et le réseau est hors ligne.

Intéressé par ce projet ?

Découvrez comment nous pouvons vous aider à réaliser un projet similaire.