Arquitecto Sire Publicado 22 de Marzo del 2021 Arquitecto Compartir Publicado 22 de Marzo del 2021 Vamos a ver, simplificadamente, como funciona un servidor de Dedicado y qué herramientas hay para gestionarlo.El Servidor Dedicado (máquina y programa) Es una aplicación dserver.EXE haciendo de servidor del juego IL-2 Sturmovik Great Battles en una máquina conectada a Internet. Los jugadores, en sus respectivas máquinas, corren un programa cliente junto con el juego que se conecta al servidor e intercambia datos.Aspecto del servidor dedicado corriendo La Batalla de Inglaterra Hay que evitar confusiones cuando usamos la palabra "servidor" pues se utiliza tanto para referirnos la máquina como al programa. Igualmente "dedicado" es un término confuso porque la máquina puede correr otros programas en paralelo, por ejemplo un programa servidor de IL-2 y otro de DCS. Dedicado se refiere a que se centra en la tarea de gestionar el escenario y no a la parte jugable, pero no necesariamente en exclusiva. Volviendo al término servidor, para ser muy claro, a partir de aquí voy a referirme al programa como DSERVER, mientras que al equipo que lo corre la lo llamaré la máquina. Para que el DSERVER funcione necesita obligatoriamente dos cosas: Un archivo *.mission o *.msnbin, con sus respectivos archivos acompañantes y su estructura de carpetas. Un archivo de configuración *.sds, con los parámetros de inicialización del dserver como por ejemplo: "la misión que tienes que cargar se llama mision1.mission", "la contraseña es 'picopato' " o "no se puede modificar el fuel". Ejemplo de parte de los archivos que conforman La Batalla de Inglaterra Ejemplo del archivo SDS de configuración de La Batalla de Inglaterra. Nótese que el nombre puede se cualquiera que se desee. Por su parte la MÁQUINA tiene que tener unos puertos abiertos y accesibles desde Internet, lo que se conoce como enrutado dentro de su propia red.Existe un servidor no dedicado. Cuando desde dentro del propio "juego" alguien va a Multijugador, elige la opción de Crear Servidor y juega con los amigos esta corriendo en su máquina un servidor + un cliente. Nótese que para que funciones previamente hay que 1) abrir puertos y enrutarlos, 2)debes tener los archivos de la misión en tu ordenador y 3) previamente a iniciarlo tiene un menú de configuración de parámetros de juego, lo que esta generando (sin que te des cuenta) un SDS. ¿Ves?, exactamente lo mismo que con el dedicado. Por lo tanto al DSERVER se le llama servidor dedicado porque se dedica sólo a hacer de servidor (que no exclusivamente).La Consola Remota. La Consola Remota es un cliente específico para conectarse al DSERVER y controlarlo remotamente. También se le podría llamar "terminal". Aspecto general de la Consola Remota. ROF en su título hace referencia al Rise Of Flight, el juego para la que fue originariamente diseñada en 2009. La consola es muy pedestre, con un protocolo de comunicaciones muy áspero. Comandos de palabras clave, contestados con códigos en un formato muy áspero. Por ejemplo, le pedimos el listado de jugadores en ese momento: Todos esos caracteres extraños, como "%2cn", son caracteres de control para representar, por ejemplo, una barra vertical, pero la consola lo vierte en bruto y es casi ininteligible para un humano. Es decir la consola no está pensada para ser usada directamente de forma asidua.Capacidad de la Consola Los comandos que puede recibir la consola están previamente determinados y cerrados, no son muchos pero sí muy útiles. Entre otros permite enviar mensajes al chat del juego, indicar el SDS a ejecutar, reiniciar el dserver y ordenar la ejecución de determinados comandos (MCU) dentro del juego (la misión). Para no complicar las cosas sólo quiero indicar que la Consola solo introduce datos en el dserver (IN). La salida (OUT) de datos tiene que hacerse desde los archivos de registro (LOG) que el dserver va generando. Así, por ejemplo si un administrador quiere chatear con los usuarios dentro del juego necesita introducir su texto por la consola y buscar las respuestas en otro lugar, los archivos de registro. Sí, una que mejor requiere de un programa más inteligente que unifique las dos cosas. Por eso, desde mi punto de vista, la consola no es un programa para gestionar todos los días.IL2Bot Para mantener la sencillez de este post voy a señalar nada más que una herramienta para simplificar el uso de la Consola Remota a la que tengo echada el ojo. Su nombre es il2_discord_bot y yo lo he abreviado como IL2Bot. Es una herramienta escrita en Python con unos pocos scripts. Como la mayoría de los programas modernos se basa a su vez en una serie de "módulos" ya escritos, enlazándolos y adaptándolos a la necesidad. discord_bot.py, que es el script que crea el bot en la máquina y gestiona su presencia y funcionamiento Discord remote_console.py, que es el script que se encarga de traducir las comunicaciones HACIA la consola remota remote_console_actions.py, que es el script que "traduce" las respuestas DESDE la consola remota (tanto de bit y bytes y esas cosas como a un formato más legible por humanos). Ventajas. Es código abierto y completamente configurable. Las comunicaciones entre la máquina y Discord están cifradas. Los usuarios permitidos se configuran por una lista blanca. Sus usuarios no requieren conocer la consola para nada. Inconvenientes. Ponerlo en marcha, que no es demasiado complicado. Requiere Python instalado en la máquina y los módulos de sus dependencias, pero su impacto en el rendimiento (calculo) es mínimo. Seguridad. Hasta donde yo sé es seguro (aunque no soy ningún experto). Cuando se crea el bot y se le vincula con el Discord se le indica el nivel de acceso que se le puede dejar en un mínimo absoluto. ¿Incompatibilidad o interferencia con otros programas gestores como el il2-Commander? Actualmente no se hasta que punto. Habría que hacer pruebas. Pero es evidente que si IL2-Commander tiene la tarea de que siempre esté funcionando la Misión A y IL2Bot indica al dserver que inicie la Misión B, hay va a haber un conflicto y ganará el más insistente (en este caso el IL2-Commander). ¿Qué funciones se quedan por cubrir? ¿Qué soluciones se le pueden dar? Para responder eso hoy, antes tendría que hacer pruebas. Más información:El hilo del IL2 BotSu código y documentación en GitHub 2 Citar Enlace al comentario Compartir en otros sitios web More sharing options...
Publicaciones recomendadas
Unirse a la conversación
Puedes publicar ahora y registrarte más tarde. Si tienes una cuenta, conecta ahora para publicar con tu cuenta.