BerryGames
Öppen källkod

BerryGames

Ett Minecraft servernätverk med upp till 500 platser, byggt på en familj av in-house plugins döpta efter bär, med sju minispel, ett framstegssystem, och en Symfony-sajt kopplad till ett XenForo-forum.

Startdatum

September 2018

Status

Arkiverad

Team

4 medlemmar

Om projektet

BerryGames var ett Minecraft minispel nätverk, och det äldsta i denna portfölj: den första commit skedde i september 2018, på en minispel plugin kallad WitchRush. Arkitekturen var uppdelad mellan en familj av plugins, var och en döpt efter ett bär. GooseBerry var BungeeCord proxy som dirigerade spelare mellan servrar, CloudBerry var Spigot API som delades av varje spel, SkyBerry var serverkärnan, och StrawBerry var ett REST API som exponerade spelardata till webbplatsen. En hub höll lobbyn, med sina egna framsteg som visade mynt, krediter, nivå och erfarenhet. Sju minispel kördes ovanpå: SkyWars, BedWars med åtta lag och diamantgeneratorer, GroundFall och dess TNT-poäng, Catfight, Pvpwall, Pitchout, och WitchRush. Spelare tjänade blåbär och krediter, och slutskärmar sammanfattade vad varje omgång gav dem. Personal hade verktyg inne i spelet istället för ett separat kontor: ett vännersystem, och en serverhanteringsmeny som växlade en server mellan offentlig, Beta VIP och underhåll utan att lämna Minecraft. Den offentliga sidan var en Symfony-sajt kopplad till ett XenForo-forum, som visade aktiva spelarantal per spel bredvid Discord-flödet. En React-omdesign påbörjades i början av 2021 men blev aldrig färdig. De nio förråden arkiverades mellan 2020 och 2022.

Påverkan och mätvärden

500

Platser

Kapacitet som meddelats i serverlistan

7

Minispel

Från SkyWars till WitchRush

9

Förråd

Plugins, API, sajt, och omdesigns

Nyckelfunktioner

Sju minispel

SkyWars, BedWars, GroundFall, Catfight, Pvpwall, Pitchout, och WitchRush, var och en med sina egna regler och kartor

Server nätverk

En BungeeCord proxy som dirigerade spelare över Spigot servrar, med ett delat API och en serverkärna under

Framsteg och valutor

Mynt, krediter, blåbär, nivåer och erfarenhet som förs mellan spel och visas på lobbyens poängtavla

In-game personalverktyg

En hanteringsmeny som växlar en server mellan offentlig, beta VIP och underhåll utan att lämna spelet

Community-sajt

En Symfony-sajt kopplad till ett XenForo-forum, som visar aktiva spelarantal per spel och Discord-flödet

Vänner system

Lägga till och följa spelare över nätverket, från en interaktionsmeny i spelet

Använda teknologier

Java

Varje plugin på nätverket

Spigot

Spelservrar, det delade API:t, och serverkärnan

BungeeCord

Proxy som dirigerar spelare mellan servrar

Symfony

Community-sajt och dess REST-konsumtion

XenForo

Forum och konton bakom sajten

React

Ofärdig omdesign av sajten från 2021

Galleri

Lobby, med poängtavlan för framsteg

Lobby, med poängtavlan för framsteg

SkyWars, med kartavstämning och kit

SkyWars, med kartavstämning och kit

BedWars, åtta lag och diamantgeneratorer

BedWars, åtta lag och diamantgeneratorer

Slutet av en GroundFall-runda och dess belöningar

Slutet av en GroundFall-runda och dess belöningar

Vännermeny och serverhantering, båda inne i spelet

Vännermeny och serverhantering, båda inne i spelet

Community-sajt, med aktiva spelarantal per spel

Community-sajt, med aktiva spelarantal per spel

Teamet

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

Utmaningar

  • Dirigera spelare över flera servrar samtidigt som nätverket känns som en enda plats

  • Bära valutor, nivåer och framsteg mellan spel som körs på separata servrar

  • Skriva en distinkt spelloop, poängtavla, och belöningsschema för vart och ett av de sju spelen

  • Ge personal verktyg för att driva nätverket från inne i Minecraft istället för från ett kontor

  • Koppla en Symfony-sajt till ett XenForo-forum så konton och inlägg hölls på ett och samma ställe

Viktiga lärdomar

  • Det mesta av arbetet gick till proxyn, API:t, och kärnan innan ett enda spel kunde lanseras

  • Antal spelare och Discord var viktigare för nätverket än någon enskild funktion

  • Byggare, moderatorer och communitypersonal lämnade inga commits, så förråden ger kredit till en bråkdel av de involverade

  • Att driva ett nätverk lärde serverarkitektur, moderering, och versionshantering tidigare än något klientprojekt skulle ha gjort

Framtida perspektiv

Alla nio förråd är arkiverade, och nätverket är offline.

Intresserad av det här projektet?

Upptäck hur vi kan hjälpa dig att skapa ett liknande projekt.