BerryGames
Açık Kaynak

BerryGames

500 slot'a kadar çalışan bir Minecraft sunucu ağı, meyvelerle adlandırılan kendi iç yapısına sahip eklentilerden oluşuyor. Yedi mini oyun, bir ilerleme sistemi ve XenForo forumuna bağlı bir Symfony sitesi var.

Başlangıç tarihi

September 2018

Durum

Arşivlendi

Ekip

4 üyeler

Proje hakkında

BerryGames, Minecraft mini oyun ağıydı ve bu portföydeki en eski şey: ilk commit Eylül 2018'de WitchRush adlı bir mini oyun eklentisi ile geldi. Mimari, her biri bir meyvenin ismiyle anılan bir dizi eklentiye dağıtıldı. GooseBerry, oyuncuları sunucular arasında yönlendiren BungeeCord Proxy'di, CloudBerry, her oyuna ortak bir Spigot API'siydi, SkyBerry sunucu çekirdeğiydi ve StrawBerry, oyuncu verilerini web sitesine açan bir REST API'siydi. Bir lobby olan Hub, kendi ilerlemesi ile madeni paralara, kredilere, seviyeye ve deneyime yer veriyordu. Yedi mini oyun üstünde çalışıyordu: SkyWars, sekiz ekiple ve elmas jeneratörleriyle BedWars, TNT puanlamasıyla GroundFall, Catfight, Pvpwall, Pitchout ve WitchRush. Oyuncular yaban mersini ve krediler kazanıyordu ve oyun sonunda ekranlar her turda ne kazandıklarını özetliyordu. Personelin, ayrı bir arka ofis yerine oyun içindeki araçları vardı: bir arkadaş sistemi ve oyuncuları Halk, Beta VIP ve Bakım arasında değiştiren bir sunucu yönetim menüsü, Minecraft'tan çıkmadan çalışıyordu. Halkla ilişkiler, Discord akışı yanında her oyundaki canlı oyuncu sayıları listesini gösteren bir XenForo forumuna bağlı bir Symfony sitesiyle sağlanıyordu. 2021'in başlarında bir React tasarım yenilemesi başlandı ama asla bitmedi. Dokuz repo 2020 ile 2022 arasında arşivlendi.

Etkiler ve metrikler

500

Slotlar

Sunucu listesindeki kapasite

7

Mini oyunlar

SkyWars'dan WitchRush'a kadar

9

Repolar

Eklentiler, API, site ve yeniden tasarımlar

Ana özellikler

Yedi mini oyun

SkyWars, BedWars, GroundFall, Catfight, Pvpwall, Pitchout ve WitchRush, her birinin kendi kuralları ve haritaları var

Sunucu ağı

Oyuncuları Spigot sunucuları arasında yönlendiren bir BungeeCord proxy'si, altında ortak bir API ve sunucu çekirdeği ile

İlerleme ve paralar

Oyunlar arasında taşınan ve lobideki puan tahtasında gösterilen madeni paralar, krediler, yaban mersinleri, seviyeler ve deneyim

Oyun içi personel araçları

Oyun alanından çıkmadan bir sunucuyu halka açık, beta VIP ve bakım arasında değiştiren bir yönetim menüsü

Topluluk sitesi

Her oyundaki canlı oyuncu sayılarını ve Discord akışını gösteren, XenForo forumuna bağlı bir Symfony sitesi

Arkadaş sistemi

Bir oyun içi etkileşim menüsünden ağa oyuncu ekleme ve takip etme

Kullanılan teknolojiler

Java

Ağdaki her eklenti

Spigot

Oyun sunucuları, ortak API ve sunucu çekirdeği

BungeeCord

Oyuncuları sunucular arasında yönlendiren proxy

Symfony

Topluluk sitesi ve REST tüketimi

XenForo

Site arkasındaki forum ve hesaplar

React

2021'de tamamlanmamış site tasarım yenilemesi

Galeri

Lobby, ilerleme puan tahtası ile

Lobby, ilerleme puan tahtası ile

SkyWars, harita oylaması ve setlerle

SkyWars, harita oylaması ve setlerle

BedWars, sekiz takım ve elmas jeneratörleriyle

BedWars, sekiz takım ve elmas jeneratörleriyle

GroundFall turunun sonu ve ödülleri

GroundFall turunun sonu ve ödülleri

Arkadaş menüsü ve sunucu yönetimi, her ikisi de oyun içinde

Arkadaş menüsü ve sunucu yönetimi, her ikisi de oyun içinde

Topluluk sitesi, her oyundaki canlı oyuncu sayılarıyla

Topluluk sitesi, her oyundaki canlı oyuncu sayılarıyla

Ekip

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

Karşılaşılan zorluklar

  • Birden fazla sunucu arasında oyuncuları yönlendirirken ağı tek bir yer gibi hissettirmek

  • Ayrı sunucularda çalışan oyunlar arasında paraları, seviyeleri ve ilerlemeyi taşımak

  • Her yedi oyun için ayrı bir oyun döngüsü, puan tahtası ve ödül tablosu yazmak

  • Personelin Minecraft içinden ağı yürütmeleri için araçlar vermek, ayrı bir arka ofis yerine

  • Symfony sitesini XenForo forumuna bağlayarak hesapların ve gönderilerin aynı yerde kalmasını sağlamak

Önemli kazanımlar

  • Tek bir oyun çıkmadan önce proxy, API ve çekirdeğe en çok emek harcandı

  • Oyuncu sayıları ve Discord, ağa bireysel özelliklerden daha önemliydi

  • Yapımcılar, moderatörler ve topluluk çalışanları hiçbir commit bırakmadığı için repolar, dahil olan kişilerin bir kısmını kredilendiriyor

  • Bir ağı çalıştırmak, herhangi bir istemci projesinin öğreniminden daha önce sunucu mimarisini, moderasyonu ve sürüm yönetimini öğretti

Gelecek perspektifleri

Dokuz repoların hepsi arşivlendi ve ağ kapalı

Bu projeye ilgi duydunuz mu?

Size benzer bir projeyi nasıl yaratabileceğimizi keşfedin.