Skip to content
Pular para o conteúdo
Voltar ao Blog
Valence: Construindo Servidores Minecraft com Rust

Valence: Construindo Servidores Minecraft com Rust

Alexandru Maftei
Alexandru Maftei
@ice
Atualizado
8 visualizações
TL;DR:Valence é um framework Rust para construir servidores Minecraft - Java Edition do zero usando Bevy ECS. É projetado para servidores de minigames personalizados e desenvolvedores que querem controle explícito sobre a jogabilidade sem carregar código legado.
GitHub - Projeto da comunidade Minecraft

valence (valence-rs/valence)

Um framework Rust para construir servidores Minecraft.

Marcar no GitHub ↗
⭐ 3.206 estrelas💻 Rust📄 MIT

Se você já se perguntou como seria construir um servidor Minecraft do zero em vez de modificar software existente, Valence oferece essa chance. É um framework Rust que trata um servidor Minecraft como uma tela em branco, permitindo que você escreva lógica de jogo personalizada sem carregar um monte de código legado.

O Que Este Projeto Faz

Valence é um framework para criar servidores Minecraft - Java Edition inteiramente em Rust. Em vez de estender Bukkit, Spigot ou Fabric (os caminhos usuais), você está trabalhando com uma implementação do zero acionada por Bevy ECS, um mecanismo de jogo de sistema entidade-componente. Pense assim: a maioria do software de servidor Minecraft começou copiando o jogo original e aplicando plugins por cima. Valence começa do nada e você adiciona apenas o que precisa.

O projeto cuida da camada de protocolo Minecraft para você - redes, autenticação, criptografia, compressão. Não dita a jogabilidade. Você poderia construir um servidor de minigame de parkour, uma caixa de areia criativa, um mundo de interpretação de papéis ou algo que mal parece Minecraft vanilla. O framework sai do seu caminho e permite que você defina as regras.


Por Que Você Quereria Isto

A maioria dos criadores de servidores Minecraft escolhem Spigot ou Paper porque são familiares e têm dez mil plugins. Faz sentido se você quer jogabilidade vanilla com alguns ajustes. Mas se você está construindo algo personalizado - especialmente servidores de minigame ou modos de jogo muito incomuns - você está em uma batalha difícil. Você está desabilitando mecânicas vanilla, lutando com conflitos de plugins e lidando com compromissos de desempenho de recursos que nunca usará.

Com Valence, você pula todo esse atrito. Como você está escrevendo Rust diretamente, você obtém:

  • Controle explícito sobre o que é executado em seu servidor (sem inchaço)
  • Segurança de tipo forte que detecta bugs no tempo de compilação em vez de tempo de execução
  • Acesso ao ecossistema de plugins do Bevy para estender funcionalidade
  • Potencial para uso de recursos extremamente eficiente - Valence é projetado para suportar milhares de jogadores simultaneamente em hardware razoável

Esta também é uma escolha inteligente se você está experimentando arquiteturas de servidor novel ou quer entender o protocolo Minecraft profundamente. Você não está aprendendo como contornar as decisões de outra pessoa, está aprendendo como o protocolo realmente funciona.


Começando com Valence

Você precisará ter Rust instalado. Se você não tiver, pegue em rustup.rs.

Logo do framework Rust Valence com interface de servidor Minecraft ao fundo
Logo do framework Rust Valence com interface de servidor Minecraft ao fundo
bash
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Em seguida, crie um novo projeto Cargo:

bash
cargo new my_minecraft_server
cd my_minecraft_server

Adicione Valence ao seu Cargo.toml:

toml
[dependencies]
valence = "0.1"
bevy = { version = "0.14", default-features = false }

O repositório Valence GitHub inclui exemplos que mostram a configuração básica do servidor. Mas a curva de aprendizado é real - você não está clicando em alternâncias em uma GUI. Você está lendo Rust e entendendo como entidades, chunks e jogadores interagem no modelo ECS. Planeje gastar tempo com a documentação e exemplos antes de seu primeiro servidor funcionando.


Recursos Que Importam

Autenticação e segurança estão integradas. Valence cuida da sequência de login Minecraft (incluindo os servidores de sessão Mojang se você quiser modo online) e criptografia automaticamente. Você não pode pular acidentalmente TLS ou aceitar logins inválidos. O framework torna difícil fazer a coisa errada.

Logo do framework Rust Valence com interface de servidor Minecraft ao fundo
Logo do framework Rust Valence com interface de servidor Minecraft ao fundo

A abstração de protocolo é completa. Renderização de chunks? Resolvido. Estados de blocos? Coberto. Metadados de entidade, partículas, inventários, dimensões, biomas - está tudo lá. O projeto inclui um mod Fabric que extrai os dados Minecraft (propriedades de blocos, tipos de itens, etc.) e gera código Rust a partir deles. Você não está codificando as regras Minecraft, está deixando o framework gerá-las.

Há suporte integrado para consultas espaciais. Quer encontrar todas as entidades em um raio de 50 blocos? O framework usa uma hierarquia de volume delimitador para fazer isso com eficiência, não uma busca ingênua. Para servidores com muitas entidades isso importa.

Skins de jogadores renderizam corretamente. Whitelists funcionam. Múltiplos mundos e dimensões são suportados. Se você já executou um servidor, sabe que estes não são pequenos recursos - são pontos de dor fundamentais em cada plataforma.


O Que Você Deve Saber Antes de Mergulhar

Valence está no início do desenvolvimento (versão 0.1.0). Mudanças quebradas acontecem. Recursos estão incompletos. Você pode encontrar lacunas onde o framework ainda não faz exatamente o que você precisa, forçando você a contornar algo ou contribuir de volta. Esse é o compromisso com projetos frescos - menos polimento, mas mais flexibilidade para moldar para onde vai.

Logo do framework Rust Valence com interface de servidor Minecraft ao fundo
Logo do framework Rust Valence com interface de servidor Minecraft ao fundo

A curva de aprendizado de Rust importa. Se você nunca escreveu Rust, Valence é um ponto de entrada acentuado. O compilador é rigoroso de maneiras que parecem chatas até você perceber que está capturando classes inteiras de bugs. Mas o atrito inicial é real.

A implantação é diferente da hospedagem tradicional de Minecraft. Você está construindo um binário, não executando um JAR Java em infraestrutura existente. Isso realmente simplifica as coisas de algumas maneiras (sem ajuste JVM, menor sobrecarga de memória), mas complica as coisas em outras (você precisa compilar para sua arquitetura alvo, gerenciar dependências Rust).

Na verdade, aqui está algo que vale a pena notar: se você está construindo um servidor para milhares de jogadores, a eficiência de Valence é uma enorme vantagem. Você não necessariamente precisará do mesmo hardware robusto que um servidor Paper precisaria. Mas se você está hospedando 20 amigos, essa vantagem não importa. Escolha a ferramenta certa para sua escala.


Integrando ao Seu Ecossistema de Servidor

Se você está executando um servidor Minecraft de produção, você provavelmente usa ferramentas como verificadores de status de servidor para monitorar tempo de atividade e contagens de jogadores. Valence pode expor essas métricas através de APIs de monitoramento padrão. Há também suporte a proxy - você pode colocar Valence atrás de Velocity ou Bungeecord, permitindo que os jogadores se conectem através de uma camada de proxy para alternância suave de servidores.

Para tarefas administrativas como gerenciar whitelists, você pode se integrar com ferramentas padrão. Muitas comunidades usam utilitários de criação de whitelist para simplificar a incorporação. O design modular de Valence significa que você pode construir esses recursos de administrador como plugins.


Como Valence se Compara

Se você está debatendo entre Valence e algo como Paper, você está fazendo perguntas diferentes. Paper é "como faço para adicionar recursos ao Minecraft vanilla?" Valence é "e se eu construísse um servidor do zero?" Eles não são concorrentes, são escolhas diferentes para objetivos diferentes.

Contra Velocity (um proxy), Valence não é uma substituição - é um backend. Velocity cuida do roteamento de jogadores entre servidores, Valence cuida de servidores individuais.

Existem outros frameworks de servidor Minecraft em Rust (como Feather), mas o uso de Bevy ECS por Valence e seu foco em ser um framework de mecanismo de jogo adequado (em vez de apenas uma implementação de protocolo) o diferencia. Você não está apenas obtendo código de servidor, está obtendo uma fundação para construir sistemas de jogo complexos.


Vale a Pena Seu Tempo?

Valence faz sentido se:

  • Você está construindo um minigame personalizado ou modo de jogo novel que combate software de servidor vanilla
  • Você quer entender como os servidores Minecraft realmente funcionam
  • Você está confortável com Rust e quer usar suas garantias de segurança
  • Você precisa de eficiência extrema para contagens altas de jogadores

Não faz sentido se você só quer rodar vanilla com alguns ajustes de plugin. Escolha Paper para isso.

A comunidade em torno de Valence é pequena mas ativa. Os mantenedores são responsivos. Se você está considerando isto, junte-se ao Discord e veja o que outros estão construindo. Projetos reais estão acontecendo - pessoas estão enviando servidores de minigame no topo de Valence e compartilhando o que aprendem.

valence-rs/valence - MIT, ⭐3206
Sobre o autor
Alexandru Maftei
Alexandru MafteiRedator-chefe

Lead writer at minecraft.how. Long-time Minecraft player running a small SMP server, testing every build, mod, and seed before writing about it.

Comentários

Nenhum comentário ainda. Seja o primeiro a compartilhar sua opinião!

We use cookies to improve your experience. By continuing to use this site, you agree to our use of cookies. Read our Privacy Policy