top of page

Niewidzialny strażnik — i bany, które wreszcie same się tłumaczą 👁️

Zdjęcie autora: Marcel Dütscher
Marcel Dütscher
26 lip
4 minut(y) czytania

Jakiś czas temu pisaliśmy tu o tym, że gra jest przyjazna dzieciom z założenia — o zgłoszeniach, opiniach i czujnym oku. Szczerze mówiąc, czujne oko było najsłabszą częścią: mogliśmy przyjmować zgłoszenia, ale prawie nie mogliśmy zajrzeć do tego, co naprawdę dzieje się w świecie. Właśnie nad tym pracowaliśmy — w oparciu o dwa elementy: tryb obserwatora do nadzoru i całkowicie przerobiony system banów, który wreszcie mówi zbanowanym graczom, o co chodzi.


Tryb obserwatora. Gdy przychodzi zgłoszenie („ktoś buduje bzdury”, „ktoś pisze niemiłe rzeczy”), możemy teraz wejść do tego świata, nie przeszkadzając w nim. Naprawdę niewidzialnie — a nie w stylu „proszę, nie rysuj mnie”, który zmodyfikowana gra mogłaby po prostu zignorować. Serwer trzyma obserwatora wyłącznie dla siebie: bez awatara, bez zaparkowanego statku, bez zajętego lądowiska, bez animacji lądowania, bez zwierzaków, bez speedera, bez zajętego miejsca dla gracza i bez zmiany liczby graczy. Dla wszystkich w tym świecie dosłownie nikogo tam nie ma. W locie przenika się przez ściany (inaczej nigdy nie dałoby się wejść do zamkniętej bazy), stworzenia ignorują obserwatora, a strzelanie i tak nie jest możliwe.


Obserwować znaczy obserwować. Obserwator nie może niczego dotykać w świecie — z jednym wyjątkiem: może wydobywać bloki. To jedyny sposób, żeby naprawdę usunąć obraźliwą budowlę ze świata, a każde pojedyncze usunięcie jest zapisywane w logu. Na czacie obserwator jest wyciszony; żeby celowo się ujawnić, trzeba użyć osobnej komendy. A na ekranie przez cały czas widnieje stała plakietka SPECTATOR — nikt nie powinien przez przypadek pomyśleć, że normalnie gra.


Dlaczego zbudowaliśmy to tak rygorystycznie. Dwie decyzje, które z zewnątrz są niewidoczne, ale były dla nas ważne. Po pierwsze: rola obserwatora nie jest przechowywana w zapisie gry, jest przeliczana z konfiguracji serwera przy każdym dołączeniu. Zapisy można pobrać i wgrać gdzie indziej — zapisana rola nadzorcy podróżowałaby razem z nimi, na maszyny, których nie jesteśmy właścicielami. Po drugie: to nie jest opcja świata. Ten, kto jest właścicielem świata, nie może mieć możliwości wyłączenia nadzoru nad tym światem. Dlatego też nie zależy to od ustawienia „cheaty administratora”, które światy i tak domyślnie mają wyłączone.


Znajdowanie, gdzie coś się wydarzyło. Do tego są nowe komendy: /players pokazuje, kto jest online — i każdego, kto kiedykolwiek grał w tym świecie; /builds pokazuje, gdzie ktoś budował; /where prowadzi was do gracza; /goto skacze także między planetami (stary teleport ustawiał tylko współrzędne i upuszczał was na złej planecie 🙈). Do tego strona przeglądowa w naszym panelu administratora czyta prosto z zapisu świata: graczy, konstrukcje i „gorące punkty budowy” — tak znajduje się dom, który ktoś postawił gdzieś na odludziu bez rdzenia bazy. A każda zmieniona komórka pamięta teraz, kto jej ostatnio dotknął i kiedy. Zanim to wbudowaliśmy, zmierzyliśmy, ile to kosztuje w miejscu na dysku: ani jednego dodatkowego wiersza w bazie danych, bo dane i tak są zapisywane dla każdej komórki.


W prywatnych światach też — za podwójnym zamkiem. Pierwsze wersje miały absurdalną dziurę: niewidzialny obserwator mógł dotrzeć tylko do publicznych światów bez hasła — czyli dokładnie tam, gdzie dzieje się najmniej. Dzieci prawie zawsze grają w prywatnych światach, których hasło krąży w gronie znajomych. Nadzór sięga więc teraz także tam. Żeby nie stało się to tylnymi drzwiami, dostęp jest zamknięty podwójnie: wymaga konta operatora, które można utworzyć tylko po podaniu tajnego kodu — oraz przeznaczonej do tego nazwy gracza, zarezerwowanej w całym systemie, której nikt inny nie może zarejestrować ani używać w grze. Jeśli brakuje któregokolwiek z nich, nic się nie dzieje.


A potem bany. Kiedyś było to załatwiane naprawdę kiepsko: zbanowane konto mogło normalnie się zalogować, a ściana pojawiała się dopiero przy dołączaniu do świata — bez powodu, bez daty i bez możliwości zapytania. Z punktu widzenia gracza gra po prostu była zepsuta. Teraz już przy logowaniu widać, jak wygląda sytuacja, a do tego jest skrzynka wiadomości: „twój świat został usunięty (powód)”, „twój ban został zniesiony”. Ta wiadomość jest zapisywana w chwili, gdy coś się dzieje — później ta informacja już nie istnieje, bo usunięty świat jest, no cóż, usunięty.


Przerwa zamiast wygnania. Bany są teraz przede wszystkim tymczasowe — domyślnie trzy dni. Wygasła przerwa liczy się jako „niezbanowany” w każdym punkcie kontrolnym, więc „trzy dni przerwy” nigdy nie może po cichu zamienić się w wykluczenie na stałe. Wpis zostaje mimo to w historii. Powody mają postać stałych kategorii (czat, griefing, oszustwo, nazwa, inne), wyświetlanych w tłumaczeniu na niemiecki i angielski — a jeśli człowiek coś dopisze, pojawia się to dosłownie, dokładnie tak, jak zostało wpisane. A najważniejsze w tym wszystkim: wiadomość może wskazać dzień, w którym znów jesteście mile widziani.


Właściciele światów mogą teraz moderować własny świat. Jeśli jesteście właścicielami świata, dostajecie tę samą dźwignię dla waszego świata: własną listę banów, egzekwowaną równie niezawodnie jak nasza. Zapamiętuje konto (więc zmiana nazwy nie pomaga) oraz nazwę w grze (goście arkadowi nie mają żadnego konta). Wybieracie z listy osób, które naprawdę odwiedziły świat — ręczne wpisywanie nazw to dokładnie ten sposób, w jaki blokuje się niewłaściwe dziecko. A ponieważ ban rozstrzyga zawsze tylko o następnym dołączeniu, jest też wyrzucanie: gracz od razu ląduje z powrotem w menu, z powodem, w swoim własnym języku. Wiadomość wychodzi przed zamknięciem połączenia — więc zmodyfikowana gra nie może jej po prostu zignorować i grać dalej.


Czego celowo nie zbudowaliśmy. Oczywistym ruchem przeciw omijaniu banów byłoby rozpoznawanie urządzeń („nowe konto, ten sam komputer”). Odrzuciliśmy to z trzech powodów: identyfikator zmienia się, gdy tylko podłączy się pendrive albo Windows zrobi większą aktualizację; zmodyfikowana gra potrafi go sfałszować w pięć minut; a identycznie sklonowane szkolne komputery wyglądałyby wszystkie tak samo. Do tego kwestia prawna — odczytanie identyfikatora urządzenia wymaga zgody według prawa niemieckiego, a osoby poniżej 16 lat nie mogą jej ważnie wyrazić. Nadzór nie może zamienić się w inwigilację. I jeszcze jedna zasada zapisana w kodzie: samo konto operatora nie może być ani zbanowane, ani wyrzucone — inaczej nadzór dałoby się wyłączyć od środka.


Wszystko to jest już w kodzie i zacznie działać wraz z następną aktualizacją serwera. Szczerze mamy nadzieję, że będziemy tego potrzebować jak najrzadziej. 🌟

Ostatnie posty

Zobacz wszystkie

Komentarze


Komentowanie tego posta nie jest już dostępne. Skontaktuj się z właścicielem strony, aby uzyskać więcej informacji.
bottom of page