Novedades Cliente-Servidor

¡Buenas Prisioneros!

Antes de empezar a describir las novedades que traemos en esta entrada, quiero desearos a todos los que como el equipo de desarrollo, estáis sufriendo las consecuencias de este maldito virus, mucho ánimo y todo nuestro apoyo. Sabemos que son tiempos duros y esperamos poder animaros un poco con las novedades que os traemos,

¡Sin mas dilación, vamos al turrón!

Cambios de estancia

En entradas anteriores os mostramos la implantación del sistema MMO, es decir que los jugadores pudieran verse unos a otros, era una implementación bastante básica orientada únicamente a formar los cimientos para lo que venía a continuación.

Ahora los jugadores ya pueden cambiar de una estancia a otra del juego y, al mismo tiempo, cambiarán de «room» en el servidor. En este vídeo podéis ver a que nos referimos.

Sólo podréis apreciar que los jugadores cruzan la puerta y aparecen en una escena distinta. Esto a nivel de servidor es bastante similar, desconectándose el usuario de la «room» en la que estaba antes de cruzar para conectarse a la nueva.

Chat

Una de las partes mas importantes era conseguir un chat funcional a nivel de servidor.

Por el momento hemos avanzado bastante en ese sentido. Hemos conseguido hacer que los usuarios puedan enviar mensajes en la «room» en la que están y que todos los jugadores dentro de esa zona puedan leer ese mensaje.

Aquí podéis ver el estado actual.

El siguiente paso en cuanto a servidor será que esos mensajes puedan ser para toda la prisión, para un grupo determinado (clan, grupo, chat múltiple), o para un jugador en particular, el famoso teléfono.

Combate, reglas y simulador

Cómo ya se ha explicado en anteriores entradas, uno de los mayores problemas que están parando el desarrollo ahora mismo es el sistema de reglas que usará el juego.

Tenemos todos los objetos del juego original, pero para que esos objetos estén equilibrados, deberían usarse con un sistema de daño y estadísticas lo mas similar posible al de la prision, y claro, esto es muy dificil, por no decir imposible, sin poder acceder a los datos del juego.

Por ello, hemos estado desarrollando un simulador que calcula combates (con los mismos turnos, habilidades y funcionamiento del combate que el juego original) de forma automática.

Ante todo, quiero dar las gracias al Equipo de Contenido por toda la ayuda que brindó en cuanto al sistema de combate de la prisión.

Actualmente el sistema de combate está basado en un sistema D100 muy simple. Tan sólo usa este tipo de tiradas aleatorias para acertar o fallar habilidades y ataques y para el cálculo del daño correspondiente.

Vamos a ver el simulador un poco mas en profundidad.

El simulador en primer lugar, permite crear los contrincantes, especificando el delito, las estadísticas, las habilidades y el equipamiento.

Aquí podéis ver la creación de un MER y un LAD, sin utilizar equipamiento, y armados con una honda y una maza de oro.

Una vez creados los contendientes, pasamos al simulador en sí mismo. Nos va a permitir llevar a cabo un combate paso por paso, o un número de combates definido de forma automática.

Para la muestra, vamos a simular 50 combates entre estos dos PJs, tened en cuenta que para igualar las cosas, le hemos dado 2 niveles mas al LAD, ya que, al no haber protecciones aplicadas, en un combate al mismo nivel, el LAD no tendría ninguna oportunidad.

Una vez terminada la simulación, tenemos el área de Estadísticas, donde podemos ver un resumen de todo lo que han hecho los PJs durante la simulación.

Como podeis ver, la diferencia de nivel le ha dado alguna oportunidad de vencer al LAD ya que ha podido aplicar mas daño crítico y su daño por habilidad ATURDIR ha sido muy elevado, sin embargo, el MER valiéndose de RABIA y su HERIDA SANGRANTE, ha podido hacerle frente aún estando 2 niveles por debajo.

Este simulador nos sirve para explorar las posibilidades en cuanto a sistemas de reglas para el juego. El que estamos aplicando actualmente, se hizo principalmente para desarrollar el simulador así que, seguimos buscando un sistema de reglas que se pueda adecuar al juego.

Y con esto terminamos la entrada con las novedades.

Un saludo a todos!
El nuevo equipo de La Prisión.

Novedades

¡Saludos prisioneros!

Esta semana hemos avanzado en varios aspectos de esta fase de estructura y elementos básicos en la que nos encontramos, y nos encontraremos durante un buen tiempo.

La semana pasada hablábamos de la nueva herramienta Room Editor y su funcionalidad a la hora de crear animaciones. Esta semana ya hemos perfilado algunos bugs que se crearon en la anterior build, donde las animaciones ya funcionan entre distintas cámaras y continúan desde el fotograma que hubiese usado la ultima cámara antes de la transición.

Cursores

Hemos implementando una primera versión de cursores animados, para empezar a ofrecer un feedback sobre qué elemento se encuentra bajo nuestro cursor, esto es: una puerta, una zona de transición, un objeto interactuable, etc…

Chat

Entre las características actuales del chat podemos encontrar lo siguiente:

  • Rich text: Tags para colores y formatos de texto (negrita, cursiva y color)
  • Emoticonos: Actualmente hemos añadido los emojiis básicos en dos formatos: por referencia (algo que pretendemos eliminar en el futuro) y por código unicode (esto ayudará a usar teclados virtuales que incluyen estos iconos, como en macOS)

Otra característica del chat que pensamos puede ser interesante de cara al futuro, tanto por temas de debuging por parte del staff como para la futura creación de mods por entusiastas del juego, son los comandos de reflexión.

Esta herramienta permite ejecutar funciones por reflexión de elementos concretos del juego. La idea principal tras esto es incluir una forma temprana para modificaciones del juego ingame, uno de los pilares para permitir el modding.

El vídeo que os ponemos a continuación muestra un ejemplo de esto: Existiendo una clase especifica para el control de cursores e incluyendo la interfaz IGameCommand, esta herramienta permite llamar a cualquier función (como la función SetCursor en el ejemplo) desde el propio juego, sobreescribiendo su comportamiento, es este caso, cambiando al cursor «estándar» incluso cuando el comportamiento normal (sin haber usado este comando) es usar el cursor de desplazamiento de zona.

Para ello debemos indicar comandos con la siguiente sintaxis:

//<class> <func_name> [<(Type)param>]
Ejemplos:
//cursor setcursor (Carcel.UI.Cursor+ECursors)MoveTo
//roommanager loadroom (System.String)CorridorL_Auto_Room

Puertas

La última característica que hemos añadido a las habitaciones son las puertas y objetos interactuables. Fuera de la simpleza que puedan parecer, ha sido necesario plantearse algunas cosas:

  • Zona de área de uso para todos los interactuables. Esto incluye por supuesto a las puertas, y nos permite indicar la zona aleatoria donde un personaje debe encontrarse para poder ejecutar la acción del objeto.
  • Zona final de transición: Cuando cambiamos de sala, debemos dirigirnos a la puerta, esperar a que se abra una vez hemos llegado, y continuar andando hacia «el fondo» para comenzar la pantalla de carga. Todo esto esta incompleto y únicamente tenemos planteada la UI para automatizar y facilitar la creación de estas puertas.

Os dejamos un vídeo donde se muestran casi todas las características de las que hemos hablado hoy:

Estructura de servidores

Hemos replanteado la estructura de servidores para agilizar el uso que tenga cada uno y aumentar, en lo posible, el número de usuarios concurrentes sin tener que adquirir la versión profesional del framework que usamos para el netcode.

Hasta el momento teníamos un único servidor donde habíamos desplegado todos los elementos. Teniendo en cuenta que el limite de usuarios impuestos por el framework es de 100 usuarios, esto implicaba que si había 90 personas jugando, y 10 en la zona de login (selección de personaje y todo eso), significaba que nadie más podria conectarse ni al login.

Ahora hemos separado en tres servidores todo esto proceso: Uno para el login, otro para la base de datos y otro para cada cárcel. El servidor que utiliza la base de datos no tiene ningún tipo de limite a la hora de consultas concurrente (más allá de los propios limites técnicos) pero tanto el servidor de Login como los servidores de Cárcel, sí consumirán este limite de 100 usuarios, pero con esta nueva estructura, 100 cada uno. Es decir, 100 personas haciendo login a la vez que otras 100 personas juegan en una cárcel y otra 100 personas en otra cárcel distinta. Y todos a la vez.

Un saludo a todos!
El nuevo equipo de La Prisión.

Mejoras en RoomEditor

¡Saludos prisioneros!

Esta semana en programación hemos hecho algunos avances en el sistema de habitaciones y en la herramienta ‘Room Editor’ para automatizar todo este proceso.

La semana pasada hablábamos del proceso de automatizar los elementos básicos de una escena, es decir, la posición de las cámaras, la aplicación de los shaders y la asignación de zonas.

En esta ocasión hemos añadido un sistema aun en desarrollo de animaciones. Con esto, podremos recrear algunas partes del juego que sí contenían animaciones (¿alguien recuerda las moscas de la cocina?).

Las animaciones de momento funcionan a 24fps, aunque se esta barajando la posibilidad de usar un framerate má bajo (de unos 15) para aumentar la sensación de los juegos de aquella epoca, pues algo muy caracteristico era precisamente esa «falta de fotogramas» en las animaciones del fodo.

Os adjunto un vídeo de este sistema de animación en funcionamiento. Como podréis observar aun faltan depurar algunas cosas.

En términos de rendimiento, las animaciones son creadas extrayendo una región de pixeles de la imagen original (el render completo) y se guardan en archivos en formato RGB24. Esto nos esta dando una tasa de refresco en el juego de unos 1020 FPS, con todos los efectos activados.

Esta cifra sin embargo variará en el futuro, pues no estamos considerando escenarios con más personajes, más efectos y más recursos en acción. Sin embargo, sí nos permite ir comprobando que el futuro juego de La Prisión consuma los mínimos recursos posibles. En otras palabras: que funcione en la mayoría de ordenadores posibles.

La herramienta Room Editor también ha recibido una importante actualización, añadiendo una pestaña especifica para toda la creación de animaciones. Básicamente, indicando una ruta, un rectángulo, una velocidad y una curva de animación, Room Editor creará por nosotros todos los pasos de forma transparente.

Lamentablemente la herramienta aun no se encuentra completada en este momento, a falta de depurar algunas de sus características actuales y la implemención de algunas nuevas.

También hemos mejorado el shader de transparencias para elementos 3D, añadiéndole la posibilidad de utilizar una mascara, lo que nos permite crear verjas en el juego que ocultan la geometría de los elementos 3D tras ellos:

Os traeremos más novedades la semana que viene.

Un saludo a todos!
El nuevo equipo de La Prisión.

Novedades en programación

¡Saludos prisioneros!

A lo largo de esta semana hemos avanzado en más elementos esenciales para el desarrollo del juego. Uno de esos elementos es la automatización a la hora de crear habitaciones.

También hemos creado una wiki para ir documentando herramientas y mecánicas del juego.

Y hemos mejorado algunas cuestiones de seguridad en el servidor. Esperamos que estas medidas garanticen que nadie pueda explotar elementos importantes y borrar la base de datos.

Es difícil mostrar cosas de programación sin entrar en código puro, por lo que os dejo un par de screenshot de la base de datos actual por eso de ir rellenando un poco el post 😛

Room Editor

Room Editor es una herramienta desarrollada para facilitar la creación de habitaciones en Unity de forma automática.

Sin embargo es importante recalcar que aun faltan muchos elementos, por lo que este acercamiento es para agilizar el desarrollo en la parte de gráficos, permitiendoles experimentar sin necesidad de programar o tocar elementos del motor.

En el vídeo podéis observar su funcionamiento en acción. Algunos procesos aun deben ser hechos a mano, como la creación de campo de navegación.

La Prisión Wiki

Como mencionaba antes, hemos creado una wiki usando Mediawiki para ir documentando todos los elementos del juego. Si decides visitarla, ten en cuenta que estamos en los primeros días de haberla levantando, por lo que la mayoría de la información o es inexistente, o es incompleta o no esta verificada, por lo que recomiendo coger con pinzas cualquier cosa que leáis ahí en los próximos meses:

https://wiki.prisonserver.net/

Ruleset, ruleset!

Seguimos en la busqueda incansable de encontrar un sistema de reglas para aplicarlo al juego. En anteriores entradas hablabamos del problema en el que nos encontramos al no recibir nada de soporte por el equipo original, y no saber con exactitud las reglas que regian todo por detrás.

Hemos estamos mirando muchos juegos y consultando a muchas personas y seguimos sin tener una decisión clara al respecto. Si conoces a alguien que pueda ayudarnos con este tema, por favor contacta con nosotros en los comentarios o en el grupo oficial de Telegram.

A continuación os pongo la lista de juegos que estamos valorando:

  • Call of Cthulhu
  • Aquelarre
  • RuneQuest
  • Rolemaster
  • Dungeons & Dragons 3.5
  • Phoenix Command

Un saludo a todos!
El nuevo equipo de La Prisión.

Sistema de Localización y Bases de datos

¡Saludos prisioneros!

Hoy vamos hablar de los avances en el sistema de traducción que queremos implementar en el juego. La entrada que nos acontece en esta ocasión es, como muchas de las cosas que aun faltan por llegar, una de las bases que cimentará el futuro juego de La Prisión.

Siempre he creído que la traducción de un juego es importante, y que el idioma mínimo que cada juego debe llevar siempre es el ingles. Es un idioma muy importante, hablado por la mayoría, y que permite al mundo conocer obras que, de otra manera, se relegarían a los pocos que compartieran su lengua original.

Pero también he creído siempre que un juego debe respetar su raíces y el país donde se produjo, y eso incluye añadir el castellano como lenguaje al juego. Por ende, no hay otra solución que garantizar un sistema que permita añadir toda lengua al juego, y ofrezca, frente a otras soluciones más clásicas, una verdadera ayuda en el día a día entre los muros de La Prisión.

Herramienta para Unity

Estamos desarrollado una herramienta para ser usada internamente en Unity con la finalidad de acelerar y acomodar el proceso de la localización.

Estas son las carateristicas <ironia>del original nombre: Localization Editor </ironia>:

  • Serialización binaria del contenido en UTF-16 para permitir lenguajes complejos como el japones o, quien sabe, futuros lenguajes alienigenas más complejos de lo que hoy podamos imaginar :P.
  • Importación y exportación en formato CSV, un formato muy conocido en el área de la traducción.
  • Sistema de traducción estática y dinámica, esto es: Textos que no se modifican y textos solicitados por el código en tiempo de ejecución.
  • Sistema de rutas de recurso: Utilidad para assets y elementos de contenido binario como imágenes o sonidos.
  • Sistema de duplicación: Un problema típico en sistemas de traducción es duplicar entradas innecesarias, como crear dos claves con el mismo contenido en espacios de nombre distintos. Nuestra herramienta detectará y avisará de dichas duplicaciones.
  • Algunos bugs por arreglar: Esta es una característica muy común en cualquier herramienta…

No todas las características están aun acabadas, pero si las suficientes como para considerar que puede usarse en el repositorio principal del juego.

Cambiar lenguaje ingame

Reconozco que esto es quizá más un capricho mio que una necesidad real del juego, y es que nuca podré olvidar lo ingenioso que me resultó, en su momento, esta posibilidad en un addon del que jamás podré recordar el nombre en World of Warcraft.

La Prisión es, por su propia naturaleza, un juego español con pocos recursos, y eso significa que, si en un futuro, una persona de distinto idioma quisiera saber el nombre original que tal o cual objeto tiene en castellano, le permitirá buscar información por internet que, poniendo el nombre traducido, no podría encontrar tan facilmente.

Es cierto que uno siempre puede ir a opciones, idiomas, y cambiarlo. Pero, ¿por qué no permitir un atajo de teclado que lo haga en tiempo real? ¿no es más cómodo para esa gente, mirar por unos segundos el nombre original, dentro del propio juego, y luego volver a su idioma? Yo creo que sí, y creo que alguien le terminará por encontrar la utilidad.

Como podéis ver en el vídeo de a continuación no todos los textos están implementados a falta de depurar algunas características de la herramienta.

Buscando inspiración en Asheron’s Call para la base de datos

El 31 de enero de 2017, no mucho antes de que lo hiciera La Prisión, el juego multijugador masivo Asheron’s Call cerraba sus puertas de forma definitiva. La comunidad que hubo alrededor de ese juego, vivió lo mismo que, en estos días, nuestra comunidad esta viviendo, y aunque desconozco si con ayuda o sin ella del staff original, la comunidad creó un emulador del servidor, de forma libre, disponible en github:

https://github.com/ACEmulator/ACE

Gracias a su aportación, nuestro equipo a podido examinar el funcionamiento de este, incorporando a nuestra base de datos técnicas que han sido usadas para este juego tan famoso en su momento.

Si sois desarrolladores os invito a que le echéis un vistazo, esta escrito en un sano y moderno C# fácil de entender y con muy buenas ideas dentro.

Un saludo a todos!
El nuevo equipo de La Prisión

Cliente / Servidor (Primeros pasos)

En la anterior entrada habéis podido echar un vistazo a cual es el estado de desarrollo actual del cliente. En este post os vamos a contar en que estado se encuentra el desarrollo del servidor.

Multiplayer y Bots

En este momento hemos conseguido que múltiples jugadores se conecten a una zona y cada uno de ellos pueda ver los movimientos de los demás.

Si bien es cierto que de momento no pueden interactuar entre ellos, este es un gran paso adelante para nosotros ya que esto constituye la base para todo lo que venga después.

Además hemos logrado incluir un primer paso en cuanto a NPCs y su control mediante el servidor.

En el siguiente vídeo podéis ver mas o menos todo lo anteriormente mencionado. Veréis que en ocasiones los PJs dan saltos, pero no es por lag, ya que el NPC Crazy Bar Pardillo se mueve de forma fluida, si no porque aún debemos mejorar mucho el modo en que se transmiten las posiciones a los jugadores remotos y las animaciones de esos movimientos.

Sistema de combate

Todos recordamos los combates en la prisión, ya fuera contra bots o en «bullas», su sistema de combate era amado y odiado a partes iguales. Y para no perder ni el amor ni el odio que se le profesaba, hemos decidido conservarlo lo mas fielmente posible.

Recordad en todo momento que estamos en una fase muy muy temprana de desarrollo y todo lo que os enseñamos está en pañales.

Una vez mencionado esto, por el momento ya hemos hecho avances en el «timing» de los turnos y hemos comenzado a implementar los ataques.

A continuación veréis un vídeo en el que en primer lugar, se consume un turno al agotarse el tiempo, y otro turno en el que el oponente ataca. Todo esto es gestionado por el propio servidor.

Siguientes pasos

Estos avances han sido una pequeña parte de la base que debemos crear para que el desarrollo siga adelante y tenemos que mejorar y pulir muchísimo todo lo mostrado. Pero haber llegado hasta aquí, nos da ánimos para seguir trabajando.

Uno de los siguientes objetivos que pretendemos alcanzar en cuanto al servidor, es implementar un sistema de chat igual de bueno que el de la prisión.

Espero que el artículo haya sido de vuestro interés y recordad que vuestras opiniones y comentarios son importantes, ¡cualquier idea puede ayudar a mejorar el juego!

Un saludo a todos!
El nuevo equipo de La Prisión

Las primeras bases (Programación)

¡Hola a todos! Bienvenid@s al blog oficial del proyecto: Revive La Prisión.

Resultado de imagen de la prision dinamic multimedia

Como muchos sabreis, en el año 2018, los servidores del juego cerraron definitivamente, provocando que un grupo de antiguos jugadores crearan un grupo con la esperanza de volver a jugar algun día.

Ese día, cada vez está más cerca.

En el momento de escribir estas lineas, somos dos programadores, por lo que el trabajo a repartir es titánico. Pero no es algo que nos importe, para nosotros es un placer dedicarle el tiempo que necesita un proyecto así, que estimo, no será menor a un año. Con suerte, en el 2021, podremos empezar con una beta abierta.

Tecnología usada

Han sido muchos los debates sobre qué tecnologías usar en el desarrollo, pero al final, las ganadoras, fueron las siguientes:

  • Smartfoxserver 2X: Servidor principal
  • Unity 2019.X: Engine principal

¿Qué implica esto para el futuro del juego? Por un lado, ambas tecnologias no son libres ni gratuitas, aunque ambas ofrecen una solución gratuita, aunque limitada, en sus prestaciones. Es esta ultima parte en la que el juego vivirá, dentro de los limites impuestos por estas tecnologias.

Uno de esos limites, por ejemplo, es el número concurrente de usuarios que pueden conectarse a La Prisión, que rondará los 100 usuarios por cárcel.

El motivo principal de usar estas dos tecnologías son por temas de tiempo. Tanto Unity como Smartfoxserver ahorran, si no cientos, miles de horas, en el campo de desarrollo. El segundo motivo, es que ambas herramientas ofrecen la posibilidad de actualizarlas a un plan de pago, desbloqueando todos esos limites impuestos, y la tercera, que son las herramientas que a día de hoy, 2020, conocen la mayoría de los developers, lo que nos permitirá, en el futuro, ampliar nuestro personal técnico.

La «esencia» de un juego de 1999

Para mi, este es uno de los motivos principales por lo que me involucro en este desarrollo. Y es que los juegos que existen hoy en día, poco o nada tienen que ver con lo que fueron sus atávicos percursores.

Para lograr mantener esa esencia hemos tomado algunas decisiones tanto a nivel de mecánicas como gráficas.

A nivel mecánica será bastante parecido al juego original, esto es: movimiento por click & point, cámaras estáticas, combate en 3D por turnos, y un gran foco, en el chat.

A nivel gráfico es bastante difícil lograr algo parecido, sobre todo, siendo únicamente dos programadores en el desarrollo del día a día. Por lo que si eres una persona con ganas de colaborar y conocimiento en el área audiovisual, contacto con nosotros en Telegram (@jcastro3d, @Jontxus, @JOTACorso).

Hemos desarrollado una herramienta para simular los fondos pre-renderizados que respeta la esencia de aquella época, a la vez que añade ciertas mejoras gráficas que casan perfectamente con el estilo.

El funcionamiento que hay detrás es el siguiente: Cargamos una imagen pre-renderizada de fondo, encima de esta imagen, cargamos una simplificación del nivel y le añadimos un shader invisible.

Y la gracia de todo, radica en dicho shader. Pese a ser invisible, seguirá ocultando la geometría de otros elementos 3D que estén detrás, a la vez que será capaz de recibir proyecciones de sombras del resto de elementos.

Esto permite un comportamiento visual más rico y cercano a lo que los juegos modernos nos puedan ofrecer hoy en día, a la vez, que mantiene esa esencia de imagen pre-renderizada granulada y antigua que tan difícil es de lograr con 3D en tiempo real.

El vídeo de a continuación fue el primer ejemplo de esta tecnología cuando la usamos, y fue un vídeo que rondó por el canal oficial de Telegram durante un tiempo. Como imaginareis no es un entorno que se vaya a usar en el juego, al igual que el personaje.

Sistema de reglas

Todo juego de rol necesita un sistema de reglas sobre el que sustenta el progreso de los personajes, los combates y el entorno. Por desgracia, La Prisión usaba un sistema de reglas propio del que desconocemos casi por completo cómo funcionaba a nivel interno.

Aunque tenemos información cómo cuantos puntos disponía un crimen al empezar su creación, o la vida total según su constitución, nos faltan muchísimos datos para poder programar un sistema de reglas parecido.

Esto nos ha obligado a buscar una alternativa. En la actualidad estamos debatiendo sobre qué sistema usar, por lo que sería un buen momento para participar en los comentarios y exponer tu opinión al respecto.

Actualmente se esta barajando el sistema de reglas de D&D, en su variante OGL, la mismia que usa Pathfinder y que se trata de Open Source, lo que nos permitiría usarlas sin problemas legales, más la tranquilidad, de ser un sistema con más de 20 años de testeo a sus espaldas.

¿Qué opinas sobre esto? ¿Hay algún ruleset que conozcas y creas que encajaría como anillo al dedo para La Prisión?

Sistema de Persistencia

Existen muchos tipos de MMO, con muchas mecánicas distintas, pero todos ellos comparten el concepto de persistencia. Nuestro pequeño equipo ya tiene las bases para permitir la persistencia en cuentas y personajes (no aun en objetos u otros elementos).

Aunque puede parecer poco, son los primeros pasos sobre la que se sustentaran el resto de sistemas. 

  1. Registro de cuenta en nuestra base de datos
  2. Sistema de encriptación para los credenciales del usuario.
  3. Creación de personajes, tanto a nivel de stats como gráfico.
  4. Destruir un personaje (en la cuenta del propietario)

A continuación os dejo un vídeo con el último estado del juego. Tened en cuenta que hablamos de un prototipo, donde buscamos el funcionamiento y dejamos el arte, un poco de lado. Normalmente estas cosas no suelen enseñarse al publico en una empresa de videojuegos, pues es algo demasiado prematuro. Espero que os sea de interés aun así.

Un saludo a todos!
El nuevo equipo de La Prisión