Creación y configuración de un servidor de Minecraft

Creación y configuración de un servidor de Minecraft

Minecraft hoy en día es uno de los juegos en línea más populares. En menos de tres años (el primer lanzamiento oficial tuvo lugar en otoño de 2011) ha ganado millones de aficionados en todo el mundo.

Los desarrolladores del juego se inspiran deliberadamente en los mejores ejemplos de hace veinte años, cuando muchos juegos eran primitivos según los estándares actuales en términos de gráficos y usabilidad, pero, aun así, realmente cautivaban.

Al igual que todos los juegos de tipo sandbox, Minecraft brinda al usuario enormes oportunidades para la creatividad; en eso, de hecho, radica el principal secreto de su popularidad.

La organización de servidores para jugar en modo multijugador es realizada por los propios jugadores y sus comunidades. Hoy en día, hay decenas de miles de servidores de juegos en Internet (véase, por ejemplo, la lista aquí).

Hay muchos aficionados a este juego entre nuestros clientes, quienes alquilan equipos en nuestros centros de datos para proyectos de juegos. En este artículo, hablaremos sobre los aspectos técnicos a tener en cuenta al elegir un servidor para
Minecraft.

Elegimos la plataforma

El juego de Minecraft consta de los siguientes elementos arquitectónicos:

  1. servidor: un programa a través del cual los jugadores interactúan entre sí en la red;
  2. cliente: un programa para conectarse al servidor, instalado en el ordenador del jugador;
  3. plugins: complementos para el servidor que añaden nuevas funciones o amplían las existentes;
  4. mods: complementos para el mundo del juego (nuevos bloques, objetos, capacidades).

Existen muchas plataformas de servidor para Minecraft. Las más comunes y populares son Vanilla y Bukkit.

Vanilla Esta es la plataforma oficial de los desarrolladores del juego. Está disponible tanto en versión gráfica como en versión de consola. La nueva versión de Vanilla siempre se lanza simultáneamente con la nueva versión de Minecraft.

La desventaja de Vanilla es su alto consumo de memoria (aproximadamente 50 MB por jugador). Otra desventaja significativa es la falta de plugins.

Bukkit fue creado por un grupo de entusiastas que intentaron mejorar el servidor oficial de Minecraft. El intento resultó bastante exitoso: en funcionalidad, Bukkit es mucho más amplio que Vanilla, principalmente gracias al soporte para diversos mods y plugins. Además, consume menos memoria por cada jugador, alrededor de 5 a 10 MB.

Las desventajas de Bukkit son que al iniciarse, consume demasiada memoria RAM. Además, cuanto más tiempo funcione el servidor, más memoria requiere (incluso si hay pocos jugadores). Al elegir Bukkit como servidor, se debe tener en cuenta que sus nuevas versiones suelen tener errores; la versión estable generalmente aparece aproximadamente dos o tres semanas después del lanzamiento de la versión oficial de Minecraft.

Además, en los últimos tiempos han ganado popularidad otras plataformas (por ejemplo, Spout, MCPC y MCPC+), pero se diferencian en su compatibilidad limitada con Vanilla y Bukkit y tienen un soporte de mods extremadamente limitado (por ejemplo, para Spout solo se pueden escribir mods desde cero). Si se van a utilizar, que sea solo para experimentos.

Para organizar un servidor de juego, recomendamos usar la plataforma Bukkit, ya que ofrece la mayor flexibilidad; además, existen muchos mods y plugins variados para ella. El funcionamiento estable del servidor de Minecraft depende en gran medida de la elección adecuada de la plataforma de hardware. Analicemos este tema más a fondo.

Requisitos de hardware

Tanto el servidor como el cliente de Minecraft son muy exigentes con los recursos del sistema.
Al elegir la plataforma de hardware, se debe tener en cuenta que un procesador multinúcleo no dará muchas ventajas: el núcleo del servidor de Minecraft puede utilizar solo un hilo de procesamiento. Sin embargo, un segundo núcleo será útil: algunos plugins se ejecutan en hilos separados, y Java también consume bastantes recursos...

Por lo tanto, para Minecraft-servidores es mejor elegir un procesador que tenga una mayor rendimiento de un solo núcleo. Un procesador de dos núcleos más potente será más preferente que uno multinúcleo, pero menos potente. En foros especializados, se recomienda utilizar procesadores con una frecuencia de reloj de al menos 3 GHz.

Para el funcionamiento adecuado de un servidor Minecraft se requiere una gran cantidad de memoria RAM. Bukkit ocupa aproximadamente 1GB de RAM; además, se asignan entre 5 y 10 MB por cada jugador, como ya se mencionó anteriormente. Los plugins y mods también consumen bastante memoria. Por lo tanto, para un servidor con 30 a 50 jugadores, se necesitarán al menos 4GB de RAM.

En Minecraft, mucho depende de la velocidad del sistema de archivos, como, por ejemplo, la carga de los mismos plugins. Por ello, es preferible elegir un servidor con disco SSD. Los discos duros mecánicos probablemente no serán adecuados debido a su baja velocidad de lectura aleatoria.

La velocidad de la conexión a Internet también es de gran importancia. Para jugar con 40-50 personas, será suficiente un ancho de banda de 10 Mb/s. Sin embargo, aquellos que planean un proyecto de Minecraft más grande, que incluya un sitio web, un foro y un mapa dinámico, deberían contar con un canal de mayor capacidad.

¿Qué configuración específica es la mejor opción? De las configuraciones que ofrecemos, recomendamos prestar atención a las siguientes:

  • Intel Core 2 Duo E8400 3GHz, 6GB RAM, 2×500GB SATA, 3000 руб/мес;
  • Intel Core 2 Quad Q8300 2.5GHz, 6GB RAM, 2×500GB SATA, 3500 руб/мес. — Esta configuración es la que utilizamos para nuestro servidor de prueba de MineCraft, donde puedes jugar en este mismo momento (cómo hacerlo se explica a continuación);
  • Intel Core i3-2120 3.3GHz, 8GB RAM, 2×500GB SATA, 3500 руб/мес.

Estas configuraciones son adecuadas para crear un servidor Minecraft para 30-40 jugadores. Un inconveniente es la falta de discos SSD, pero ofrecemos otra ventaja importante: un canal garantizado de 100 Mb/s sin restricciones ni relaciones. Al pedir cualquiera de las configuraciones mencionadas anteriormente, no se cobra una tarifa de instalación.

También tenemos servidores más potentes, pero, por supuesto, más costosos (al solicitar estas configuraciones, tampoco se cobra tasa de instalación):

  • 2x Intel Xeon 5130, 2GHz, 8GB RAM, 4×160GB SATA, 5000 руб/мес;
  • 2x Intel Xeon 5504, 2GHz, 12GB RAM, 3×1TB SATA, 9000 руб/мес.

También recomendamos prestar atención al nuevo modelo económico con disco SSD basado en el procesador Intel Atom C2758: Intel Atom C2758 2.4GHz, 16GB RAM, 2×240GB SSD, 4000 руб/мес., tarifa de instalación — 3000 руб.

Instalación y ejecución del servidor Bukkit en OC Ubuntu

Antes de instalar el servidor, crearemos un nuevo usuario y lo añadiremos al grupo sudo:

$ sudo useradd -m -s /bin/bash 
$ sudo adduser  sudo

A continuación, estableceremos la contraseña con la que el usuario creado se conectará al servidor:

$ sudo passwd

Reconectémonos al servidor con la nueva cuenta y comencemos la instalación.
Minecraft está escrito en Java, por lo que es imprescindible instalar el Java Runtime Environment en el servidor.

Actualizaremos la lista de paquetes disponibles:

$ sudo apt-get update

Luego, ejecutaremos el siguiente comando:

$ sudo apt-get install default-jdk

Para instalar y ejecutar Bukkit, es recomendable también instalar un multiplexor de terminales, como screen (se pueden usar otros multiplexores de terminal, consulta nuestro resumen):

$ sudo apt-get install screen

Screen será necesario si nos conectamos al servidor de juegos a través de ssh. Con esto, podremos ejecutar el servidor Minecraft en una ventana de terminal separada, y aunque cerremos el cliente ssh, el servidor seguirá funcionando.

Crearemos un directorio donde se almacenarán los archivos del servidor:

$ mkdir bukkit
$ cd bukkit

Después de esto, iremos a la página de descargas del sitio oficial de Bukkit. En la parte superior derecha de la página, se puede ver un enlace a la última versión recomendada del servidor (recommended build). Recomendamos descargar precisamente esta:

$ wget

Ahora ejecutaremos screen:

$ sudo screen

y ejecutaremos el siguiente comando:

$ java -Xmx1024M -jar craftbukkit.jar -o false

Explicaremos qué significan los parámetros utilizados:

  • Xmx1024M — la cantidad máxima de memoria RAM del servidor;
  • jar craftbukkit.jar — la ubicación del servidor;
  • o false — permite el acceso al servidor desde clientes piratas.

El servidor se iniciará.
Para detener el servidor, escribe el comando stop en la consola.

Configuración y configuración del servidor

Las configuraciones del servidor se almacenan en el archivo de configuración server.properties. Contiene los siguientes parámetros:

  • generator-settings — establece la plantilla de generación de un mundo superplano;
  • allow-nether — define la posibilidad de acceder al Nether. Por defecto, este parámetro está establecido en true. Si se establece en false, todos los jugadores del Nether serán trasladados al mundo normal;
  • level-name — nombre de la carpeta con los archivos del mapa que se usará durante el juego. La carpeta se ubica en el mismo directorio donde se encuentran los archivos del servidor. Si no existe dicho directorio, el servidor creará automáticamente un nuevo mundo y lo colocará en un directorio con el mismo nombre;
  • enable-query — si se establece en true, activa el protocolo GameSpy4 para escuchar el servidor;
  • allow-flight — permite volar en el mundo de Minecraft. Por defecto, está establecido en false (los vuelos están prohibidos);
  • server-port — indica el puerto que utilizará el servidor del juego. El puerto estándar para Minecraft es 25565. No se recomienda cambiar este valor;
  • level-type — define el tipo de mundo (DEFAULT/FLAT/LARGEBIOMES);
  • enable-rcon — abre el acceso remoto a la consola del servidor. Por defecto, está deshabilitado (false);
  • level-seed — datos de entrada para el generador de niveles. Para poder crear mundos aleatorios, este campo debe dejarse vacío;
  • force-gamemode — establece el modo de juego predeterminado para los jugadores que se conectan al servidor;
  • server-ip — indica la dirección IP que usarán los jugadores para conectarse al servidor;
  • max-build-height — indica la altura máxima de construcción en el servidor. Su valor debe ser un número múltiplo de 16 (64, 96, 256, etc.);
  • spawn-npcs — permite (si se establece en true) o prohíbe (si se establece en false) la aparición de NPCs en las aldeas;
  • white-list — activa o desactiva el uso de una lista blanca de jugadores en el servidor. Si se establece en true, el administrador podrá crear una lista blanca agregando manualmente los nombres de los jugadores. Si se establece en false, cualquier usuario que conozca la dirección IP y el puerto podrá unirse al servidor;
  • spawn-animals — permite la aparición automática de mobs amistosos, si se establece en true);
  • snooper-enabled — permite al servidor enviar estadísticas y datos a los desarrolladores;
  • hardcore — activa el modo Hardcore en el servidor;
  • texture-pack — archivo de texturas que se utilizará al conectarse el jugador al servidor. Como valor de este parámetro, se indica el nombre del archivo zip con las texturas, que se almacena en el mismo directorio que el servidor;
  • El modo en línea activa la verificación de las cuentas premium de los usuarios que se conectan al servidor. Si este parámetro está configurado como true, solo los propietarios de cuentas premium podrán acceder al servidor. Si la verificación de cuentas está desactivada (configurada como false), cualquier usuario (incluyendo, por ejemplo, jugadores con nombres falsificados) podrá ingresar al servidor, lo que crea riesgos adicionales de seguridad. Con la verificación desactivada, se puede jugar a Minecraft a través de una red local, sin acceso a Internet.
  • El pvp permite o prohíbe que los jugadores se enfrenten entre sí. Si este parámetro tiene el valor true, los jugadores pueden eliminarse entre sí. Si se establece el valor false, los jugadores no pueden hacerse daño directo entre ellos.
  • La dificultad establece el nivel de dificultad del juego. Puede tomar valores de 0 (el más fácil) a 3 (el más difícil).
  • El gamemode indica qué modo de juego se establecerá para los jugadores que ingresen al servidor. Puede tomar los siguientes valores: 0 - Supervivencia, 1 - Creativo, 2 - Aventura.
  • El player-idle-timeout es el tiempo de inactividad (en minutos) después del cual los jugadores se desconectan automáticamente del servidor.
  • El max-players es el número máximo permitido de jugadores en el servidor (de 0 a 999).
  • El spawn-monsters permite (si está configurado como true) la aparición de criaturas hostiles.
  • El generate-structures activa (true) / desactiva (false) la generación de estructuras (como templos, fortalezas, aldeas).
  • La view-distance regula el radio de los chunks actualizados enviados al jugador; puede tomar valores de 3 a 15.

Los registros del servidor de Minecraft se guardan en el archivo server.log. Este archivo se encuentra en la misma carpeta que los archivos del servidor. El registro aumenta constantemente de tamaño, ocupando cada vez más espacio en disco. La gestión del mecanismo de registro se puede organizar mediante lo que se conoce como rotación de logs. Para la rotación se utiliza una utilidad especial: logrotate. Esta limita el número de entradas en el log a un límite específico.

Se puede configurar la rotación de logs de tal manera que todas las entradas sean eliminadas tan pronto como el archivo de log alcance un tamaño específico. También se puede establecer un plazo, tras el cual todas las entradas antiguas serán consideradas obsoletas y eliminadas.

La configuración principal de la rotación se encuentra en el archivo /etc/logrotate.conf; además, se pueden crear configuraciones individuales para cada aplicación. Los archivos con configuraciones individuales se almacenan en el directorio /etc/logrotate.d.

Crearemos un archivo de texto /etc/logrotate.d/craftbukkit y escribiremos en él los siguientes parámetros:

/home/craftbukkit/server.log {
  rotate 2
  weekly
  compress
  missingok
  notifempty
}

Examinemos sus valores más detenidamente:

  • el parámetro rotate indica el número de rotaciones antes de eliminar el archivo;
  • weekly indica que la rotación se realizará semanalmente (se pueden establecer otros parámetros: monthly - mensualmente y daily - diariamente);
  • compress indica que los logs archivados deben comprimirse (la opción opuesta es nocompress);
  • missingok indica que, en caso de que falte el archivo de log, se debe continuar trabajando y no mostrar mensajes de error;
  • notifempty indica que no se debe rotar el archivo de log si está vacío.

Más detalles sobre la configuración de la rotación de logs pueden leerse aquí.

Consejos para optimización

Aclaremos de inmediato que en esta sección se presentarán consejos relacionados únicamente con la optimización del servidor de juegos. Cuestiones de ajuste fino y optimización del servidor en el que está instalado Minecraft son un tema separado que queda fuera del alcance de este artículo; los lectores interesados podrán encontrar fácilmente la información necesaria en Internet.

Uno de los problemas más comunes que surgen al jugar Minecraft son los llamados lag, situaciones en las que el programa no reacciona a tiempo a la entrada del usuario. Pueden estar causados por problemas tanto del lado del cliente como del lado del servidor. A continuación, daremos recomendaciones que ayudarán a reducir la probabilidad de problemas en el lado del servidor.

Controle regularmente el consumo de memoria del servidor y de los plugins

El consumo de memoria se puede monitorear mediante plugins administrativos especializados, como LagMeter.

Esté atento a las actualizaciones de los plugins

Por lo general, los desarrolladores de nuevos plugins buscan reducir la carga con cada nueva versión.

Trate de no utilizar múltiples plugins con funcionalidades similares

Los grandes plugins (como Essentials, AdminCMD, CommandBook) a menudo incluyen la funcionalidad de muchos plugins más pequeños. Por ejemplo, Essentials incluye funciones de plugins como iConomy, uHome, OpenInv, VanishNoPacket, Kit. En la mayoría de los casos, los plugins menores cuya funcionalidad está completamente cubierta por un gran plugin pueden ser eliminados para no sobrecargar el servidor.

Restringe el mapa y cárgalo por tu cuenta

Si no se restringe el mapa, la carga en el servidor aumentará considerablemente. El mapa se puede restringir utilizando un plugin WorldBorder. Para ello, necesitas iniciar este plugin y ejecutar el comando /wb 200, y luego renderizar el mapa con el comando /wb fill.

Renderizar, por supuesto, tomará tiempo, pero es mejor hacerlo una vez, cerrando el servidor para labores técnicas. Si cada jugador intenta renderizar el mapa, el servidor funcionará lentamente.

Reemplaza los plugins pesados por alternativas más rápidas y menos exigentes en recursos

No todos los plugins para Minecraft se pueden considerar exitosos: a menudo contienen muchas funciones innecesarias y a veces consumen mucha memoria. Es mejor reemplazar los plugins ineficaces por alternativas (existen bastantes). Por ejemplo, el plugin LWC se puede reemplazar por Wgfix+MachineGuard, y el plugin DynMap por Minecraft Overviewer.

Siempre limpia el loot o instala un plugin para eliminar loot de forma automática

El loot en los juegos se refiere a los objetos que caen al morir un mob o al destruir ciertos bloques. Almacenar y procesar loot consume muchos recursos del sistema.

Para que el servidor funcione más rápido, es preferible eliminar el loot. Esto es mejor hacerlo mediante plugins especializados, como NoLagg o McClean.

No uses anticheats

En los servidores de juegos a menudo se instalan los llamados anticheats, que son programas que bloquean intentos de manipular el juego de forma deshonesta.

Existen anticheats para Minecraft. Cualquier anticheat siempre es una carga adicional para el servidor. Es preferible instalar protecciones para el launcher (que, sin embargo, no garantizan una seguridad absoluta y son fácilmente vulnerables, pero eso es un tema para otra conversación) y para el cliente.

En conclusión

Cualquier instrucción o recomendación es mucho más efectiva si se apoya en ejemplos concretos. Basándonos en las instrucciones de instalación anteriores, hemos creado nuestro servidor de MineCraft y hemos colocado algo interesante en el mapa.

Esto es lo que hemos logrado:

  • Servidor Bukkit - versión recomendada y estable 1.6.4;
  • Plugin Statistics - para recopilar estadísticas sobre los jugadores;
  • Plugin WorldBorder - para dibujar y limitar el mapa;
  • Plugin WorldGuard (+WorldEdit como dependencia) - para proteger algunas áreas.

Te invitamos a jugar en él: para conectarte, agrega un nuevo servidor e ingresa la dirección mncrft.slc.tl.

Estaremos felices si en los comentarios compartes tu propia experiencia de instalación, configuración y optimización de servidores de MineCraft, y nos cuentas qué mods y plugins te interesan y por qué.

Gran noticia: A partir del 1 de agosto, la cuota de instalación para servidores dedicados de configuración fija se ha reducido en un 50%. Ahora, la cuota de instalación única es de solo 3000 rublos.

A los lectores que no pueden dejar comentarios aquí, los invitamos a nuestro blog.

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster