Criação e configuração do servidor Minecraft

Criação e configuração do servidor Minecraft

Minecraft é hoje um dos jogos online mais populares. Em menos de três anos (o primeiro lançamento oficial ocorreu no outono de 2011), ele conquistou milhões de fãs ao redor do mundo.

Os desenvolvedores do jogo se baseiam intencionalmente nos melhores exemplos de vinte anos atrás, quando muitos jogos eram, segundo os padrões atuais, primitivos em termos de gráficos e imperfeitos em usabilidade, mas, ainda assim, realmente cativantes.

Assim como todos os jogos sandbox, Minecraft oferece ao usuário enormes possibilidades de criatividade — é isso, na verdade, que constitui o principal segredo de sua popularidade.

A organização de servidores para o jogo em modo multiplayer é realizada pelos próprios jogadores e suas comunidades. Hoje, existem dezenas de milhares de servidores de jogos funcionando na Internet (veja, por exemplo, a lista aqui).

Há muitos fãs desse jogo entre nossos clientes, que alugam equipamentos em nossos datacenters para projetos de jogos. Neste artigo, falaremos sobre os aspectos técnicos a serem observados ao escolher um servidor para
Minecraft.

Escolhendo a plataforma

O jogo Minecraft inclui os seguintes elementos arquitetônicos:

  1. servidor — um programa que permite aos jogadores interagir uns com os outros pela rede;
  2. cliente — um programa para conexão ao servidor, instalado no computador do jogador;
  3. plugins — extensões do servidor que adicionam novas funções ou expandem funções antigas;
  4. mods — expansões do mundo do jogo (novos blocos, itens, possibilidades).

Existem muitas plataformas de servidores disponíveis para Minecraft. As mais comuns e populares são Vanilla e Bukkit.

Baunilha é a plataforma oficial dos desenvolvedores do jogo. É distribuída tanto em variante gráfica quanto em variante de console. Uma nova versão do Vanilla sempre é lançada simultaneamente com uma nova versão do Minecraft.

A desvantagem do Vanilla é o consumo excessivo de memória (aproximadamente 50 MB por jogador). Outra desvantagem significativa é a falta de plugins.

Bukkit foi criado por um grupo de entusiastas que tentou aprimorar o servidor oficial do Minecraft. A tentativa foi bastante bem-sucedida: em termos de funcionalidade, o Bukkit é muito mais amplo do que o Vanilla — principalmente devido ao suporte a uma variedade de mods e plugins. Além disso, consome menos memória por jogador — cerca de 5 a 10 MB.

As desvantagens do Bukkit estão no fato de que ao iniciar ele consome muita memória RAM. Além disso, quanto mais tempo o servidor funciona, mais memória ele precisa (mesmo que haja poucos jogadores). Ao escolher o Bukkit como servidor, deve-se levar em consideração que suas novas versões geralmente contêm erros; a versão estável normalmente aparece cerca de 2 a 3 semanas após o lançamento da versão oficial do Minecraft.

Além disso, recentemente outras plataformas (como Spout, MCPC e MCPC+) estão se tornando populares, mas elas têm compatibilidade limitada com Vanilla e Bukkit e suporte extremamente reduzido a mods (por exemplo, para Spout, é possível apenas criar mods do zero). Se forem utilizadas, deve ser apenas para experimentos.

Para organizar um servidor de jogo, recomendamos usar a plataforma Bukkit, pois ela oferece a maior flexibilidade; além disso, existe uma ampla variedade de mods e plugins para ela. O funcionamento estável do servidor Minecraft depende em grande parte da escolha adequada da plataforma de hardware. Vamos explorar essa questão mais detalhadamente.

Requisitos de hardware

Tanto o servidor quanto o cliente do Minecraft são muito exigentes em relação aos recursos do sistema.
Ao escolher a plataforma de hardware, deve-se considerar que um processador multi-core não trará grandes vantagens: o núcleo do servidor Minecraft pode utilizar apenas um thread de computação. O segundo núcleo, no entanto, será útil: alguns plugins são executados em threads separadas, e o Java também consome muitos recursos...

Portanto, para o Minecraft-servidor é melhor escolher um processador que tenha desempenho de núcleo mais alto. Um processador dual-core mais potente será mais preferível do que um multi-core, mas menos potente. Em fóruns especializados, recomenda-se o uso de processadores com frequência de clock não inferior a 3 GHz.

Para o funcionamento adequado de um servidor Minecraft, é necessário uma grande quantidade de memória RAM. O Bukkit consome cerca de 1GB de RAM; além disso, para cada jogador, como mencionado anteriormente, são alocados de 5 a 10 MB. Plugins e mods também consomem uma quantidade considerável de memória. Para um servidor com 30 a 50 jogadores, portanto, serão necessários pelo menos 4 GB de RAM.

No Minecraft, muitos aspectos (como o carregamento dos mesmos plugins) dependem da velocidade do sistema de arquivos. Portanto, é preferível escolher um servidor com SSD. Discos rígidos comuns provavelmente não serão adequados devido à baixa velocidade de leitura aleatória.

A velocidade da conexão de internet também é extremamente importante. Para jogos com 40 a 50 pessoas, uma largura de banda de 10 Mb/s é geralmente suficiente. No entanto, para quem planeja um projeto Minecraft mais abrangente, incluindo site, fórum e um mapa dinâmico, é altamente recomendável ter uma conexão com maior largura de banda.

Qual configuração específica é melhor escolher? Das configurações que oferecemos recomendamos prestar atenção nas seguintes:

  • Intel Core 2 Duo E8400 3GHz, 6GB RAM, 2×500GB SATA, 3000 руб/mês;
  • Intel Core 2 Quad Q8300 2.5GHz, 6GB RAM, 2×500GB SATA, 3500 руб/mês — esta configuração é utilizada em nosso servidor de teste MineCraft, onde você pode jogar agora mesmo (como fazer isso está descrito abaixo);
  • Intel Core i3-2120 3.3GHz, 8GB RAM, 2×500GB SATA, 3500 руб/mês.

Essas configurações são adequadas para criar um servidor Minecraft para 30 a 40 jogadores. Um ponto negativo é a ausência de discos SSD, mas oferecemos outra vantagem significativa: uma conexão garantida de 100 Mb/s sem quaisquer limitações e restrições. Ao solicitar todas as configurações listadas acima, não será cobrada taxa de instalação.

Temos também servidores mais potentes, mas, naturalmente, mais caros (ao solicitar essas configurações, a taxa de instalação também não será cobrada):

  • 2× Intel Xeon 5130, 2GHz, 8GB RAM, 4×160GB SATA, 5000 руб/mês;
  • 2× Intel Xeon 5504, 2GHz, 12GB RAM, 3×1TB SATA, 9000 руб/mês.

Recomendamos também prestar atenção ao novo modelo econômico com SSD baseado no processador Intel Atom C2758: Intel Atom C2758 2.4GHz, 16 GB RAM, 2×240GB SSD, 4000 руб/mês, taxa de instalação — 3000 руб.

Instalação e execução do servidor Bukkit no OC Ubuntu

Antes de instalar o servidor, vamos criar um novo usuário e adicioná-lo ao grupo sudo:

$ sudo useradd -m -s /bin/bash 
$ sudo adduser  sudo

Em seguida, definir uma senha que o usuário criado usará para se conectar ao servidor:

$ sudo passwd

Vamos nos reconectar ao servidor com a nova conta e iniciar a instalação.
O Minecraft é escrito em Java, portanto, é necessário instalar o Java Runtime Environment no servidor.

Vamos atualizar a lista de pacotes disponíveis:

$ sudo apt-get update

Depois, executaremos o seguinte comando:

$ sudo apt-get install default-jdk

Para instalar e executar o Bukkit, é desejável também instalar um multiplexador de terminal - por exemplo, o screen (pode-se usar outros multiplexadores de terminal - veja nossa análise):

$ sudo apt-get install screen

O Screen será necessário se conectarmos ao servidor de jogos via ssh. Com ele, será possível iniciar o servidor Minecraft em uma janela de terminal separada e, mesmo após fechar o cliente ssh, o servidor continuará funcionando.

Vamos criar um diretório onde os arquivos do servidor serão armazenados:

$ mkdir bukkit
$ cd bukkit

Após isso, vamos acessar a página de downloads do site oficial do Bukkit. No canto superior direito da página, é possível ver um link para a última versão recomendada do servidor (recommended build). Recomendamos baixar exatamente ela:

$ wget

Agora vamos iniciar o screen:

$ sudo screen

e executar o seguinte comando:

$ java -Xmx1024M -jar craftbukkit.jar -o false

Explicaremos o que significam os parâmetros utilizados:

  • Xmx1024M - a quantidade máxima de memória RAM disponível no servidor;
  • jar craftbukkit.jar - chave para o servidor;
  • o false - permite acesso ao servidor a clientes piratas.

O servidor será iniciado.
Para parar o servidor, digite o comando stop no console.

Configuração e configuração do servidor

As configurações do servidor são armazenadas no arquivo de configuração server.properties. Ele contém os seguintes parâmetros:

  • generator-settings - define o padrão de geração do mundo superplano;
  • allow-nether - determina a possibilidade de transição para o Mundo Inferior. Por padrão, este parâmetro é definido como true. Se definido como false, todos os jogadores do Mundo Inferior serão movidos para o normal;
  • level-name — o nome da pasta com os arquivos do mapa que será usado durante o jogo. A pasta é colocada no mesmo diretório onde estão os arquivos do servidor. Se esse diretório não existir, o servidor cria automaticamente um novo mundo e o coloca em um diretório com o mesmo nome;
  • enable-query — quando definido como true, ativa o protocolo GameSpy4 para escuta do servidor;
  • allow-flight — permite voos no mundo Minecraft. Por padrão, tem o valor false (voos são proibidos);
  • server-port — especifica a porta que será usada pelo servidor de jogo. A porta padrão para Minecraft é 25565. Não é recomendado alterar o valor deste parâmetro;
  • level-type — define o tipo de mundo (DEFAULT/FLAT/LARGEBIOMES);
  • enable-rcon — abre acesso remoto ao console do servidor. Por padrão, está desativado (false);
  • level-seed — entradas para o gerador de níveis. Para poder criar mundos aleatórios, este campo deve ser deixado em branco;
  • force-gamemode — define o modo de jogo padrão para jogadores que se conectam ao servidor;
  • server-ip — especifica o endereço IP que será usado pelos jogadores para se conectar ao servidor;
  • max-build-height — define a altura máxima de construção no servidor. Seu valor deve ser um número múltiplo de 16 (64, 96, 256, etc.);
  • spawn-npcs — permite (se definido como true) ou proíbe (se definido como false) o aparecimento de NPCs nas vilas;
  • white-list — ativa e desativa o uso da lista branca de jogadores no servidor. Se definido como true, o administrador poderá formar a lista branca, adicionando manualmente os nomes dos jogadores. Se definido como false, qualquer usuário que conheça o IP e a porta do servidor poderá ingressar;
  • spawn-animals — permite o aparecimento automático de mobs amigáveis, se definido como true;
  • snooper-enabled — permite que o servidor envie estatísticas e dados para os desenvolvedores;
  • hardcore — ativa o modo Hardcore no servidor;
  • texture-pack — arquivo de texturas que será utilizado ao conectar o jogador ao servidor. O valor deste parâmetro deve ser o nome do arquivo zip com as texturas, que está no mesmo diretório que o servidor;
  • modo online — ativa a verificação de contas premium dos usuários que se conectam ao servidor. Se este parâmetro estiver definido como verdadeiro, apenas proprietários de contas premium poderão acessar o servidor. Se a verificação de contas estiver desativada (definida como falsa), qualquer usuário (incluindo, por exemplo, jogadores que falsificaram o nome) poderá acessar o servidor, o que cria riscos adicionais de segurança. Com a verificação desativada, é possível jogar Minecraft em rede local, sem acesso à Internet;
  • pvp — permite ou impede que jogadores lutem entre si. Se este parâmetro tiver o valor verdadeiro, os jogadores poderão se destruir uns aos outros. Se o valor estiver definido como falso, os jogadores não poderão causar dano direto uns aos outros;
  • dificuldade — define o nível de dificuldade do jogo. Pode ter valores de 0 (o mais fácil) a 3 (o mais difícil);
  • modo de jogo — indica qual modo de jogo será definido para os jogadores que acessam o servidor. Pode ter os seguintes valores: 0 — Sobrevivência, 1 — Creativo, 2 — Aventura;
  • tempo de inatividade do jogador — tempo de inatividade (em minutos), após o qual os jogadores são desconectados automaticamente do servidor;
  • jogadores max — número máximo permitido de jogadores no servidor (de 0 a 999);
  • spawn-monsters — permite (se o valor estiver definido como verdadeiro) o surgimento de criaturas hostis;
  • gerar estruturas — ativa (true)/desativa (false) a geração de estruturas (túmulos, fortalezas, vilas);
  • distância de visão — regula o raio de chunks atualizados enviados ao jogador; pode ter valores de 3 a 15.

Os logs do servidor Minecraft são registrados no arquivo server.log. Ele é armazenado na mesma pasta que os arquivos do servidor. O log cresce constantemente em tamanho, ocupando cada vez mais espaço em disco. A operação do mecanismo de logging pode ser organizada por meio de unificação, chamada de rotação de logs. Para rotação, é utilizada uma ferramenta especial — logrotate. Ela limita o número de entradas no log a um determinado limite.

É possível configurar a rotação dos logs de forma que todas as entradas sejam excluídas assim que o arquivo de log atingir um determinado tamanho. Também é possível definir um prazo, após o qual todas as entradas antigas serão consideradas desatualizadas e excluídas.

As configurações principais de rotação estão no arquivo /etc/logrotate.conf; além disso, para cada aplicativo, é possível criar configurações individuais. Os arquivos com configurações individuais são armazenados no diretório /etc/logrotate.d.

Vamos criar um arquivo de texto /etc/logrotate.d/craftbukkit e escrever nele os seguintes parâmetros:

/home/craftbukkit/server.log {
  rotate 2
  weekly
  compress
  missingok
  notifempty
}

Vamos analisar os valores deles mais detalhadamente:

  • O parâmetro rotate indica o número de rotações até a exclusão do arquivo;
  • weekly indica que a rotação será feita semanalmente (podem ser definidos outros parâmetros: monthly - mensalmente e daily - diariamente);
  • compress indica que os logs arquivados devem ser compactados (a opção inversa é nocompress);
  • missingok indica que, na ausência do arquivo de log, deve-se continuar a operação sem exibir mensagens de erro;
  • notifempty indica que o arquivo de log não deve ser movido se estiver vazio.

Mais detalhes sobre as configurações de rotação de logs podem ser lidos aqui.

Dicas de otimização

De imediato, devemos esclarecer que esta seção fornecerá dicas relacionadas apenas à otimização do servidor de jogos. Questões de ajuste fino e otimização do servidor onde o Minecraft está instalado constituem um tópico separado, que foge ao escopo deste artigo; leitores interessados poderão facilmente encontrar as informações necessárias na Internet.

Um dos problemas mais comuns ao jogar Minecraft são os chamados lags - situações em que o programa não reage rapidamente à entrada do usuário. Eles podem ser causados por problemas tanto do lado do cliente quanto do lado do servidor. Abaixo daremos recomendações que ajudarão a reduzir a probabilidade de problemas no lado do servidor.

Monitore regularmente o consumo de memória do servidor e dos plugins

O consumo de memória pode ser monitorado através de plugins administrativos especializados - por exemplo, LagMeter.

Fique de olho nas atualizações dos plugins

Geralmente, os desenvolvedores de novos plugins buscam reduzir a carga a cada nova versão.

Evite usar muitos plugins com funcionalidades semelhantes

Plugins grandes (como Essentials, AdminCMD, CommandBook) frequentemente incluem funcionalidades de muitos plugins menores. Por exemplo, o próprio Essential contém funções dos plugins iConomy, uHome, OpenInv, VanishNoPacket, Kit. Plugins menores, cuja funcionalidade é completamente coberta pela funcionalidade de um grande, na maioria dos casos podem ser removidos para não sobrecarregar o servidor.

Limite o mapa e carregue-o manualmente

Se não limitar o mapa, a carga no servidor aumentará significativamente. O mapa pode ser limitado usando o plugin WorldBorder. Para isso, você precisa iniciar este plugin e executar o comando /wb 200, e então desenhar o mapa usando o comando /wb fill.

O traçado, é claro, levará um tempo considerável, mas é melhor fazer isso uma vez, fechando o servidor para manutenção. Se cada jogador for traçar o mapa, o servidor funcionará lentamente.

Substitua plugins pesados por alternativas mais rápidas e menos exigentes.

Nem todos os plugins para Minecraft podem ser considerados eficazes: muitas vezes, eles contêm muitas funções desnecessárias e, às vezes, consomem muita memória. É melhor substituir plugins ineficazes por alternativos (existem bastante). Por exemplo, o plugin LWC pode ser substituído por Wgfix+MachineGuard, e o plugin DynMap por Minecraft Overviewer.

Sempre limpe os drops ou instale um plugin para a remoção automática dos drops.

Drops em jogos são itens que caem ao morrer um mob ou ao destruir certos blocos. Armazenar e processar drops consome muitos recursos do sistema.

Para que o servidor funcione mais rápido, é desejável remover os drops. Isso é melhor feito usando plugins especiais – como NoLagg ou McClean.

Não use anticheats

Em servidores de jogos, frequentemente são instalados chamados anticheats – programas que bloqueiam tentativas de manipular o jogo de forma desonesta.

Existem anticheats para Minecraft também. Qualquer anticheat representa sempre uma carga adicional no servidor. É preferível instalar proteções para o launcher (que, no entanto, não garantem segurança absoluta e podem ser facilmente quebradas – mas isso já é assunto para outra conversa) e para o cliente.

Em conclusão

Qualquer instrução e recomendações são muito mais eficazes quando respaldadas por exemplos concretos. Com base nas instruções de instalação acima, criamos nosso servidor MineCraft e adicionamos algo interessante ao mapa.

Aqui está o que nós conseguimos:

  • Servidor Bukkit - versão estável recomendada 1.6.4;
  • Plugin Statistics - para coletar estatísticas sobre os jogadores;
  • Plugin WorldBorder - para desenhar e limitar o mapa;
  • Plugin WorldGuard (+WorldEdit como dependência) - para proteger algumas áreas.

Convidamos todos que desejam jogar nele: para se conectar, adicione um novo servidor e insira o endereço mncrft.slc.tl.

Ficaremos felizes se nos comentários você compartilhar sua própria experiência de instalação, configuração e otimização de servidores MineCraft e contar quais mods e plugins são do seu interesse e por quê.

Notícia incrível: A partir de 1º de agosto, a taxa de instalação para servidores dedicados de configuração fixa foi reduzida em 50%. Agora, a taxa de instalação única é de apenas 3000 rublos.

Convidamos leitores que não conseguem deixar comentários aqui para nos visitar em blog.

Fonte: habr.com

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster