Executando verificação de segurança...
1

Pitch: Mine Hour: Hospedagem de Minecraft Sob Demanda!

Fala pessoal, tudo certo?

Gostaria de compartilhar com vocês um projeto que venho desenvolvendo faz um certo tempo e que finalmente está em uma fase publicável Mine Hour (https://minehour.com/).

Durante anos sempre curti jogar Minecraft com amigos, mas a gente só conseguia se reunir de vez em quando (principalmente nos finais de semana ou algumas poucas horas durante a semana e só quando o host do radmin tava on). O problema era que qualquer serviço de hospedagem de servidor de minecraft cobra uma mensalidade fixa para manter a máquina ligada 24/7. No nosso caso, o servidor ficava vazio em 90% do tempo, e a gente acabava jogando dinheiro fora.

Daí veio a ideia: por que não criar um serviço de hospedagem onde só se paga pelo tempo em que o servidor está realmente ativo e os jogadores online?

Se ninguém está jogando, o servidor desliga e o consumo de créditos para. Quando você e seus amigos querem jogar, o servidor inicia em segundos, carrega o mapa de onde parou, e a cobrança é feita de forma transparente por hora de uso de acordo com os créditos que você tem disponíveis.

Como funciona a infraestrutura por trás

Eu queria que a infraestrutura fosse moderna, barata de manter e escalável. O fluxo técnico funciona assim:

  1. Containers de Minecraft: Cada servidor é um container temporário na Oracle Cloud (OCI) rodando uma imagem customizada de Minecraft. Isso garante isolamento total de recursos e inicialização relativamente rápida.
  2. Persistência do Mapa: Toda vez que um servidor desliga ou pausa por inatividade, o estado atualizado do mundo é salvo em um storage compatível com S3. Quando o servidor inicia de novo, o mapa é restaurado instantaneamente.
  3. Roteamento Dinâmico: Para que os jogadores conectem usando sempre o mesmo IP/domínio, usei um proxy que conheço há muito tempo e sempre quis testar, na minha época dos grandes servidores de mine sempre usava BungeeCord porque era o que tinha na época, mas encontrei esse projeto Minekube Gate (escrito em Go). Criei um microserviço em Rust que gerencia a tabela de rotas dinamicamente. Quando o servidor é iniciado no painel, a rota é atualizada para redirecionar o tráfego TCP do IP principal direto para o IP temporário do container da Oracle Cloud onde o servidor foi provisionado. O jogador conecta instantaneamente sem precisar saber o IP real do container.
  4. Desligamento e Avisos In-Game: Um script monitora a contagem de jogadores ativos. Se o servidor ficar vazio por algum tempo, ele desliga automaticamente para economizar créditos. E se os créditos do usuário estiverem acabando enquanto ele está jogando, enviamos avisos via console do jogo para alertar in-game ("Aviso: Restam 10 minutos de créditos..."), garantindo que ninguém seja desconectado de surpresa.

O que eu testei para chegar nessa infraestrutura

Inicialmente eu queria usar Magalu Cloud, uma vez descobri sobre a existência desse provedor de cloud da magalu, quando tive a ideia dessa minha plataforma sempre pensei em usar a Magalu Cloud principalmente pelos preços por hora ser muito competitivo, porém tinha alguns impasses, fazer automações grandes como usar kubernetes é complicado para o meu caso eu estava fugindo de custos fixos principalmente nessa fase inicial, tentei usar a função snapshot da magalu, achei interessante funcionou perfeitamente para o meu caso, a instancia iniciava em um tempo relativamente bom, e só tive o trabalho para automatizar deploys de novas snapshot, porém ao entrar em contato com o suporte da magalu cloud perguntei se eu poderia fazer uma aplicação de tipo, e se não caracterizava revenda, eles consultaram o juridico e no fim não consegui dar prosseguimento na magalu, e também eu teria que solicitar mais cotas de instancias, posso criar se não me engano no máximo 6, não me lembro exatamente agora.

Considerando preços da AWS estava fora do radar no brasil, então só usei a AWS para hospedar o backend. Entre outras opções acredito que a Oracle Cloud foi o que mais encaixou para o meu caso, mesmo sendo ligeiramente mais caro que a Magalu.


O projeto está no ar em https://minehour.com/.

Se vocês puderem comentar sobre essa abordagem de cobrança por hora em servidores de minecraft e sobre a arquitetura de infraestrutura.

Se quiserem trocar uma ideia sobre o projeto e dar uma força, entrem no discord que criei: https://discord.gg/DxJFknfmHZ

Carregando publicação patrocinada...
1

Trabalhei com servidores por MUITO tempo. já fui administrador de redes com centenas de pessoas.

  1. DUVIDO que oci tenha um desempenho ok para minecraft. pode funcionou com poucas pessoas, mas isso não vai aguentar 10 pessoas
  2. DUVIDO que você consiga compensar o custo em servidores com mapas grandes, tenho um servidor com amigos que o mapa é 70GB, imagina o custo de transferencia disso pra S3
  3. um servidor mensal está 30 reais por mês, em que situação valeria a pena pagar 1 real por hora? jogando 4h por dia aos finais de semana já passa o valor
1

Bom, amigo parece que sua experiência é grande, mas não pretendo colocar centenas de pessoas.

Não sei se você testou direito OCI da oracle, mas pelos meus testes tem performance bem tranquila pra aguentar 10 pessoas, quando a custo de s3, não imagino que mapa você tem para ter 70 GB, mas realmente não está dentro das minhas expectativa.

Quanto ao preço que estou cobrando, o mesmo no enxada host que você linkou você ta considerando 3 gb de ram por 30 reais que realmente nunca suportaria 10 jogadores simultaneo, o meu começa em 8 gb de ram, além da comparação ser injusta é modelo de negocio diferente.

Vamos fazer uma comparação justa, a Exaroton convertendo eles cobram um pouco mais de 50 centavos por hora porém ping apenas gringo e a empresa é gigante (não sei se tu conhece o aternos), não vejo problema em um pequeno como eu cobrar esse valor para um servidor BR onde o custo é bem mais alto, acho que você usando seu caso especifico, pelo menos eu e meus amigos nunca tivemos tanto tempo pra jogar não, era uma semana sim quase nenhuma outra no mês porque pagar um mês inteiro que nem jogávamos.

1

Oloco, 1 real/hora não é meio acima do mercado? como chegou nessa precificação? digo isso pq se pagar 60 conto por mês já dá pra pegar uma VPS boa pra rodar o servidor

1

Na verdade, não está tão acima do mercado assim, só fica mais caro quando comparado a um servidor fixo rodando 24/7. Hoje, uma VPS no nível da que eu uso para esse servidor custa em torno de R$ 179,90 por mês (Peguei uma comparação com a locaweb porque é um provedor com ping brasileiro e com preços medio-alto)

Ou seja você poderia ter uma VPS nesse nivel mais barato do que pagar a minha 24/7, mas esse não é o objetivo. A ideia é justamente não precisar pagar por um servidor 24/7 quando ele não estiver sendo usado, que seria a maior parte do tempo

E a maioria dos provedores que trabalham com containers cobrados por hora acaba sendo mais cara proporcionalmente justamente porque oferecem toda a logística de inicialização automática, desligamento automático e escalabilidade sob demanda. Se a intenção for deixar ligado direto o mês inteiro, aí realmente faz mais sentido pegar uma VPS fixa

1

uma VPS no nível da que eu uso para esse servidor custa em torno de R$ 179,90 por mês

Aí ce tá doido, com 100 reais por mês subo um servidor pra 40 jogadores, 24/7, tps estável

1