Geyser i Floodgate: gracze Bedrock na serwerze Java
Geyser tłumaczy protokół Bedrock na protokół Java, dzięki czemu gracze z telefonu, tabletu, konsoli i Windowsa mogą grać na zwykłym serwerze Java. Floodgate to towarzysząca mu wtyczka, która pozwala takim graczom zalogować się bez konta Java, więc twój serwer może dalej stać w trybie online-mode. Bedrock łączy się przez port UDP 19132, więc ten port musi być otwarty obok normalnego portu Java. Oba projekty są darmowe i open source.
Co dokładnie robią Geyser i Floodgate?
Java Edition i Bedrock Edition to dwa osobne programy z dwoma osobnymi protokołami sieciowymi. Klient Bedrock wysyła pakiety, których serwer Java nie rozumie, i na odwrót. Dokładnie między nie wchodzi Geyser: wobec gracza zachowuje się jak serwer Bedrock, a wobec twojego serwera jak klient Java. Wszystko jest tłumaczone w obie strony: ruch, stawianie bloków, ekwipunek, czat, dźwięki, scoreboardy.
To rozwiązuje problem sieciowy, ale nie problem kont. Serwer Java w trybie online-mode przy każdym logowaniu sprawdza, czy konto istnieje i czy gracz jest tym, za kogo się podaje. Gracz Bedrock ma konto Xbox, a nie konto Java, więc ta weryfikacja się nie udaje. Floodgate uwierzytelnia go po stronie Xboksa i dopiero potem wpuszcza jako zweryfikowanego gracza. Nie wyłączasz więc online-mode: gracze Java nadal są normalnie sprawdzani.
Bez Floodgate każdy gracz Bedrock musiałby najpierw podpiąć konto Java albo twój serwer musiałby chodzić w trybie offline. Pierwsze wyklucza dokładnie tę grupę, do której chciałeś dotrzeć, drugie otwiera drzwi każdemu, kto potrafi wpisać dowolny nick.
Uruchamiać Geysera jako wtyczkę czy jako osobne proxy?
Geyser występuje w dwóch wariantach. Jako wtyczkę wrzucasz plik jar do folderu plugins serwera Paper, Purpur albo Spigot, lub proxy BungeeCord czy Velocity. W wersji standalone Geyser działa jako osobny program z własnym portem i łączy się z twoim serwerem jak zwykły klient Java.
Przy pojedynczym serwerze wtyczka jest niemal zawsze właściwym wyborem: mniej ruchomych części i mniej konfiguracji. Standalone robi się ciekawy wtedy, gdy nie możesz instalować wtyczek na serwerze docelowym. Masz sieć za proxy? Wtedy Geysera stawiasz na proxy, a Floodgate zarówno na proxy, jak i na każdym serwerze backendowym; inaczej gracz Bedrock wejdzie do lobby, ale zostanie odrzucony w momencie przełączenia dalej. Osobne proxy BungeeCord z 512 MB kosztuje w MC-Node 2,16 zł miesięcznie.
Z jakiego portu korzysta Bedrock?
Bedrock domyślnie używa portu UDP 19132. To inny protokół niż port TCP, na którym nasłuchuje twój serwer Java, a to ma dwie konsekwencje. Oba mogą korzystać z tego samego numeru portu, a twój hosting musi ten port UDP faktycznie przepuszczać. Firewall, który otwiera wyłącznie TCP, zostawia graczy Bedrock w nieskończoność na ekranie łączenia, a w konsoli serwera nie widać przy tym niczego.
W panelu Pterodactyl dodajesz w tym celu dodatkową alokację i wpisujesz ten numer portu w sekcji bedrock w konfiguracji Geysera. Tam, gdzie się da, zostaw 19132: to wartość, którą klient Bedrock sam już wpisuje, więc gracze muszą podać wyłącznie adres. Jeśli twój port jest inny, muszą dopisać numer ręcznie.
Jak zainstalować Geysera i Floodgate?
- Pobierz od GeyserMC plik jar Geysera oraz plik Floodgate w wariancie pasującym do twojej platformy: Spigot/Paper, BungeeCord, Velocity albo standalone.
- Wrzuć oba pliki do folderu
pluginsi uruchom serwer jeden raz, żeby utworzyły swoje foldery konfiguracyjne. Potem znowu zatrzymaj serwer. - Otwórz konfigurację Geysera i w sekcji
bedrockustaw adres na0.0.0.0, a port na ten port UDP, który udostępniłeś. - Ustaw
auth-typenafloodgate. Jeśli zostanie naonline, gracze i tak będą musieli sami podpiąć konto Java. - Sprawdź, czy
key.pemleży w folderze Floodgate. Jeśli Geyser chodzi w trybie standalone albo na innej maszynie, skopiuj ten plik do folderu Geysera; bez tego klucza połączenie zostanie odrzucone. - Zostaw
online-modewserver.propertiesnatrue. - Uruchom serwer i przetestuj z telefonu, podając swój adres i port UDP. Serwer widać na liście, ale połączenia nie ma? Wtedy niemal zawsze winny jest firewall.
Jak działają nicki i uprawnienia?
Nicki w Javie składają się wyłącznie z liter, cyfr i podkreśleń. Gamertagi w Bedrocku mogą zawierać spacje i inne znaki. Floodgate rozwiązuje to, zamieniając spacje i doklejając z przodu prefiks. Domyślnie jest to kropka, więc gamertag w rodzaju Jan Kowalski pojawi się jako .Jan_Kowalski.
Ten prefiks to nie kosmetyka. Kropka nie może wystąpić w nicku Java, więc gracz Bedrock nigdy — przypadkiem ani celowo — nie przejmie nazwy istniejącego konta Java. Możesz go zmienić w konfiguracji Floodgate albo wyczyścić, ale pustym prefiksem otwierasz dokładnie to ryzyko. Jeśli wybierasz coś innego, weź znak, którego Java i tak nie dopuszcza.
Przy uprawnieniach zmienia się niewiele. Floodgate nadaje każdemu graczowi Bedrock stały UUID na podstawie jego konta Xbox, a LuckPerms i pozostałe standardowe wtyczki normalnie na tym działają. Rangi przypisujesz do nicku razem z prefiksem, czyli z tą kropką. Uważaj na dwie rzeczy: zwykła whitelista nie zadziała, bo serwer szuka tego nicku u Mojanga i niczego tam nie znajduje, a Floodgate ma na to własne komendy. Poza tym niektóre starsze wtyczki potykają się o kropkę w nicku gracza, najczęściej w komendach albo w integracji ze sklepem.
Co nie tłumaczy się jeden do jednego?
Geyser jest zaskakująco kompletny przy zwykłym survivalu, ale edycje nie są identyczne i widać to właśnie tam, gdzie właściciele serwerów budują najwięcej.
| Element | Co zauważą gracze Bedrock |
|---|---|
| Budowanie, redstone, moby, wymiary | Działa; drobne różnice w mechanikach i w timingu pozostają |
| Menu wtyczek w GUI skrzyni | Otwierają się, ale czcionki z Javy i ujemne spacje przepadają, więc układ może się rozjechać |
| Własne modele przedmiotów i resource packi | Resourcepack z Javy się nie wczyta; musisz udostępnić osobny pack na Bedrock |
| PvP | Bedrock nie zna cooldownu ataku; zasięg i knockback działają inaczej, co wykrzywia konkurencyjne PvP |
| Anticheat | Tłumaczony ruch potrafi generować fałszywe alarmy; przygotuj wyjątki dla graczy z Floodgate |
| Mody | Nie działa: klient Bedrock nie wczyta modów z Javy |
Im bliżej twój serwer trzyma się vanilla survivalu, tym mniej zauważysz Geysera. Im mocniej opierasz się na własnych modelach, sztuczkach z teksturami w menu i precyzyjnie wyważonym PvP, tym częściej gracz Bedrock zobaczy coś innego niż siedzący obok gracz Java.
Czy Geyser działa na serwerze z modami?
Nie, przynajmniej nie dla samych modów. All the Mods 10 chodzi na NeoForge i Minecraft 1.21.1 z 400 do 500 modami w środku; klient Bedrock nie zna tych bloków ani przedmiotów i nie może ich u siebie zainstalować. Istnieją buildy Geysera dla Fabric i NeoForge, ale tłumaczą one zawartość vanilla, a nie mody, które puszczasz na wierzchu.
Crossplay to więc wybór za wtyczkami i przeciw modom. Wtyczki chodzą wyłącznie po stronie serwera, na dalej vanillowych mechanikach, więc wszystko, co na nich zbudujesz, dotrze też do graczy Bedrock. Jeśli wybierzesz modpack z setkami modów, godzisz się na to, że twój serwer będzie tylko dla Javy. Datapacki są gdzieś pośrodku: działają po stronie serwera i zwykle są w porządku, ale strony resourcepacka gracze Bedrock już nie zobaczą.
Kiedy lepiej wybrać prawdziwy serwer Bedrock?
Geyser to warstwa tłumacząca, a nie zrównanie obu edycji. Jeśli twoja ekipa to niemal wyłącznie gracze z telefonów i konsol, a wtyczek Java nie potrzebujesz, prawdziwy serwer Bedrock da mniej niespodzianek: żadnych błędów tłumaczenia, żadnych prefiksów, żadnych menu, które wyglądają odrobinę inaczej. Jeśli w twojej społeczności siedzi poważny trzon graczy Java, to właśnie Geyser z Floodgate jest sposobem, żeby nie rozdzielać tej grupy na dwa światy.
Pomyśl też o konsolach. Na Windowsie i na telefonie gracz sam dodaje serwer, podając adres i port. Na Xboksie, PlayStation i Switchu nie da się tego zrobić bez obejścia przez ustawienia DNS, a to spora bariera dla młodszych graczy. To ograniczenie wynika z samej konsoli i dotyczy tak samo prawdziwego serwera Bedrock.
Na koniec dolicz trochę dodatkowej pracy dla samego serwera: każdy pakiet trzeba przetłumaczyć, więc każdy gracz Bedrock kosztuje odrobinę CPU i pamięci. Hosting Minecraft w MC-Node liczy na linii budżetowej równe 4,75 zł za GB RAM miesięcznie, więc gigabajt zapasu rzadko bywa powodem, żeby jednak odpuścić crossplay.
Najczęściej zadawane pytania
Czy gracze Bedrock naprawdę zagrają bez konta Java? Tak, po to właśnie jest Floodgate. W konfiguracji Geysera ustawiasz auth-type na floodgate, po czym gracz zostaje zweryfikowany przez swoje konto Xbox i wchodzi bez kupowania Javy. Serwer zostaje przy tym normalnie w trybie online-mode, więc nie osłabiasz zabezpieczeń dla graczy Java.
Jaki port muszę otworzyć dla Geysera? Standardem dla Bedrock jest port UDP 19132. Ponieważ Java łączy się po TCP, a Bedrock po UDP, ten sam numer portu może służyć obu. Zadbaj o to, żeby firewall albo panel faktycznie przepuszczał port UDP, bo inaczej połączenie wisi bez czytelnego komunikatu o błędzie.
Dlaczego przed nickiem gracza Bedrock stoi kropka? To prefiks Floodgate, domyślnie właśnie kropka. Kropka nie może wystąpić w nicku Java, więc gamertag z Bedrocka nigdy nie zderzy się z istniejącym kontem Java. Uprawnienia i rangi przypisujesz do nicku razem z tą kropką; znak da się zmienić, ale wyczyszczenie go grozi myleniem nicków.
Czy Geyser działa z modpackiem takim jak All the Mods 10? Nie. ATM10 chodzi na NeoForge z Minecraft 1.21.1 i 400 do 500 modami, a klient Bedrock nie jest w stanie wczytać tych modów. Chcesz crossplay z dodatkowymi funkcjami? Buduj serwer na wtyczkach zamiast na modach, bo one działają w całości po stronie serwera.
Ile dodatkowego RAM-u zjada Geyser? Nie ma stałej liczby: zależy to od tego, ilu graczy Bedrock jest online jednocześnie i jak obciążony jest twój serwer. Dolicz trochę CPU i pamięci na tłumaczenie i trzymaj zapas ponad swój normalny plan. Jeśli lagi pojawiają się dopiero wtedy, gdy dołączają gracze Bedrock, to sygnał, żeby przejść o stopień wyżej.