29 julio, 2013

Living paper source (Proyecto .net rpg game engine)

¿Recuerdan esto http://abdlab.blogspot.com.es/2012/04/proximos-proyectos-imagenes.html?
Pues bien, estuve tiempo trabajando en ello, metiendo código rápidamente hasta que todo se volvió muy complicado de manejar. Entonces surgió una idea, la cual debería haber sido mi punto de partida: "en lugar de hacer diréctamente un juego 2D necesito crear primero un objeto de usuario que simplifique la tarea". Durante este tiempo he comenzado varios proyectos relaccionados con el dibujo en dos dimensiones, aunque de ellos ninguno ha llegado a nada he recolectado códigos reutilizables muy interesantes y con ellos he comenzado el llamado proyecto living paper source, un rpg game engine que permitirá preparar juegos simples para un jugador sin necesidad de tener grandes conocimientos de programación.

Los tilesets, es decir, los paquetes de gráficos para diseñar el mapa se cargan de una manera muy libre, cada escenario puede cargar diferentes tilesets, de diferentes tamaños permitiendo una riqueza visual inimaginable en otros sistemas como rpgmaker o los basados en mirage source. Además se pueden añadir objetos "libres de cuadricula" para añadir detalles opcionalmente animados. El renderizado utiliza 5 capas independientes por ahora, uno para dibujar los sprites, dos debajo y dos sobre ellos, acepta formatos bmp, jpg y png con transparencia.

Lo más importante del proyecto en cuestión es que está basado en un objeto de usuario (al que llamo screen) que se ocupa de manejar todo lo referente al renderizado, manejo de sprites, detección de colisiones e incluso el cargado/guardado de mapeados. Todo dicho código (bastante intratable) queda oculto al programador por lo que se simplifica mucho el trabajo haciendo viables proyectos más complicados. Por ahora living paper source está en un estado muy temprano, y sin embargo permite ya hacer cosas muy interesantes. El editor de mapas es la parte más acabada puesto que es la que más complejidad aglomera. También dispone de un lenguaje de scripting basado en eventos diseñado específicamente para living paper source (satanas scripting) el cual permitirá crear los comportamientos de ciertos objetos interactivos de juego (actores).



El lenguaje combina ideas tanto de hax scripting como de crash minic pero con una gran diferencia, en lugar de cargar un script y ejecutarlo línea a línea, se cargan diferentes módulos combinados dependiendo del evento que se deba ejecutar; es decir, si un jugador presiona el botón de acción justo enfrente de un actor llamado por ejemplo "botón01" la máquina virtual satanas cargará una combinación de:

- framework: igual que en haxbox, jenova o turbotron, funciones reutilizables universales.
- mapscript-action: código que se ejecutará siempre que se usa acción en dicho mapa, es opcional.
- objectscript-action: código de acción que hace referencia a dicho objeto.

Así que si, por ejemplo, el objeto botón abre una puerta, ese código irá en el archivo objectscript en el evento on_action, pero podemos introducir también código en mapscript para que se ejecute siempre que usemos acción sobre cualquier objeto de dicho mapa. Parece complicado de explicar, espero poder documentarlo de una manera clara.

Antes de despedirme quiero dejar claro que falta mucho para liberar una primera versión y que seguramente esta no sea open source en su totalidad, quizás el objeto de usuario "screen" si lo sea, pero el entorno completo seguramente no, a pesar de eso se trata de una herramienta completa que no necesitará ser editada para crear juegos únicos gracias a su versatilidad. Un saludo coders y users.


Publicar un comentario en la entrada