You are currently browsing the Poupar Melhor posts tagged: Raspberry Pi


Compilar o Servidor Minecraft MCServer no Raspberry Pi

MCserver

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:

  1. Abrir um terminal para o vosso RPi (ssh ip-do-rpi);
  2. Autenticarem-se;
  3. Instalar as ferramentas de obtenção e compilação do código: sudo apt-get install clang git cmake build-essential;
  4. Obter o código da última versão:
    1. git clone https://github.com/mc-server/MCServer.git
      git submodule init
      git submodule update
  5. Preparar os ficheiros e compilar o servidor:
    1. 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.

Minecraft server no Raspberry Pi

MC-Server - Servidor Minecraft em C++

MC-Server – Servidor Minecraft em C++

Isto vai de mal a pior. Já não jogo ao Minecraft com os miúdos, mas dedico-me a ler como fazer para lhes manter um servidor sempre ligado onde possam ter as suas aventuras e talvez um dia me juntarei, como fazia com o Minecraft PE.

O A.Sousa já me tinha contado como o Minecraft usava os recursos de forma pouco inteligente. Partindo do principio que esses recursos eram em parte consumidos para gerir o mundo onde as aventuras aconteciam, retirar o peso ao computador de gerir esse mundo seria a uma das formas de partilhar uma parte da carga com outra máquina.

O Raspberry Pi tem uma versão reduzida de Minecraft. Infelizmente esta versão não é compatível com as versões que correm nos computadores das crianças.

Procurando na internet, foi possível descobrir como correr o jogo como servidor. No How to geek podem ver como montar um RPi dedicado para o Minecraft, mas implica colocar o RPi em overclock, uma técnica que permite acelerar a velocidade de processamento, mas pode levar a que o sistema danifique o cartão de dados onde correm o sistema operativo.

De acordo com as instruções, vão ter de instalar o Java no RPi. Se como têm o vosso RPi a fazer de centro multimédia, servidor de ficheiros e TimeCapsule, a perspetiva de ter de fazer overclocking e ainda por cima juntar-lhe o Java não é nada animadora.

Encontrei uma solução que passa por instalar o MCServe, uma versão do servidor de minecraft em C++. A grande diferença entre ser Java ou C++ é que o Java pode ser corrido em qualquer máquina ou configuração, o que não pode ser tão otimizado, enquanto o C++ é suposto depois de escrever para uma máquina poder ser compilado em qualquer outra máquina, com algumas restrições. Também é dito que, compilando o C++ na própria máquina, o resultado pode chegar a otimizações de quase o dobro da eficiência, logo, mais rápido.

O MCServer é fácil de instalar, mas exige alguns conhecimentos de instalação e configuração de sistemas Linux. A minha tentativa foi feita obtendo a versão mais recente e compilando-a. Neste momento ainda corre no RPi ao lado do XBMC, da partilha de ficheiros e do TimeCapsule, mas as crianças reportam que há vezes que caem para o fundo do mundo e morrem e outras em que têm dificuldade em colocar blocos na construção se não moverem o boneco.

120º servidor: de Minecraft no Raspberry Pi

Podcast do Poupar Melhor

Esta semana falámos das tentativas de instalar um servidor de Minecraft no Raspberry Pi para os míudos jogarem… e o graúdo também.

Podem aceder aqui à lista completa de episódios do Podcast. O Podcast do Poupar melhor está também no iTunes

Play

Jogar Minecraft e perder horas

Minecraft PE

Minecraft PE

Eu me confesso. Tenho jogado Minecraft com os miúdos tardes inteiras durante o fim de semana. Esta maravilha de empilhar e destruir blocos é uma espécie de Lego digital. Não fosse o ponto positivo deste jogo ser jogado em grupo com grande necessidade de comunicação para coordenação de esforços e diria que foram na realidade horas perdidas.

As construções no modo criativo são algo digno da imaginação mais louca. No modo criativo todos os materiais estão disponíveis. Podemos fazer com eles o que quisermos. Gerar os habitantes que entendermos. Podemos até voar.O modo que preferimos é o modo de aventura. As aventuras são criadas no mundo digital aleatoriamente.

Os jogadores iniciam sem qualquer equipamento base, por isso a primeira tarefa é construir ferramentas essenciais à sobrevivência e cavar uma toca para passar a primeira noite a salvo das criaturas maléficas que povoam o mundo. Aranhas, esqueletos, zombies, bichos verdes que explodem e seres gigantes que se teleportam são os nossos inimigos naturais.

O grupo organiza-se para apanhar as matérias primas para construir portas, tijolos, ferramentas de metal, armaduras e outras coisas necessárias e depois parte à aventura. Procuramos minérios nobres dentro das cavernas onde os zombies e esqueletos se escondem durante o dia para não morrerem torrados pelo sol.

Estas aventuras guardam-se no estado em as deixamos e podemos continuar no dia seguinte. Por um lado há a arrumação facilitada que não tínhamos no nosso tempo. Por outro falta a total liberdade de imaginação que os nossos brinquedos não eletrónicos tinham. Mas a imaginação fala mais alto e as crianças exigem que apareçam coisas conforme as regras delas.

Querem criar uma economia no jogo e a possibilidade de interagir com os cidadãos do jogo para comprar e vender os materiais que encontram. Isto é possível na versão para Windows e OS X adicionando modificações a que chamam plugins, mas não é possível nos Tablets onde jogamos.

Outra coisa que também não é desejável é manter um tablet ligado o dia todo para que os amigo visitem o mundo que criámos. Isso fez-me procurar uma solução para manter um mundo ativo no Raspberry Pi. As soluções que encontrei até dizem que isto é possível, mas as limitações do RPi tornam a utilização do mundo difícil. Falta de memória e capacidade de processamento estão na origem dos jogadores perderem a ligação várias vezes, o que torna a jogabilidade impossível.

A falta de suporte do criador original do jogo para os servidores externos ao próprio jogo também é conhecida e bugs que afetam estes servidores mantém-se por vários meses. O jogo foi também comprado recentemente pela Microsoft, o que deixa o seu futuro algo instável.

Atualmente mantenho em modo experimental uma das soluções ativas que consegui colocar a funcionar tanto no Windows como no OS X. O PocketMine-MP é um servidor Free Open Source para o Minecraft Pocket Edition que permite manter o mundo ativo fora do Tablet e também instalar as desejadas modificações. Este servidor, tem ainda alguns defeitos, por isso espero que em breve, quando estes estiverem resolvidos, vos possa vir convidar para o visitar.

Caixa para o Raspberry Pi feita de uma antiga caixa de cassete VHS

Caixa para o Raspberry Pi feita de uma antiga caixa de cassete VHS

Caixa para o Raspberry Pi feita de uma antiga caixa de cassete VHS

Fui visitar a Lisbon Mini Makers Faire onde encontrei excelentes ideias. A caixa para o Raspberry Pi que vêem na foto é feita de uma antiga caixa de cassete VHS. Alguns de vocês podem nunca ter visto uma caixa destas na vossa vida, mas em minha casa havia muitas e em casa da minha avó ainda há. A ideia de guardar lá dentro tudo o que o Raspberry Pi necessita pareceu-me muito interessante e bem mais barata que todas as caixas impressas em 3D que havia na feira.

As cassetes VHS eram o formato mais comum de gravação de vídeo e permitiram-me manter durante muito tempo aquilo que hoje temos por garantido nos nossos computadores ou na box do nosso operador de televisão por cabo: as gravações dos nossos filmes preferidos.

Cá em casa já não tenho nenhuma destas caixas de cassetes VHS, mas aposto que em casa da minha avó ainda vou encontrar muitas. Hoje é dia de pedincha à avó e o neto quer uma caixa vazia.

Robôs infante para educar as crianças

Robôs Infante

Robôs Infante

Este foi um dos inventos que vi no Lisbon Mini Makers Faire e que nos detiveram mais tempo. Os miúdos podiam brincar os dois, cada um com o seu robô e ao mesmo tempo estavam a treinar as suas capacidades lógicas.

Sobre os robôs e o interface gráfico de utilizador não há muito a dizer. As crianças programam cada passo que o robô dá na grelha num interface gráfico de utilizador que corre num normal browser de computador e que é servido a partir de um Raspberry Pi e os robôs, programados para uma placa já construida pelos seus autores, respondem aos comandos em pilha, seguindo por cima das linhas negras do chão as instruções que lhes são passadas.

Infelizmente, como outras coisas em Portugal, os robôs não passam do protótipo para a produção porque estão a aguardar licenças, taxas e taxinhas, mas também porque ninguém respeita calendários em Portugal e a campanha de media que lhes estava destinada ainda não viu a luz do dia. Gostava bastante que estes robôs aparecessem em breve para que servissem de oferta para as crianças cá de casa evoluírem ainda mais o seu gosto pela eletrónica.