Dynmap: análise do plugin de mapa online tridimensional para Minecraft
Análise detalhada do plugin Dynmap para servidores Minecraft. Renderização de mapas 3D isométricos, configuração de servidor web integrado…
Análise detalhada do plugin Dynmap para servidores Minecraft. Renderização de mapas 3D isométricos, configuração de servidor web integrado, compatibilidade e integração com Nginx.
Dependências:
Loader: Paper / Spigot / Fabric / Forge
Versão do Minecraft: 1.20.x – 1.21.x
No modo multijogador do Minecraft, a coordenação entre jogadores, a busca por áreas livres para construção e o monitoramento de atividades em grandes territórios frequentemente causam dificuldades. As ferramentas básicas ofrecen apenas mapas de papel locais que não cobrem todo o mundo e não são atualizados em tempo real. A utilidade Dynmap resolve esse problema ao criar um mapa interativo do mundo de jogo acessível através de um navegador comum. Ela funciona segundo o princípio de serviços de informações geográficas, como o Google Maps, exibindo um relevo detalhado, a localização dos jogadores, os limites de regiões privadas e as mensagens do chat do jogo.
Funcionamento do motor de renderização e salvamento de tiles
Na base do funcionamento do Dynmap está o seu próprio pipeline de renderização, que converte dados tridimensionais de chunks do Minecraft em um conjunto de arquivos gráficos bidimensionais (ladrilhos ou tiles).
Tipos de renderização e projeções
O plugin suporta três opções principais de exibição do mundo:
Visualização plana (Flat): Mapa bidimensional clássico com visão de cima para baixo. Consome a menor quantidade de espaço em disco e recursos de processador durante a geração.
Visualização 3D isométrica (Surface): Projeção tridimensional volumétrica em ângulo, permitindo avaliar variações de altitude do terreno, a arquitetura de edifícios e a profundidade de corpos d'água.
Visualização de cavernas (Cave): Renderiza cavidades subterrâneas e minas, mostrando a estrutura das cavernas abaixo do nível da superfície.
Salvamento de arquivos e carga no disco
Todos os tiles de mapa gerados são salvos como imagens padrão no formato PNG ou JPG na pasta plugins/dynmap/web/tiles/. A cada alteração de blocos feita pelos jogadores (construção, destruição, explosões), o Dynmap inicia um processo de atualização incremental — apenas os tiles que caíram diretamente na zona do chunk atualizado são redesenhados.
O subsistema de disco do servidor sofre uma carga significativa (operações de E/S) durante a renderização inicial do mundo. Em alta resolução, a pasta com tiles de um mapa grande pode atingir dezenas ou até centenas de gigabytes, o que exige o uso de SSDs rápidos e a limitação das bordas do mundo (WorldBorder).
alt: [Interface do mapa web Dynmap no navegador com exibição da visualização isométrica 3D do spawn]
Infraestrutura de servidor web: Jetty contra Nginx
O Dynmap oferece dois esquemas de implantação da interface web, dependendo da escala do servidor e da carga esperada.
Servidor web integrado Jetty
Por padrão, após a instalação, o plugin inicia automaticamente o servidor web integrado Jetty na porta 8123. Esta opção não requer configurações adicionais: basta ao administrador abrir a porta 8123 na hospedagem, e o mapa ficará acessível no endereço http://IP_do_servidor:8123/.

Integração com servidor externo (Nginx ou Apache)
Para servidores públicos com alto número de jogadores online, o Jetty integrado cria uma carga adicional no processo Java do jogo, pois cada usuário da web consome tráfego diretamente através do servidor do jogo. Para otimização, recomenda-se configurar a entrega de tiles através de um servidor web independente como Nginx ou Apache.
Sob este esquema, o Nginx é configurado para trabalhar diretamente com a pasta web/tiles/, contornando o núcleo do processo do jogo Minecraft. Isso traz várias vantagens importantes:
Proteção da thread do jogo: As requisições dos navegadores são processadas por um servidor web separado, o que elimina microtravamentos (quedas de TPS) no jogo.
Criptografia HTTPS: Facilidade para configurar certificados SSL gratuitos da Let's Encrypt para uma conexão segura.
Acessibilidade em modo offline: O mapa web do relevo permanece disponível para visualização mesmo durante a reinicialização ou desligamento do servidor de jogo do Minecraft.
Ajuste de configuração e gerenciamento de renderização
Os principais parâmetros do plugin são editados no arquivo plugins/dynmap/configuration.txt.

Configurações gerais de renderização e salvamento
Parâmetro | Valor padrão | Descrição |
|---|---|---|
|
| Define a qualidade dos templates de renderização por padrão ( |
|
| Escolha do armazenamento para os tiles de mapa. Opções disponíveis: |
|
| Intervalo (em segundos) de verificação e renderização de tiles da fila de atualizações. |
|
| Quantidade de tiles na fila de atualização a partir da qual o intervalo de renderização é acelerado. |
|
| Intervalo acelerado de renderização (em segundos) quando a fila excede o limite. |
|
| Quantidade de tiles renderizados simultaneamente (recomenda-se definir um valor equivalente a metade do número de núcleos do processador). |
|
| Prioridade das threads de renderização. Se for |
|
| Salvamento da fila de tarefas de renderização pendentes ao desligar ou reiniciar o servidor. |
|
| Atraso (em segundos) antes de iniciar a renderização de blocos alterados. Evita o redesenho constante de tiles devido a mecanismos automatizados (redstone, pistões, etc.). |
|
| Ativação de hash de tiles. Se a imagem do tile não mudar após a renderização, o arquivo no disco não será sobrescrito, economizando a vida útil do dispositivo de armazenamento. |
|
| Cálculo de iluminação suave (como no jogo) durante a geração do mapa. |
|
| Formato e qualidade das imagens dos tiles (por padrão JPG com 90% de qualidade). Pode ser alterado para |
|
| Usar texturas geradas pelo jogo (que correspondem ao pacote de recursos do cliente) em vez de estáticas. |
|
| Suporte para texturas conectadas (Connected Texture Mod) dos pacotes de recursos. |
|
| Suporte a cores personalizadas de biomas e folhagens dos pacotes de recursos. |
|
| Lista de eventos do jogo (colocação/destruição de blocos, crescimento de árvores, explosões) que iniciam a fila de renderização dos tiles. |
Infraestrutura web e caminhos de arquivos
Parâmetro | Valor padrão | Descrição |
|---|---|---|
|
| Caminho no diretório do plugin onde os arquivos gráficos (ladrilhos) do mapa serão salvos. |
|
| Caminho para os arquivos web estáticos do mapa (HTML, JS, CSS). |
|
| Atualização automática de arquivos estáticos na inicialização do plugin (definido como |
|
| Porta TCP na qual o servidor web integrado Jetty funcionará. |
|
| Desativação do servidor web integrado (útil ao configurar a entrega de tiles através de um servidor web externo como Nginx ou Apache). |
|
| Número máximo de sessões simultâneas no servidor web integrado para economizar recursos. |
|
| Permitir que o servidor web siga links simbólicos. |
|
| Ativação do sistema de autorização de usuários para visualizar o mapa ou se comunicar no chat. |
|
| Exigir login obrigatório na conta para visualizar o mapa web. |
|
| Lista de servidores proxy confiáveis para a determinação correta dos endereços IP reais dos usuários através do cabeçalho |
Configuração dos componentes da interface web (chat web, marcadores, jogadores)
Parâmetro / Classe | Valor padrão | Descrição |
|---|---|---|
| Classe do componente | Responsável por transmitir dados sobre o status dos jogadores, o chat e as atualizações do mapa. Nota: Ao usar um servidor web externo (Nginx), esta classe deve ser alterada para |
|
| Exibição dos indicadores de vida (saúde) dos jogadores no mapa. |
|
| Exibição da localização exata dos jogadores no mapa. |
|
| Permitir o envio de mensagens da interface web para o chat do jogo Minecraft. |
|
| Intervalo (em segundos) entre mensagens no chat da web (proteção contra spam). |
|
| Ocultar jogadores do mapa se eles estiverem agachados (esgueirando-se). |
|
| Ocultar jogadores do mapa se eles estiverem no modo espectador. |
|
| Ocultar jogadores do mapa se eles estiverem sob o efeito de uma poção de invisibilidade. |
| Classe do componente | Gerencia as camadas de marcadores no mapa. Permite exibir o spawn ( |
|
| Exibição dos rostos (skins) dos jogadores nos marcadores do mapa. |
|
| Exibição da barra de vida diretamente acima do ícone do jogador no mapa. |
Otimização e limites de desempenho do processador (TPS/MSPT)
Parâmetro | Valor padrão | Descrição |
|---|---|---|
|
| Intervalo (em segundos) de pausas durante a execução de uma renderização completa ( |
|
| Número máximo de chunks que o Dynmap pode carregar na memória por tick de jogo (1/20 de segundo). Reduzir este parâmetro diminui o lag no servidor. |
|
| Limite de tempo alvo por tick para a thread de renderização (em milissegundos). |
|
| Se o TPS do servidor cair abaixo deste valor, o Dynmap pausará automaticamente a renderização das próximas atualizações de tiles. |
|
| Se o TPS do servidor cair abaixo deste valor, o Dynmap interromperá a execução da renderização completa do mundo ( |
|
| TPS mínimo sob o qual é permitido realizar os cálculos dos níveis de zoom-out (afastamento) do mapa. |
|
| Número de chunks no cache de instantâneos (snapshots) do relevo. |
|
| Uso de referências fracas (Soft References) para o cache de chunks. Permite que a JVM limpe o cache do mapa em caso de ameaça de erro OutOfMemory. |
Parâmetros de otimização em configuration.txt
Para preservar o desempenho do servidor, vale a pena atentar-se às seguintes variáveis do arquivo de configuração:
deftemplatesuffix— sufixo da qualidade de renderização. Os valoresvlowres(qualidade muito baixa) oulowres(baixa) permitem acelerar significativamente a geração do mapa e reduzir o tamanho dos arquivos de 4 a 8 vezes em comparação com o padrãohires.tilespath— permite redirecionar o salvamento do mapa para outro disco rígido do servidor, protegendo o armazenamento principal contra sobrecargas e falta de espaço.webserver-port— porta de conexão ao mapa (em vez da padrão8123).
Comandos de controle de renderização
A geração do mapa é controlada pelo console do servidor por um operador de nível 4:
/dynmap fullrender <mundo>— inicia a renderização completa do mundo especificado. Recomenda-se executar apenas após a pré-geração completa de chunks (chunk pre-generation) e em períodos de baixo movimento online./dynmap radiusrender <raio>— atualiza o mapa apenas em um determinado raio ao redor do jogador, o que é útil após a construção de grandes cidades./dynmap cancelrender— interrompe os processos de renderização atuais em caso de sobrecarga do processador./dynmap pause all— pausa temporariamente todos os cálculos do mapa, liberando recursos para estabilizar o TPS.
Conclusão
O plugin Dynmap é uma ferramenta poderosa para a visualização do mundo e a melhoria da interação entre os jogadores em grandes servidores de Minecraft. Graças à renderização 3D isométrica e à integração com a interface web, ele transforma o mapa em um verdadeiro portal de informações do projeto.
Em comparação com alternativas como o BlueMap (que utiliza WebGL pesado para visualização 3D completa) ou o Squaremap (que oferece um mapa 2D exclusivamente rápido sem modelos volumétricos), o Dynmap oferece um equilíbrio ideal de funcionalidades. No entanto, as altas exigências de espaço em disco e a carga constante no sistema de entrada/saída requerem atenção dos administradores em relação aos limites do mundo e à escolha adequada da resolução. O plugin é uma excelente escolha para grandes servidores de sobrevivência, anarquia ou mundos de RP.
Instalação
Uma instalação típica leva cerca de 5 minutos. O fluxo é o mesmo; só mudam o loader e o build correspondente.
- 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.











