Skip to content
Saltar al contenido
Volver al Blog
Valence: Construir Servidores Minecraft con Rust

Valence: Construir Servidores Minecraft con Rust

Alexandru Maftei
Alexandru Maftei
@ice
Actualizado
19 vistas
TL;DR:Valence es un framework de Rust para construir servidores de Minecraft: Java Edition desde cero usando Bevy ECS. Está diseñado para servidores de minijuegos personalizados y desarrolladores que quieren control explícito sobre el gameplay sin cargar código heredado.
GitHub - Proyecto de comunidad Minecraft

valence (valence-rs/valence)

Un framework de Rust para construir servidores Minecraft.

Puntúa en GitHub ↗
⭐ 3,206 estrellas💻 Rust📄 MIT

Si alguna vez te has preguntado cómo sería construir un servidor Minecraft desde cero en lugar de modificar software existente, Valence te da esa oportunidad. Es un framework de Rust que trata a un servidor Minecraft como un lienzo en blanco, permitiéndote escribir lógica de juego personalizada sin cargar con un montón de código heredado.

Qué Hace Este Proyecto

Valence es un framework para crear servidores de Minecraft: Java Edition completamente en Rust. En lugar de extender Bukkit, Spigot o Fabric (los caminos habituales), estás trabajando con una implementación desde cero potenciada por Bevy ECS, un motor de juego de sistema de componentes de entidades. Piénsalo así: la mayoría del software de servidor Minecraft comenzó copiando el juego original y pegando plugins encima. Valence comienza con nada y tú agregas solo lo que necesitas.

El proyecto maneja la capa del protocolo de Minecraft para ti - redes, autenticación, encriptación, compresión. No dicta el gameplay. Podrías construir un servidor de minijuegos de parkour, un sandbox de construcción creativa, un mundo de rol, o algo que apenas se parece a Minecraft vainilla. El framework se quita del camino y te permite definir las reglas.


Por Qué Querrías Esto

La mayoría de los creadores de servidores Minecraft recurren a Spigot o Paper porque son familiares y tienen diez mil plugins. Eso tiene sentido si quieres gameplay vainilla con algunos ajustes. Pero si estás construyendo algo personalizado - especialmente servidores de minijuegos o modos de juego muy inusuales - estás luchando cuesta arriba. Estás deshabilitando mecánicas vainilla, luchando con conflictos de plugins, y tratando con compromisos de rendimiento de características que nunca usarás.

Con Valence, te saltas toda esa fricción. Como estás escribiendo Rust directamente, obtienes:

  • Control explícito sobre qué se ejecuta en tu servidor (sin exceso de código)
  • Seguridad de tipo fuerte que detecta errores en tiempo de compilación en lugar de en tiempo de ejecución
  • Acceso al ecosistema de plugins de Bevy para extender funcionalidad
  • Potencial para un uso de recursos extremadamente eficiente - Valence está diseñado para soportar miles de jugadores simultáneamente en hardware razonable

Esta también es una opción inteligente si estás experimentando con arquitecturas de servidor novedosas o quieres entender el protocolo de Minecraft profundamente. No estás aprendiendo cómo trabajar alrededor de las decisiones de otra persona; estás aprendiendo cómo funciona realmente el protocolo.


Comenzando con Valence

Necesitarás tener Rust instalado. Si no lo tienes, obténlo de rustup.rs.

Logo del framework Valence Rust con interfaz del servidor Minecraft de fondo
Logo del framework Valence Rust con interfaz del servidor Minecraft de fondo
bash
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

A continuación, crea un nuevo proyecto de Cargo:

bash
cargo new my_minecraft_server
cd my_minecraft_server

Agrega Valence a tu Cargo.toml:

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

El repositorio de GitHub de Valence incluye ejemplos que muestran la configuración básica del servidor. Una curva de aprendizaje es real sin embargo - no estás haciendo clic en alternadores en una GUI. Estás leyendo Rust y entendiendo cómo las entidades, chunks y jugadores interactúan en el modelo de ECS. Planifica pasar tiempo con la documentación y ejemplos antes de tu primer servidor que funcione.


Características Que Importan

La autenticación y la seguridad están integradas. Valence maneja la secuencia de inicio de sesión de Minecraft (incluidos los servidores de sesión de Mojang si deseas modo en línea) y la encriptación automáticamente. No puedes omitir accidentalmente TLS o aceptar inicios de sesión inválidos. El framework dificulta hacer lo incorrecto.

Logo del framework Valence Rust con interfaz del servidor Minecraft de fondo
Logo del framework Valence Rust con interfaz del servidor Minecraft de fondo

La abstracción del protocolo es completa. ¿Renderizado de chunks? Manejado. ¿Estados de bloque? Cubierto. Metadatos de entidad, partículas, inventarios, dimensiones, biomas - está todo ahí. El proyecto incluye un mod de Fabric que extrae datos de Minecraft (propiedades de bloque, tipos de elementos, etc.) y genera código Rust a partir de él. No estás codificando las reglas de Minecraft; estás dejando que el framework las genere.

Hay soporte integrado para consultas espaciales. ¿Quieres encontrar todas las entidades dentro de un radio de 50 bloques? El framework usa una jerarquía de volumen delimitador para hacerlo eficientemente, no una búsqueda ingenua. Para servidores con muchas entidades, esto importa.

Los skins de los jugadores se renderizan correctamente. Los whitelists funcionan. Se admiten múltiples mundos y dimensiones. Si alguna vez has ejecutado un servidor, sabes que estas no son características pequeñas - son puntos de dolor fundamentales en cada plataforma.


Lo Que Deberías Saber Antes de Sumergirte

Valence está en desarrollo temprano (versión 0.1.0). Los cambios de ruptura suceden. Las características están incompletas. Podrías encontrar gaps donde el framework no hace exactamente lo que necesitas aún, obligándote a trabajar alrededor de algo o contribuir de vuelta. Ese es el compromiso con proyectos nuevos - menos pulido, pero más flexibilidad para moldear hacia dónde va.

Logo del framework Valence Rust con interfaz del servidor Minecraft de fondo
Logo del framework Valence Rust con interfaz del servidor Minecraft de fondo

La curva de aprendizaje de Rust importa. Si nunca has escrito Rust, Valence es un punto de entrada empinado. El compilador es estricto de formas que se sienten molestas hasta que te das cuenta de que está detectando clases enteras de errores. Pero la fricción inicial es real.

El despliegue es diferente del hosting tradicional de Minecraft. Estás construyendo un binario, no ejecutando un JAR de Java en infraestructura existente. Eso realmente simplifica las cosas de algunas formas (sin ajuste de JVM, menor overhead de memoria) pero complica las cosas en otras (necesitas compilar para tu arquitectura objetivo, gestionar dependencias de Rust).

Bueno, aquí hay algo digno de mención: si estás construyendo un servidor para miles de jugadores, la eficiencia de Valence es una enorme ventaja. No necesitarás necesariamente el mismo hardware robusto que un servidor Paper requeriría. Pero si albergas a 20 amigos, esta ventaja no importa. Elige la herramienta correcta para tu escala.


Integrando con tu Ecosistema de Servidor

Si estás ejecutando un servidor Minecraft de producción, probablemente uses herramientas como verificadores de estado del servidor para monitorear el tiempo de actividad y los conteos de jugadores. Valence puede exponer estas métricas a través de APIs estándar de monitoreo. También hay soporte de proxy - puedes colocar Valence detrás de Velocity o Bungeecord, permitiendo que los jugadores se conecten a través de una capa de proxy para cambiar de servidor sin problemas.

Para tareas administrativas como gestionar whitelists, puedes integrarte con herramientas estándar. Muchas comunidades utilizan utilidades de creación de whitelists para optimizar la incorporación. El diseño modular de Valence significa que puedes construir estas características de administración como plugins.


Cómo Valence Se Compara

Si estás debatiendo entre Valence y algo como Paper, estás haciendo preguntas diferentes. Paper es "¿cómo agrego características a Minecraft vainilla?" Valence es "¿y si construyo un servidor desde cero?" No son competidores; son opciones diferentes para objetivos diferentes.

Contra Velocity (un proxy), Valence no es un reemplazo - es un backend. Velocity maneja el enrutamiento de jugadores entre servidores; Valence maneja servidores individuales.

Hay otros frameworks de servidor Minecraft en Rust (como Feather), pero el uso de Bevy ECS de Valence y su enfoque en ser un framework de motor de juego adecuado (en lugar de solo una implementación de protocolo) lo diferencia. No solo estás obteniendo código del servidor; estás obteniendo una base para construir sistemas de juego complejos.


¿Vale la Pena Tu Tiempo?

Valence tiene sentido si:

  • Estás construyendo un minijuego personalizado o un modo de juego novedoso que lucha contra el software vainilla del servidor
  • Quieres entender cómo funcionan realmente los servidores Minecraft
  • Estás cómodo con Rust y quieres usar sus garantías de seguridad
  • Necesitas eficiencia extrema para altos conteos de jugadores

No tiene sentido si solo quieres ejecutar vainilla con algunos ajustes de plugin. Recurre a Paper para eso.

La comunidad alrededor de Valence es pequeña pero activa. Los mantenedores son receptivos. Si estás considerando esto, únete al Discord y ve qué otros están construyendo. Proyectos reales están sucediendo - personas están lanzando servidores de minijuegos en la parte superior de Valence y compartiendo lo que aprenden.

valence-rs/valence - MIT, ⭐3206
Sobre el autor
Alexandru Maftei
Alexandru MafteiRedactor principal

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

¡Compártelo con tus amigos!

Comentarios

Aún no hay comentarios. ¡Sé el primero en compartir tu opinión!

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