Isleward: Un juego RPG opensource para Linux
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
Como os he dicho también he necesido instalar:
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
A partir de ahora trabajamos con este usuario:
sudo su - isleward
Clonamos el proyecto:
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
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
Lo ejecutamos y arrancamos:
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
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)
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
, con el contenido:
<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
Configurar Let’s Encrypt
Para poder habilitar la conexión HTTPS, debemos instalar la herramienta Certbot:sudo apt-get install python-certbot-nginx
sudo certbot --apache
sudo certbot renew --dry-run
/etc/crontab/ /etc/cron.*/* systemctl list-timers
Fuentes consultadas
StackOverflow – WebSockets and Apache proxy : how to configure mod_proxy_wstunnel?
Documentación Apache – Redirecting and Remapping with mod_rewrite