BerryGames
Kod źródłowy

BerryGames

Sieć serwerów Minecraft działająca do 500 slotów, zbudowana na bazie rodziny wtyczek stworzonych wewnętrznie, nazwanych imionami owoców, z siedmioma minigrami, systemem postępu oraz stroną Symfony połączoną z forum XenForo.

Data rozpoczęcia

September 2018

Status

Zarchiwizowany

Zespół

4 członkowie

O projekcie

BerryGames była siecią minigier Minecraft i najstarszą rzeczą w tym portfolio: pierwszy commit miał miejsce we wrześniu 2018 roku, w wtyczce minigrowej o nazwie WitchRush. Architektura była podzielona na rodzinę wtyczek, z każdą nazwaną imieniem owocu. GooseBerry była proxy BungeeCordem, które kierowało graczy między serwerami, CloudBerry to API Spigot używane przez każdą grę, SkyBerry to rdzeń serwera, a StrawBerry to API REST ujawniające dane gracza na stronie. Hala (Hub) miała lobby, z własnym postępem wyświetlającym monety, kredyty, poziom i doświadczenie. Na górze działało siedem minigier: SkyWars, BedWars z ośmioma drużynami i generatorami diamentów, GroundFall z punktowaniem TNT, Catfight, Pvpwall, Pitchout i WitchRush. Gracze zdobywali jagody i kredyty, a ekrany końcowe podsumowywały, co każda runda im dała. Personel miał narzędzia w grze zamiast osobnego biura: system znajomych oraz menu zarządzania serwerem, które zmieniało serwer między Public, Beta VIP i Maintenance bez opuszczania Minecrafta. Publiczna twarz to strona Symfony połączona z forum XenForo, pokazująca aktualną liczbę graczy na żywo dla każdej gry obok kanału Discord. Prace nad nowym wyglądem w React zaczęto na początku 2021 roku i nigdy ich nie ukończono. Dziewięć repozytoriów zostało zarchiwizowanych między 2020 a 2022 rokiem.

Wpływ i metryki

500

Sloty

Pojemność ogłoszona na liście serwerów

7

Minigry

Od SkyWars do WitchRush

9

Repozytoria

Wtyczki, API, strona i przebudowy

Kluczowe cechy

Siedem minigier

SkyWars, BedWars, GroundFall, Catfight, Pvpwall, Pitchout i WitchRush, każda z własnymi zasadami i mapami

Sieć serwerów

Proxy BungeeCord kierujące graczami między serwerami Spigot, z współdzielonym API i rdzeniem serwera pod spodem

Postęp i waluty

Monety, kredyty, jagody, poziomy i doświadczenie przenoszone między grami i wyświetlane na tablicy wyników w lobby

Narzędzia dla personelu w grze

Menu zarządzania zmieniające serwer między publicznym, beta VIP i maintenance bez opuszczania gry

Strona społecznościowa

Strona oparta na Symfony połączona z forum XenForo, pokazująca aktualne liczby graczy na żywo dla każdej gry i kanał Discord

System znajomych

Dodawanie i śledzenie graczy w sieci z menu interakcji w grze

Wykorzystane technologie

Java

Każda wtyczka w sieci

Spigot

Serwery gier, współdzielone API i rdzeń serwera

BungeeCord

Proxy kierujące graczami między serwerami

Symfony

Strona społecznościowa i jej REST API

XenForo

Forum i konta związane ze stroną

React

Niedokończona przebudowa strony z 2021 roku

Galeria

Lobby z tablicą wyników postępu

Lobby z tablicą wyników postępu

SkyWars, z głosowaniem na mapy i zestawami

SkyWars, z głosowaniem na mapy i zestawami

BedWars, osiem drużyn i generatory diamentów

BedWars, osiem drużyn i generatory diamentów

Koniec rundy GroundFall i jego nagrody

Koniec rundy GroundFall i jego nagrody

Menu znajomych i zarządzanie serwerem, oba w grze

Menu znajomych i zarządzanie serwerem, oba w grze

Strona społecznościowa z aktualną liczbą graczy na żywo dla każdej gry

Strona społecznościowa z aktualną liczbą graczy na żywo dla każdej gry

Zespół

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

Napotkane wyzwania

  • Kierowanie graczami przez kilka serwerów, zachowując wrażenie jednego miejsca w sieci

  • Przenoszenie walut, poziomów i postępów między grami działającymi na oddzielnych serwerach

  • Pisanie wyraźnej pętli gry, tablicy wyników i tabeli nagród dla każdej z siedmiu gier

  • Danie pracownikom narzędzi do zarządzania siecią z wnętrza Minecrafta zamiast z biura

  • Połączenie strony Symfony z forum XenForo, tak aby konta i posty pozostawały w jednym miejscu

Kluczowe nauki

  • Większość pracy poszła w proxy, API i rdzeń przed wysłaniem jakiejkolwiek gry

  • Liczba graczy i Discord były ważniejsze dla sieci niż jakakolwiek indywidualna funkcja

  • Budowniczowie, moderatorzy i pracownicy społeczności nie zostawiali commitów, więc repozytoria przypisują kredyty tylko ułamkowi zaangażowanych osób

  • Prowadzenie sieci nauczyło architektury serwerów, moderacji i zarządzania wydaniami wcześniej niż jakikolwiek projekt kliencki

Perspektywy na przyszłość

Wszystkie dziewięć repozytoriów jest zarchiwizowanych, a sieć jest offline.

Zainteresowany tym projektem?

Dowiedz się, jak możemy pomóc Ci stworzyć podobny projekt.