Ya os he explicado varias veces mi afición a los juegos retro, muestra de ellos son las entradas en la sección correspondiente en la web. Hoy os vengo a hablar de un juego que me ha sorprendido y que he conocido recientemente, este es Isleward. Además de ser un proyecto muy interesante este sigue la filosofía de desarrollo de opensource, lo podemos tener en modo servidor, sin tener que utilizar los servidores oficiales y así poder configurarlo a nuestro gusto. Ergo al tener el código fuente, lo podemos traducir, modificar y adaptarlo a nuestras necesidades, más si dominamos javascript, lenguaje en el que está construido. Como sabéis me gusta darle vueltas a las cosas, por lo que también os explicaré mi experiencia para instalaro en un servidor VPS con Ubuntu 18.04, utilizar un proxy inverso, esta vez con Apache e instalarle un certificado SSL con Let’s Encrypt. Pero veamos un poco en que consiste este interesante juego.

Isleward un juego RPG

Básicamente Isleward, aparte de todas las características técnicas, se engloba dentro los considerados RPG, esto es, un juego de rol on-line. La idea es que compartamos buenos momentos junto a nuestros amigos y familiares en este mundo fantástico virtual con gráficos de 16 bits, desde nuestro navegador web favorito. Al principio debemos escoger entres diferentes tipos de personajes o “espíritus”. Uno es el búho para los lanzadores de hechizos, un oso para los luchadores que utilizan la fuerza y los línces que son sigilosos desde las sombras.

Una vez accedemos por primera vez, tenemos a nuestra disposición un pequeño tutorial (de momento todo el juego está únicamente en inglés), donde nos guiará a través de los primeros pasos en el juego. Las teclas para moverse WASD, que suelen ser las más utilizadas. En el juego exiten diferentes ubicaciones, que para ver su interior debemos acceder a ellas con nuestro personaje, como por ejemplo las posadas.

Justo en la parte inferior nos aparecen los mensajes del tutorial. En la parte inferior derecha tenemos el panel donde podemos acceder al inventario, a los sets del personaje (donde le podemos “vestir” y añadirle items, además de ver su defensa y ataque), en “craft items” podemos crear nuevos objetos, en “Pasive Tree” el arbol de habilidades del personaje, que iremos desbloqueando a medida que vayamos avanzando en el juego. También podemos consultar nuestra reputación, ver los jugadores conectados, la tabla de clasificación, la ayuda y por último el menú del juego.

Si necesitamos atacar algo, lo debemos seleccionar con el cursor y presionar la barra espaciadora para atacar automáticamente cuando el objetivo esté dentro del alcance, lo que generalmente significa cuando está en el cuadro adyacente.



Realmente el juego se nota que todavía esta en desarrollo, pero tiene esa magia que le hace muy interesante. Sobre todo para personas que les gusten este tipo de juegos. ¿Te animas a echar unas partidas? ¿Y a contribuir con el código o con la traducción?

Para accedea al proyecto ubicado en GitLab: Isleward id GitLab

Página oficial del juego: play.isleward.com

Wiki del proyecto: Wiki Isleward

Instalar Isleward en Ubuntu 18.04

Ya os he explciado que lo he instalado en un VPS con Ubuntu 18.04, su instalación no es muy complicada. Podemos ver las inistrucciones para GNU/Linux en la web oficial: Installation and usage in Linux

En mi caso he tenido que instalar algún paquete adicional para que todo funcionase. Instalamos primero las dependencias:

sudo apt-get install git nodejs npm sudo apt-get install git nodejs npm

Como os he dicho también he necesido instalar:

sudo apt-get install node-gyp nodejs-dev libssl1.0-dev sudo apt-get install node-gyp nodejs-dev libssl1.0-dev

Antes de pasar a clonar el proyecto ubicado en GitLab, he creado un usuario dedicado, que será el que usaré para operar con este juego desde el servidor:

useradd -m -c "isleward user" -s "/bin/bash" -G sudo isleward passwd isleward useradd -m -c "isleward user" -s "/bin/bash" -G sudo isleward passwd isleward

A partir de ahora trabajamos con este usuario:

sudo su - isleward sudo su - isleward

Clonamos el proyecto:

git clone https: // gitlab.com / Isleward / isleward.git git clone https://gitlab.com/Isleward/isleward.git

Accedemos a la carpeta recién instalada e instalamos dependencias utilizando npm , ya que utiliza Nodejs para funcionar.

cd isleward / src / server npm install cd isleward/src/server npm install

Una vez instaladas ya podemos arrancar el servicio. Pero antes de eso vamos utilizar SCREEN, para poder acceder y operar en la consola.

sudo apt install screen sudo apt install screen

Lo ejecutamos y arrancamos:

node index.js node index.js

Con un resultado similar a este:

isleward @ servsocrates:~ / isleward / src / server$ node index.js ( node: 24430 ) Warning: N-API is an experimental feature and could change at any time. Server: ready ( M estuary ) : Ready ( M sewer ) : Ready ( M cave ) : Ready ( M fjolarok ) : Ready isleward@servsocrates:~/isleward/src/server$ node index.js (node:24430) Warning: N-API is an experimental feature and could change at any time. Server: ready (M estuary): Ready (M sewer): Ready (M cave): Ready (M fjolarok): Ready

Para salir de SCREEN debemos utilizar la combinación “CTRL+A+D” y para volver a acceder screen -r

OK, pues con esto ya lo tenemos funcionando sobre el puerto 4000

COMMAND PID USER FD TYPE DEVICE SIZE / OFF NODE NAME node 13474 isleward 13u IPv6 94939490 0t0 TCP * : 4000 ( LISTEN ) COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME node 13474 isleward 13u IPv6 94939490 0t0 TCP *:4000 (LISTEN)

sudo apt install apache2 sudo a2enmod rewrite sudo a2enmod ssl sudo a2enmod proxy sudo a2enmod proxy_http sudo apt install apache2 sudo a2enmod rewrite sudo a2enmod ssl sudo a2enmod proxy sudo a2enmod proxy_http

/etc/apache2/sites-available/isleward.bitsandlinux.com.conf

< VirtualHost *: 80 > ServerName isleward . bitsandlinux . com RewriteEngine On RewriteCond % { REQUEST_URI } ^ / socket . io [ NC ] RewriteCond % { QUERY_STRING } transport = websocket [ NC ] RewriteRule / ( .* ) ws : //localhost:4000/$1 [P,L] ProxyPass "/" "http://127.0.0.1:4000/" ProxyPassReverse "/" "http://127.0.0.1:4000/" </ VirtualHost > <VirtualHost *:80> ServerName isleward.bitsandlinux.com RewriteEngine On RewriteCond %{REQUEST_URI} ^/socket.io [NC] RewriteCond %{QUERY_STRING} transport=websocket [NC] RewriteRule /(.*) ws://localhost:4000/$1 [P,L] ProxyPass "/" "http://127.0.0.1:4000/" ProxyPassReverse "/" "http://127.0.0.1:4000/" </VirtualHost>

sudo a2ensite isleward.bitsandlinux.com sudo systemctl restart apache2 sudo a2ensite isleward.bitsandlinux.com sudo systemctl restart apache2

Configurar Let’s Encrypt

sudo apt-get install python-certbot-nginx sudo apt-get install python-certbot-nginx

sudo certbot --apache sudo certbot --apache

sudo certbot renew --dry-run sudo certbot renew --dry-run

/ etc / crontab / / etc / cron. */* systemctl list-timers /etc/crontab/ /etc/cron.*/* systemctl list-timers

Fuentes consultadas

Como siempre me ha parecido muy feo acceder por el puerto a un servicio, vamos a configurar un proxy inverso con Apache. Para ello lo debemos tener instalado más una serie de módulos adicionales:Ahora creamos el respectivo fichero de configuración en, con el contenido:Añadimos la configuración y reiniciamos ApacheRecuerda que es imprescindible que añadas el registro “” en tu proveedor decon el registro del nombre y la IP del servidor. De esta manera todas las peticiones que lleguen al servidor por el puerto 80 con el nombre “islesward.bitsandlinux.com” se irán al 4000.Para poder habilitar la conexión, debemos instalar la herramientaDe esta manera ya podemos utilizar la herramienta:Nos hará una serie de preguntas y al final listará los proyectos web que ha detectado y debemos seleccionar cuál de ellos será al que se le añadirán los certificados. Todo bastante fácil la verdad. Los paquetes de Certbot vienen con un trabajo cron o un temporizador systemd que renovará los certificados automáticamente antes de que caduquen. No necesitaremos ejecutar Certbot nuevamente, a menos que cambiemos su configuración. Puede probar la renovación automática de los certificados ejecutando este comando:La herramienta añadira la tarea programada en algún de los siguientes lugares:Podemos comprobar el certificado desde la siguiente URL: https://www.ssllabs.com/ssltest/ Y eso es todo, si estáis interesados también podéis visitar como queda todo en: https://isleward.bitsandlinux.com

StackOverflow – WebSockets and Apache proxy : how to configure mod_proxy_wstunnel?

Documentación Apache – Redirecting and Remapping with mod_rewrite