BerryGames
Código Aberto

BerryGames

Uma rede de servidor Minecraft com até 500 slots, construída em uma família de plugins internos chamados de frutas silvestres, com sete minijogos, um sistema de progressão e um site Symfony conectado a um fórum XenForo.

Data de início

September 2018

Status

Arquivado

Equipe

4 membros

Sobre o projeto

BerryGames foi uma rede de minijogos de Minecraft, e a coisa mais antiga neste portfólio: o primeiro commit aconteceu em setembro de 2018, em um plugin de minijogo chamado WitchRush. A arquitetura foi dividida em uma família de plugins, cada um nomeado com o nome de uma fruta silvestre. GooseBerry era o proxy BungeeCord que roteava jogadores entre servidores, CloudBerry a API Spigot compartilhada por cada jogo, SkyBerry o núcleo do servidor, e StrawBerry uma API REST expondo dados de jogadores para o site. Um Hub mantinha o lobby, com sua própria progressão mostrando moedas, créditos, nível e experiência. Sete minijogos rodavam em cima: SkyWars, BedWars com oito equipes e geradores de diamantes, GroundFall e sua pontuação de TNT, Catfight, Pvpwall, Pitchout, e WitchRush. Jogadores ganhavam mirtilos e créditos, e telas de fim de jogo resumiam o que cada rodada havia dado a eles. A equipe tinha ferramentas dentro do jogo em vez de um escritório separado: um sistema de amigos, e um menu de gerenciamento de servidor que mudava um servidor entre Público, Beta VIP, e Manutenção sem sair do Minecraft. A face pública era um site Symfony conectado a um fórum XenForo, listando contagens de jogadores ao vivo por jogo ao lado do feed do Discord. Um redesign em React foi iniciado no início de 2021 e nunca foi terminado. Os nove repositórios foram arquivados entre 2020 e 2022.

Impacto e métricas

500

Slots

Capacidade anunciada na lista de servidores.

7

Minijogos

De SkyWars a WitchRush.

9

Repositórios

Plugins, API, site e redesigns.

Principais características

Sete minijogos

SkyWars, BedWars, GroundFall, Catfight, Pvpwall, Pitchout e WitchRush, cada um com suas próprias regras e mapas.

Rede de servidores

Um proxy BungeeCord roteando jogadores entre servidores Spigot, com uma API compartilhada e um núcleo de servidor por baixo.

Progressão e moedas

Moedas, créditos, mirtilos, níveis e experiência transportados entre jogos e mostrados no placar do lobby.

Ferramentas para staff dentro do jogo

Um menu de gerenciamento que troca um servidor entre público, beta VIP e manutenção sem sair do jogo.

Site da comunidade

Um site Symfony conectado a um fórum XenForo, mostrando contagens de jogadores ao vivo por jogo e o feed do Discord.

Sistema de amigos

Adicionar e seguir jogadores pela rede, a partir de um menu de interação dentro do jogo.

Tecnologias utilizadas

Java

Cada plugin na rede.

Spigot

Servidores de jogo, a API compartilhada e o núcleo do servidor.

BungeeCord

Proxy que roteia jogadores entre servidores.

Symfony

Site da comunidade e seu consumo REST.

XenForo

Fórum e contas por trás do site.

React

Redesign do site inacabado de 2021.

Galeria

Lobby, com o placar de progressão.

Lobby, com o placar de progressão.

SkyWars, com votação de mapas e kits.

SkyWars, com votação de mapas e kits.

BedWars, oito equipes e geradores de diamantes.

BedWars, oito equipes e geradores de diamantes.

Final de uma rodada de GroundFall e suas recompensas.

Final de uma rodada de GroundFall e suas recompensas.

Menu de amigos e gerenciamento de servidor, ambos dentro do jogo.

Menu de amigos e gerenciamento de servidor, ambos dentro do jogo.

Site da comunidade, com contagens de jogadores ao vivo por jogo.

Site da comunidade, com contagens de jogadores ao vivo por jogo.

A equipe

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

Desafios enfrentados

  • Roteando jogadores entre vários servidores enquanto mantém a rede com a sensação de ser um só lugar.

  • Transportando moedas, níveis e progresso entre jogos rodando em servidores separados.

  • Escrevendo um loop de jogo distinto, placar e tabela de recompensas para cada um dos sete jogos.

  • Dando à equipe as ferramentas para gerenciar a rede de dentro do Minecraft em vez de um escritório.

  • Conectando um site Symfony a um fórum XenForo para que contas e postagens ficassem em um só lugar.

Aprendizados principais

  • A maior parte do trabalho foi para o proxy, a API e o núcleo antes que um único jogo pudesse ser lançado.

  • Contagens de jogadores e o Discord importavam mais para a rede do que qualquer recurso individual.

  • Construtores, moderadores e equipe da comunidade não deixaram commits, então os repositórios creditaram apenas uma fração das pessoas envolvidas.

  • Rodar uma rede ensinou arquitetura de servidor, moderação e gerenciamento de lançamentos antes de qualquer projeto de cliente.

Perspectivas futuras

Todos os nove repositórios estão arquivados, e a rede está offline.

Interessado neste projeto?

Descubra como podemos te ajudar a criar um projeto similar.