MCserver
Cá em casa o Raspberry Pi (RPi) está sempre ligado para servir os seus vários propósitos. Isso levou-me a pensar numa forma de usar o RPi para manter um servidor de Minecraft. A ideia já não era nova. Já tinha pensado nela quando jogávamos Minecraft PE.
Encontrei na internet quem já se tivesse entretido com isto, e melhor. Alguém tinha preparado um servidor Minecraft totalmente em C++. A diferença entre o C++ e o Java é essencialmente que enquanto o primeiro foi feito para ser escrito uma vez e compilado em qualquer plataforma, o segundo foi feito para ser altamente portátil e poder correr em qualquer máquina. A grande vantagem de compilarmos na máquina em que vamos executar é que podemos obter ganhos de performance uma vez que o código é otimizado.
Tendo a performance como objetivo, pareceu-me que a opção de compilar o meu executável do C++ no RPi poderia valer a pena.
As instruções de compilação do MCserver no site são simples:
- Abrir um terminal para o vosso RPi (ssh ip-do-rpi);
- Autenticarem-se;
- Instalar as ferramentas de obtenção e compilação do código:
sudo apt-get install clang git cmake build-essential;
- Obter o código da última versão:
-
git clone https://github.com/mc-server/MCServer.git
git submodule init
git submodule update
- Preparar os ficheiros e compilar o servidor:
-
cmake . -DCMAKE_BUILD_TYPE=RELEASE
make .
No site as instruções dizem-nos para gerar os compilados com a opção -j 2 ao make
, mas na minha experiência não acontecia nada com este argumento. O argumento j indica quantas tarefas podem ser feitas de cada vez, o que no caso do RPi parece ser apenas 1, tornando o argumento desnecessário.
No site do MCserver avisa que o processo de compilação no RPi vai demorar muito tempo, o que é verdade. No meu caso o RPi demorou mais de meia hora para atingir os 50% do processo de compilação. Passadas 2 horas e 51 minutos havia um executável pronto a testar no diretório MCserver.
O sistema aparenta funcionar como um servidor normal. Depois de arrancar cria as pastas que não encontrou e inicia um mundo com uma configuração por defeito. A documentação sobre a configuração pode ser encontrada numa Wiki e há também um forum para quem desenvolve.
Depois de lançar o servidor é disponibilizada uma página para administração no port :8080 do endereço do servidor. Aqui vão poder configurar as permissões dos visitantes ou iniciar modificações ao jogo, tal como fariam com um mod/plugin de Minecraft.
Para juntar os camaradas de aventura só têm de lhes dar o endereço do servidor, mas até que tenha sido feita uma verificação de segurança, não aconselho a disponibilizarem o servidor na Internet, isto é, a outras pessoas que estejam fora da vossa rede doméstica.