Dynmap: przegląd wtyczki trójwymiarowej mapy online dla Minecrafta
Szczegółowy przegląd wtyczki Dynmap dla serwerów Minecraft. Renderowanie izometrycznych map 3D, konfiguracja wbudowanego serwera WWW…
Szczegółowy przegląd wtyczki Dynmap dla serwerów Minecraft. Renderowanie izometrycznych map 3D, konfiguracja wbudowanego serwera WWW, kompatybilność i integr...
Zależności:
Loader: Paper / Spigot / Fabric / Forge
Wersja Minecraft: 1.20.x – 1.21.x
W grze wieloosobowej Minecraft koordynacja między graczami, poszukiwanie wolnych stref do budowy oraz śledzenie aktywności na dużych terytoriach często stwarzają trudności. Podstawowe narzędzia oferują jedynie lokalne mapy papierowe, które nie obejmują całego świata i nie aktualizują się w czasie rzeczywistym. Narzędzie Dynmap rozwiązuje ten problem, tworząc interaktywną mapę świata gry, dostępną przez zwykłą przeglądarkę internetową. Działa na zasadzie serwisów geoinformacyjnych, takich jak Google Maps, wyświetlając szczegółowy krajobraz, lokalizacje graczy, granice zabezpieczonych regionów oraz wiadomości z czatu w grze.
Działanie silnika renderującego i zapisywanie kafelków
U podstaw działania Dynmap leży własny potok renderowania, który przekształca trójwymiarowe dane chunków Minecrafta w zestaw dwuwymiarowych plików graficznych (płytek lub kafelków).
Typy renderowania i projekcje
Wtyczka obsługuje trzy główne opcje wyświetlania świata:
Widok płaski (Flat): Klasyczna dwuwymiarowa mapa z widokiem z góry. Zużywa najmniej miejsca na dysku i zasobów procesora podczas generowania.
Izometryczny widok 3D (Surface): Objętościowa trójwymiarowa projekcja pod kątem, pozwalająca ocenić różnice wysokości terenu, architekturę budynków i głębokość zbiorników wodnych.
Widok jaskiń (Cave): Renderuje podziemne pustki i kopalnie, pokazując strukturę jaskiń poniżej poziomu powierzchni.
Zapisywanie plików i obciążenie dysku
Wszystkie wygenerowane kafelki mapy są zapisywane jako standardowe obrazy w formacie PNG lub JPG w folderze plugins/dynmap/web/tiles/. Przy każdej zmianie bloków przez graczy (budowa, niszczenie, eksplozje) Dynmap uruchamia proces aktualizacji przyrostowej — przerysowywane są tylko te kafelki, które bezpośrednio znalazły się w strefie zaktualizowanego chunka.
Podsystem dyskowy serwera doświadcza znacznego obciążenia (operacje I/O) podczas początkowego renderowania świata. Przy wysokiej rozdzielczości folder z kafelkami dużej mapy może osiągać dziesiątki, a nawet setki gigabajtów, co wymaga użycia szybkich dysków SSD i ustalenia granic świata (WorldBorder).
alt: [Interfejs mapy internetowej Dynmap w przeglądarce wyświetlający izometryczny widok 3D spawnu]
Infrastruktura serwera WWW: Jetty vs Nginx
Dynmap oferuje dwa schematy wdrożenia interfejsu internetowego, w zależności od skali serwera i oczekiwanego obciążenia.
Wbudowany serwer WWW Jetty
Domyślnie po instalacji wtyczka automatycznie uruchamia zintegrowany serwer WWW Jetty na porcie 8123. Ta opcja nie wymaga dodatkowej konfiguracji: administrator musi jedynie otworzyć port 8123 u dostawcy hostingu, po czym mapa staje się dostępna pod adresem http://IP_serwera:8123/.

Integracja z serwerem zewnętrznym (Nginx lub Apache)
Dla publicznych serwerów z dużą liczbą graczy online wbudowany Jetty tworzy dodatkowe obciążenie dla procesu gry w Javie, ponieważ każdy użytkownik WWW zużywa transfer bezpośrednio przez serwer gry. W celu optymalizacji zaleca się skonfigurowanie dostarczania kafelków przez niezależny serwer WWW Nginx lub Apache.
W takiej konfiguracji Nginx jest ustawiony do bezpośredniej pracy z folderem web/tiles/, omijając silnik gry Minecraft. Ma to kilka ważnych zalet:
Ochrona wątku gry: Żądania przeglądarek są obsługiwane przez osobny serwer WWW, co eliminuje mikro-zacięcia (spadki TPS) w grze.
Szyfrowanie HTTPS: Możliwość łatwej konfiguracji darmowych certyfikatów SSL Let's Encrypt dla bezpiecznego połączenia.
Dostępność w trybie offline: Mapa internetowa krajobrazu pozostaje dostępna do przeglądania nawet podczas restartu lub wyłączenia serwera gry Minecraft.
Ustawienia konfiguracji i zarządzanie renderowaniem
Główne parametry wtyczki są edytowane w pliku plugins/dynmap/configuration.txt.

Ogólne ustawienia renderowania i zapisywania
Parametr | Wartość domyślna | Opis |
|---|---|---|
|
| Określa domyślną jakość szablonów renderowania ( |
|
| Wybór magazynu danych dla kafelków (płytek) mapy. Dostępne opcje: |
|
| Interwał (w sekundach) sprawdzania i renderowania kafelków z kolejki aktualizacji. |
|
| Liczba kafelków w kolejce aktualizacji, po przekroczeniu której interwał renderowania ulega przyspieszeniu. |
|
| Przyspieszony interwał renderowania (w sekundach), gdy kolejka przekracza próg. |
|
| Liczba kafelków renderowanych jednocześnie (zaleca się ustawienie połowy liczby rdzeni procesora). |
|
| Priorytet wątków renderowania. Jeśli |
|
| Zapisywanie kolejki niedokończonych zadań renderowania przy wyłączaniu lub restartowaniu serwera. |
|
| Opóźnienie (w sekundach) przed rozpoczęciem renderowania zmodyfikowanych bloków. Zapobiega ciągłemu przerysowywaniu kafelków z powodu zautomatyzowanych systemów (redstone, tłoki itp.). |
|
| Włączenie hashowania kafelków. Jeśli obraz kafelka nie zmienił się po wyrenderowaniu, plik na dysku nie jest nadpisywany, co oszczędza cykl życia dysku. |
|
| Obliczanie gładkiego oświetlenia (jak w grze) podczas generowania mapy. |
|
| Format i jakość obrazów kafelków (domyślnie JPG z jakością 90%). Można zmienić na |
|
| Używanie tekstur wygenerowanych przez grę (zgodnych z paczką zasobów klienta) zamiast tekstur statycznych. |
|
| Wsparcie dla połączeń tekstur (Connected Texture Mod) z paczek zasobów. |
|
| Wsparcie dla niestandardowych kolorów biomów i liści z paczek zasobów. |
|
| Lista zdarzeń w grze (stawianie/niszczenie bloków, wzrost drzew, eksplozje), które inicjują kolejkę renderowania kafelków. |
Infrastruktura internetowa i ścieżki plików
Parametr | Wartość domyślna | Opis |
|---|---|---|
|
| Ścieżka w katalogu wtyczki, w której będą zapisywane pliki graficzne (kafelki) mapy. |
|
| Ścieżka do statycznych plików internetowych mapy (HTML, JS, CSS). |
|
| Automatyczne aktualizowanie plików statycznych podczas uruchamiania wtyczki (ustaw na |
|
| Port TCP, na którym będzie działał wbudowany serwer WWW Jetty. |
|
| Wyłączenie wbudowanego serwera WWW (przydatne przy konfigurowaniu dostarczania kafelków przez zewnętrzny serwer Nginx lub Apache). |
|
| Maksymalna liczba jednoczesnych sesji na wbudowanym serwerze WWW w celu oszczędzania zasobów. |
|
| Zezwolenie serwerowi WWW na podążanie za dowiązaniami symbolicznymi. |
|
| Włączenie systemu autoryzacji użytkowników do przeglądania mapy lub komunikacji na czacie. |
|
| Wymaganie obowiązkowego logowania na konto, aby przeglądać mapę internetową. |
|
| Lista zaufanych serwerów proxy w celu poprawnego określenia rzeczywistych adresów IP użytkowników poprzez nagłówek |
Konfiguracja komponentów interfejsu (Czat WWW, Markery, Gracze)
Parametr / Klasa | Wartość domyślna | Opis |
|---|---|---|
| Klasa komponentu | Odpowiada za przesyłanie danych o statusie graczy, czacie i aktualizacjach mapy. Uwaga: Przy użyciu zewnętrznego serwera WWW (Nginx), klasę tę należy zmienić na |
|
| Wyświetlanie wskaźników zdrowia graczy na mapie. |
|
| Wyświetlanie dokładnej lokalizacji graczy na mapie. |
|
| Zezwolenie na wysyłanie wiadomości z interfejsu WWW na czat gry Minecraft. |
|
| Opóźnienie (w sekundach) między wiadomościami na czacie WWW (ochrona przed spamem). |
|
| Ukrywanie graczy na mapie, jeśli się skradają (kucają). |
|
| Ukrywanie graczy na mapie, jeśli są w trybie obserwatora. |
|
| Ukrywanie graczy na mapie, jeśli działa na nich efekt mikstury niewidzialności. |
| Klasa komponentu | Zarządza warstwami markerów na mapie. Pozwala wyświetlać spawn ( |
|
| Wyświetlanie twarzy (skinów) graczy na markerach mapy. |
|
| Wyświetlanie paska zdrowia bezpośrednio nad ikoną gracza na mapie. |
Optymalizacja i limity wydajności procesora (TPS/MSPT)
Parametr | Wartość domyślna | Opis |
|---|---|---|
|
| Interwał (w sekundach) pauz podczas wykonywania pełnego renderowania ( |
|
| Maksymalna liczba chunków, którą Dynmap może załadować do pamięci w jednym ticku gry (1/20 sekundy). Zmniejszenie tego parametru redukuje lagi na serwerze. |
|
| Docelowy limit czasu na tick dla wątku renderowania (w milisekundach). |
|
| Jeśli wskaźnik TPS serwera spadnie poniżej tej wartości, Dynmap automatycznie wstrzymuje renderowanie regularnych aktualizacji kafelków. |
|
| Jeśli wskaźnik TPS serwera spadnie poniżej tej wartości, Dynmap zatrzymuje wykonywanie pełnego renderowania świata ( |
|
| Minimalny TPS, przy którym dozwolone jest przeprowadzanie obliczeń zmniejszonych (zoom-out) poziomów mapy. |
|
| Liczba chunków w pamięci podręcznej zrzutów krajobrazu. |
|
| Używanie miękkich referencji (Soft References) dla pamięci podręcznej chunków. Pozwala to maszynie JVM na wyczyszczenie pamięci podręcznej mapy w przypadku groźby wystąpienia błędu OutOfMemory. |
Parametry optymalizacji w configuration.txt
Aby zachować wydajność serwera, należy zwrócić uwagę na następujące zmienne w pliku konfiguracyjnym:
deftemplatesuffix— sufiks jakości renderowania. Wartościvlowres(bardzo niska jakość) lublowres(niska) pozwalają znacznie przyspieszyć generowanie mapy i zmniejszyć rozmiar plików 4-8 razy w porównaniu do standarduhires.tilespath— pozwala przekierować zapisywanie mapy na inny dysk twardy serwera, chroniąc główny dysk przed przepełnieniem.webserver-port— port do łączenia się z mapą (zamiast standardowego8123).
Komendy zarządzania renderowaniem
Generowanie mapy jest kontrolowane przez konsolę serwera przez operatora z poziomem 4:
/dynmap fullrender <świat>— rozpoczyna pełne renderowanie określonego świata. Zaleca się uruchamianie tego tylko po pełnym wstępnym wygenerowaniu chunków (chunk pre-generation) i w okresach niskiej aktywności graczy./dynmap radiusrender <promień>— aktualizuje mapę tylko w określonym promieniu wokół gracza, co jest wygodne po wybudowaniu dużych miast./dynmap cancelrender— zatrzymuje bieżące procesy renderowania w przypadku przeciążenia procesora./dynmap pause all— tymczasowo wstrzymuje wszystkie obliczenia map, zwalniając zasoby w celu stabilizacji TPS.
Wniosek
Wtyczka Dynmap to potężne narzędzie do wizualizacji świata i poprawy interakcji graczy na dużych serwerach Minecraft. Dzięki izometrycznemu renderowaniu 3D i integracji z interfejsem internetowym, przekształca mapę w pełnoprawny portal informacyjny dla projektu.
W porównaniu z alternatywami, takimi jak BlueMap (który używa ciężkiego WebGL do pełnego przeglądu 3D) lub Squaremap (który oferuje wyłącznie szybką mapę 2D bez modeli objętościowych), Dynmap zapewnia optymalną równowagę funkcjonalności. Jednak wysokie wymagania dotyczące miejsca na dysku i ciągłe obciążenie systemu I/O wymagają od administratorów szczególnej uwagi w kwestii limitów świata i właściwego wyboru rozdzielczości. Wtyczka jest doskonałym wyborem dla dużych serwerów survivalowych, anarchii lub światów RP.
Instalacja
Typowa instalacja zajmuje około 5 minut. Procedura jest taka sama; różni się tylko loader i odpowiedni build.
- 1Stop your Minecraft server.
- 2Drop the plugin .jar into the server /plugins folder.
- 3Start the server once so the plugin generates its config files.
- 4Edit /plugins/<name>/config.yml as needed, then run /reload confirm or restart.











