Como funcionam os nossos mundos hospedados
Seu próprio mundo na internet, onde os amigos podem entrar a qualquer hora — sem que ninguém precise montar um servidor. Essa é a ideia dos nossos Mundos Hospedados, e neste artigo vou mostrar para você o que realmente acontece por trás do botão "Jogar" no portal.
O coração de tudo é o WorldHost: um pequeno serviço no nosso servidor que gerencia mundos. Cada mundo roda em seu próprio contêiner Docker — totalmente isolado, com seu próprio arquivo de save, seu próprio limite de memória e seu próprio limite de CPU. Quando ninguém está jogando, nada fica rodando: o mundo dorme, o contêiner é parado e não gasta recurso nenhum.
Quando alguém clica em "Jogar" no portal, acontece o seguinte: o WorldHost primeiro verifica se você pode mesmo entrar — em mundos protegidos por senha, a senha é conferida antes de o mundo ser acordado, para que ninguém consiga ligar o mundo de outra pessoa só tentando entrar. Só então o contêiner é iniciado, o mundo carrega o arquivo de save e você recebe um token de entrada de curta duração, válido exatamente para aquele mundo. Enquanto isso, o portal mostra para você o status "Acordando o mundo…".
Quando todos os jogadores saem do mundo, ele volta a dormir depois de um tempo — o save é gravado, o contêiner para. E se você preferir continuar jogando seu mundo localmente, pode baixar o save e enviá-lo de novo mais tarde: o save de um Mundo Hospedado é igual ao de um jogo local.
Tudo isso é construído pequeno de propósito: sem Kubernetes, sem mágica de nuvem — um servidor, Docker e um serviço que inicia e para contêineres. Para um projeto de família, isso rende surpreendentemente longe. Até onde exatamente, e quanto custa um servidor desses, é história para o artigo sobre o nosso VPS.
Comentários