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

0 comentarios sobre “Las primeras bases (Programación)

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Puedes usar estas etiquetas y atributos HTML:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>