Dynmap: Gennemgang af online 3D-kort-plugin til Minecraft
Detaljeret gennemgang af Dynmap-pluginet til Minecraft-servere. Isometrisk 3D-kortgengivelse, konfiguration af den indbyggede webserver…
Detaljeret gennemgang af Dynmap-pluginet til Minecraft-servere. Isometrisk 3D-kortgengivelse, konfiguration af den indbyggede webserver, kompatibilitet og Ng...
Afhængigheder:
Loader: Paper / Spigot / Fabric / Forge
Minecraft-version: 1.20.x – 1.21.x
I multiplayerspillet Minecraft skaber koordinering mellem spillere, lokalisering af ledige byggezoner og sporing af aktivitet over store områder ofte vanskeligheder. De grundlæggende værktøjer tilbyder kun lokale papirkort, der ikke dækker hele verden og ikke opdateres i realtid. Værktøjet Dynmap løser dette problem ved at oprette et interaktivt kort over spilverdenen, der er tilgængeligt via en almindelig webbrowser. Det fungerer efter samme princip som geografiske informationstjenester som Google Maps og viser det detaljerede landskab, spillerplaceringer, grænser for beskyttede regioner og in-game chatbeskeder.
Sådan fungerer renderingsmotoren og lagring af fliser
Kernen i Dynmaps funktionalitet ligger i dens egen renderings-pipeline, som konverterer tredimensionelle Minecraft chunk-data til et sæt todimensionelle billedfiler (fliser eller tiles).
Renderingstyper og projektioner
Pluginet understøtter tre primære visningsmuligheder for verdenen:
Flad visning (Flat): Et klassisk 2D-kort med et top-down-perspektiv. Det bruger mindst diskplads og processorressourcer under genereringen.
Isometrisk 3D-visning (Surface): En volumetrisk tredimensionel projektion i en bestemt vinkel, der gør det muligt at vurdere højdeændringer i landskabet, bygningsarkitektur og vanddybde.
Hulevisning (Cave): Gengiver underjordiske hulrum og miner, og viser grottestrukturer under overfladeniveauet.
Fillagring og diskbelastning
Alle genererede kortfliser gemmes som standard PNG- eller JPG-billeder i mappen plugins/dynmap/web/tiles/. Hver gang spillere foretager blokændringer (byggeri, ødelæggelse, eksplosioner), udløser Dynmap en inkrementel opdateringsproces – kun de fliser, der falder direkte inden for den opdaterede chunk-zone, tegnes igen.
Serverens diskundersystem oplever en betydelig belastning (I/O-operationer) under den indledende rendering af verdenen. Ved høje opløsninger kan flisemappen for et stort kort nå op på snesevis eller endda hundreder af gigabyte, hvilket kræver hurtige SSD-drev og at der sættes en verdensgrænse (WorldBorder).
alt: [Grænseflade for Dynmap-webkortet i en browser, der viser en isometrisk 3D-visning af spawn]
Webserverinfrastruktur: Jetty vs Nginx
Dynmap tilbyder to implementeringsskemaer til webgrænsefladen afhængigt af serverens skala og den forventede belastning.
Indbygget Jetty-webserver
Som standard starter pluginet automatisk den integrerede Jetty-webserver på port 8123 efter installationen. Denne mulighed kræver ingen yderligere konfiguration: Administratoren skal blot åbne port 8123 hos hostingudbyderen, hvorefter kortet bliver tilgængeligt på http://Server_IP:8123/.

Integration med en ekstern server (Nginx eller Apache)
For offentlige servere med mange spillere skaber den indbyggede Jetty et ekstra overhead for Java-spilprocessen, da hver webbruger forbruger trafik direkte gennem spilserveren. For at optimere dette anbefales det at konfigurere levering af fliser via en uafhængig Nginx- eller Apache-webserver.
I denne opsætning konfigureres Nginx til at arbejde direkte med web/tiles/ mappen, hvorved Minecrafts spilmotor omgås. Dette har flere vigtige fordele:
Beskyttelse af spiltråden: Browseranmodninger håndteres af en separat webserver, hvilket eliminerer mikro-hakken (TPS-fald) i spillet.
HTTPS-kryptering: Muligheden for nemt at konfigurere gratis Let's Encrypt SSL-certifikater for en sikker forbindelse.
Offline-tilgængelighed: Landskabets webkort forbliver tilgængeligt for visning, selv under genstart eller nedlukning af Minecraft-spilserveren.
Konfigurationsindstillinger og renderingsstyring
De primære parametre for pluginet redigeres i filen plugins/dynmap/configuration.txt.

Generelle indstillinger for rendering og lagring
Parameter | Standardværdi | Beskrivelse |
|---|---|---|
|
| Definerer standardkvaliteten af renderingsskabeloner ( |
|
| Valg af lagring til kortfliser. Tilgængelige muligheder: |
|
| Interval (i sekunder) for at kontrollere og gengive fliser fra opdateringskøen. |
|
| Antallet af fliser i opdateringskøen, hvorefter renderingsintervallet accelereres. |
|
| Accelereret renderingsinterval (i sekunder), når køen overskrider tærsklen. |
|
| Antal fliser gengivet på én gang (det anbefales at indstille det til halvdelen af processorkernerne). |
|
| Prioritet for renderingstråde. Hvis indstillet til |
|
| Gemmer køen af uafsluttede renderingsopgaver ved serverlukning eller genstart. |
|
| Forsinkelse (i sekunder) før rendering af modificerede blokke. Forhindrer konstant gentegning af fliser på grund af automatiserede systemer (redstone, stempler osv.). |
|
| Aktiverer flise-hashing. Hvis flisebilledet ikke er ændret efter rendering, overskrives filen på disken ikke, hvilket sparer på drevets levetid. |
|
| Beregning af blød belysning (som i spillet) under generering af kortet. |
|
| Format og kvalitet af flisebillederne (standard er JPG ved 90 % kvalitet). Kan ændres til |
|
| Bruger spilgenererede teksturer (som matcher klientens ressourcepakke) i stedet for de statiske. |
|
| Support af Connected Texture Mod fra ressourcepakker. |
|
| Support af tilpassede biom- og bladfarver fra ressourcepakker. |
|
| En liste over begivenheder i spillet (placering/ødelæggelse af blokke, trævækst, eksplosioner), der starter renderingskøen for fliser. |
Webinfrastruktur og filstier
Parameter | Standardværdi | Beskrivelse |
|---|---|---|
|
| Stien i pluginmappen, hvor grafiske filer (kortfliser) vil blive gemt. |
|
| Stien til kortets statiske webfiler (HTML, JS, CSS). |
|
| Automatisk opdatering af statiske filer, når pluginet starter (sæt til |
|
| Den TCP-port, hvor den indbyggede Jetty-webserver vil fungere. |
|
| Deaktiverer den indbyggede webserver (nyttigt ved konfiguration af fliselevering via en ekstern Nginx- eller Apache-webserver). |
|
| Maksimalt antal samtidige sessioner på den indbyggede webserver for at spare på ressourcerne. |
|
| Tillader webserveren at følge symbolske links. |
|
| Aktiverer brugergodkendelsessystemet for at se kortet eller kommunikere i chatten. |
|
| Kræver et obligatorisk kontologin for at se webkortet. |
|
| En liste over pålidelige proxyservere for korrekt at bestemme spillernes rigtige IP-adresser via |
Konfiguration af webgrænsefladekomponenter (Webchat, Markører, Spillere)
Parameter / Klasse | Standardværdi | Beskrivelse |
|---|---|---|
| Komponentklasse | Ansvarlig for overførsel af data om spillerstatus, chat og kortopdateringer. Bemærk: Ved brug af en ekstern webserver (Nginx) skal denne klasse ændres til |
|
| Viser spilleres sundhedsindikatorer på kortet. |
|
| Viser den nøjagtige placering af spillerne på kortet. |
|
| Tillader at sende beskeder fra webgrænsefladen til in-game Minecraft-chatten. |
|
| Forsinkelse (i sekunder) mellem beskeder i webchatten (spambeskyttelse). |
|
| Skjuler spillere fra kortet, hvis de sniger sig (crouch). |
|
| Skjuler spillere fra kortet, hvis de er i spectatortilstand. |
|
| Skjuler spillere fra kortet, hvis de er under påvirkning af usynlighedsdrikken. |
| Komponentklasse | Administrerer markørlagene på kortet. Giver mulighed for at vise spawn ( |
|
| Viser spilleres ansigter (skins) på kortmarkører. |
|
| Viser en sundhedsbjælke direkte over spillerikonet på kortet. |
Optimering og grænser for CPU-ydelse (TPS/MSPT)
Parameter | Standardværdi | Beskrivelse |
|---|---|---|
|
| Interval (i sekunder) af pauser under udførelsen af en fuld rendering ( |
|
| Det maksimale antal chunks, som Dynmap kan indlæse i hukommelsen under et enkelt spil-tick (1/20 af et sekund). Hvis denne parameter sænkes, reduceres forsinkelser (lags) på serveren. |
|
| Tidsgrænse pr. tick for renderingstråden (i millisekunder). |
|
| Hvis serverens TPS-hastighed falder under denne værdi, vil Dynmap automatisk sætte rendering af regelmæssige fliseopdateringer på pause. |
|
| Hvis serverens TPS-hastighed falder under denne værdi, stopper Dynmap udførelsen af den fulde verdensgenerering ( |
|
| Den mindste TPS, der kræves for at tillade beregning af udzoomede (zoom-out) kortniveauer. |
|
| Antallet af chunks, der gemmes i landskabets øjebliksbillede (snapshot cache). |
|
| Brug af bløde referencer (Soft References) til chunk-cachen. Giver JVM'en mulighed for at rydde kortets cache i tilfælde af en forestående OutOfMemory-fejl. |
Optimeringsparametre i configuration.txt
For at bevare serverydelsen skal du være opmærksom på følgende variabler i konfigurationsfilen:
deftemplatesuffix— suffiks for renderingskvalitet. Værdier somvlowres(meget lav kvalitet) ellerlowres(lav) giver mulighed for væsentligt hurtigere kortgenerering og reducerer filstørrelsen med 4 til 8 gange i forhold til standardhires.tilespath— giver mulighed for at omdirigere kortlagringerne til en anden serverharddisk, hvilket beskytter hoveddrevet mod overfyldning.webserver-port— porten, der skal forbindes til kortet på (i stedet for standarden8123).
Kommandoer til styring af rendering
Kortgenerering styres via serverkonsollen af en operatør på niveau 4:
/dynmap fullrender <verden>— starter den fulde rendering af den angivne verden. Det anbefales at bruge denne, efter at der er foretaget en fuld prægenerering af chunks (chunk pre-generation) og i perioder med lav online aktivitet./dynmap radiusrender <radius>— opdaterer kun kortet inden for en bestemt radius omkring spilleren, hvilket er meget nyttigt efter byggeriet af store byer./dynmap cancelrender— afslutter igangværende renderingsprocesser i tilfælde af overbelastning af processoren./dynmap pause all— sætter midlertidigt alle kortberegninger på pause, hvilket hjælper med at frigøre ressourcer til at stabilisere TPS'en.
Konklusion
Dynmap-pluginet er et kraftfuldt værktøj til at visualisere verden og forbedre spillerinteraktionen på store Minecraft-servere. Takket være skabelsen af isometriske 3D-modeller og integration via en webgrænseflade, forvandles kortet til en fuldgyldig informationsportal for projektet.
Sammenlignet med alternative muligheder som f.eks. BlueMap (som i høj grad udnytter WebGL til fuld 3D-visning) eller Squaremap (der udelukkende fokuserer på et meget hurtigt 2D-kort uden nogen volumetriske modeller), tilbyder Dynmap den mest optimale balance i funktionalitet. De høje krav til diskplads og den konstante I/O-belastning vil dog kræve, at administratorerne er meget opmærksomme på fastsættelse af verdensgrænser og det korrekte valg af opløsning. Denne udvidelse er et fremragende valg til omfattende overlevelses-, anarki- eller RP-servere.
Installation
En typisk installation tager omkring 5 minutter. Forløbet er det samme; kun Loader og den matchende build er forskellige.
- 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.











