Hola a todos!
Os presento un proyecto en conjunto con Icaruk en el que llevamos trabajando bastante tiempo. Se trata de un mod para el simulador Arma III.
El proyecto lo empezamos a desarrollar en Agosto de 2014, y lo presentamos en forma de misión para Arma III con prisas en Octubre de 2014 a Make Arma Not War (un concurso que hizo Bohemia Interactive, la empresa desarrolladora de Arma III). Tras esto, lo dejamos un tiempo aparcado, y en Octubre de 2015 lo hemos retomado con un enfoque mucho más grande en forma de mod y con idea de abrir próximamente un servidor con él funcionando y ver la recepción de los jugadores.
Se trata de una idea relativamente nueva en el universo de Arma III. El enfoque que tenemos al diseñar el mod es el de crear un juego MMORPG sobre la base de Arma III, generando para ello un entorno multijugador de unos 80-100 jugadores (aproximadamente, todo depende del rendimiento que consigamos), de tipo PVP por facciones (con dos principales), en el que poder realizar misiones solo y en grupo a lo largo de diferentes mapas, cumpliendo unos ligeros requisitos de supervivencia (no estar herido, ni hambriento, ni sediento, ni con una temperatura no adecuada).
Por ahora estamos usando solo un mapa, Altis, una versión a escala 3:4 de la isla griega Lemnos, los que supone un mapa de unos 270 km² en escala del juego, en los que desarrollar nuestro mod. En vista a poder usar otros mapas, estamos estamos programando todo teniendo en mente el poder cambiar fácilmente a otro mapa del juego (usando marcadores por coordenadas para las ubicaciones de los elementos y misiones en vez de objetos del mapa concreto por ejemplo).
También, hemos añadido bastantes características, rasgos y habilidades a los personajes (los cuales se pueden tener varios y personalizar), y todo se gestionan mediante diferentes menús a los que se puede acceder desde un menú personalizado que hemos creado y que va a sustituir al de Arma III in game.
Para fomentar el PVP, hemos incluido un sistema de bases conquistables que generan una red a lo largo del mapa a través de la cual puedes acceder a bases conquistadas por tu equipo, obteniendo ciertos beneficios. Esto incentiva a los jugadores a atacar/defender bases capturables para obtener los beneficios relacionados con ella (crafteos exclusivos, poder rearmarse, repostar, reparar, descansar, etc) para su facción.
Para moverte a través del mapa, tendrás a tu disposición diferentes vehículos, que deberás de ir consiguiendo con el avance de tu personaje, y que tendrás disponibles para siempre una vez los construyas (crafting) y solo tendrás que tener la gasolina necesaria para usarlos (la puedes comprar y conseguir de diferentes formas en el mod).
Sobre todo este sistema, se desarrollan las misiones, las cuales se dividen en varios tipos, campaña, misiones diarias y eventos.
La campaña constará de bastantes misiones (calculamos que entorno a 50 para la release) en las cuales llevaras a cabo misiones de todo tipo, enfocadas a viajar, transportar, atacar, defender, escoltar, buscar, y un largo etcetera, así como combinaciones de estos tipos.
Las misiones diarias tratarán de cumplir ciertos objetivos para tu facción o NPC en el juego, que se generaran cada 24 horas de forma aleatoria.
Las misiones de eventos supondrán un evento especial en un espacio de tiempo determinado (por ejemplo, a las 20.00 de la noche todos los sábados ocurrirá algo, como que un avión se estrelle dejando materiales de valor en un punto del mapa).
Por último, habrá facciones, con las que irás entablando amistad u odio, con puntos de facción que recibirás o perderás a medida que realices misiones o elimines a enemigos de una determinada facción.
Para guardar toda esta información, hemos elegido como solución MySQL, y hemos usado un conector existente y aprobado por BattleEye (el sistema anticheat de Arma III) entre MySQL y el servidor de Arma III llamado extDB2. En cuanto al almacenamiento, hemos creado una base de datos relacional desde cero, a medida para los requisitos de nuestro mod, en la que incluimos jugadors, tracking de sus personajes, estadísticas, claves beta, etc), junto con un sistema de gestión del netcode exclusivo para nuestro mod, que nos permite efectuar llamadas a la base de datos entre 4 y 6 veces más rápido que en otros mods de Arma III (como por ejemplo AltisLife).
Actualmente, nos encontramos con unas 50.000 líneas de código funcionando en el proyecto, lo que suponen aproximadamente (ya sabéis como son estas cosas) un 75% del código necesario para lanzar la alpha listo. Ya tenemos funcionando bastantes partes, las cuales os dejo junto vídeos que he ido realizando durante el desarrollo para mostrar el funcionamiento:
· Login
Permite logear y registrarse, el metodo de registro es mediante betakey con padrino. Las claves son almacenadas con cifrado SHA2 512 para evitar cualquier posible problema con las contraseñas en caso de que alguien tuviera acceso a la base de datos, que funciona solo contra las IP's de los servidores por lo que no debería de existir ningún problema. Para guardar la credencial localmente en el equipo (autologin) usamos el HASH codificado en SHA2, nunca la contraseña en texto plano.
· Menú de selección y creación de personaje
Permite crear un personaje nuevo o seleccionar uno existente y retomar esa partida desde donde lo dejaste. Se guarda absolutamente todo respecto al estado de tu personaje, si estabas mirando un árbol desde un balcón con una pierna sangrando, al volver a conectar estarás exactamente igual. Al crear el personaje se permite elegir la cara y un nombre, próximamente queremos añadir determinados rasgos para los personajes también elegibles al crearlos.
· Menú de misiones
Gestiona y muestra las misiones con grupos diferenciados, muestra requisitos, recompensas, objetivos y una explicación sobre el lore de la misión.
· Menú de habilidades y Garaje
Menú de habilidades: Permite bindearse habilidades que vas desbloqueando a diferentes teclas.
Menu de garaje: Permite sacar y meter vehículos en un garaje, cargandoles gasolina e items del inventario que tienes en la base de tu facción.
Vídeo de habilidades y garaje
· Menú de administración
Permite a los administradores del servidor hacer llamadas a la base de datos para recoger información sobre personajes y jugadores, así como generar betas, banear, etc
· Menú de crafting
Permite generar objetos, armas, munición y otros elementos a partir de una receta y ciertos materiales que funcionan como materia prima. Algunas recetas pueden requerir estar cerca de un deteminado banco de trabajo (workbench) para poder craftearse.
· Otros
Iré colgando noticias y vídeos sobre lo que vayamos desarrollando próximamente. Os dejo por aquí la web por si queréis solicitar una beta y el twitter que hemos creado para el mod, por si alguno nos quiere seguir.
Web: DesolationMod.com
Twitter: @DesolationMod