Catastrophe en GDevelop

Published on

in

,

No recuerdo cuándo, cómo o dónde fue que me topé con GDevelop, pero desde que ocurrió lo he estado siguiendo de cerca.

GDevelop es una herramienta para la creación y publicación de videojuegos prácticamente sin escribir código… al menos así es como se anuncia.

¿Se puede hacer un juego sin codificar nada en GDevelop?

Sí… y no. Si bien para muchas de las tareas y tipos de juego que se pueden hacer en efecto no escribes código, no te puedes embarcar en la creación del juego de tus sueños si no logras comprender un algoritmo, la relación entre objetos y lógica booleana, entre otros conocimientos inherentes a la programación.

La herramienta tiene una suscripción gratuita y de paga. La versión sin costo te permite experimentarla en su totalidad (no he visto limitantes aún), incluyendo la generación de un ejecutable o instalador para Windows y Android.

Abordaré esta herramienta a lo largo de varios posts pero si no quieres/puedes esperar, aquí te dejo la liga al sitio oficial:

Así como sucedió con AGK, para aprender a usar la herramienta he decidido intentar recrear mi primer juego Catastrophe Slide Puzzle en ella. A través de este ejercicio espero poder entender cómo generar una aplicación interactiva que tenga:

  • Cambio de pantallas
  • Menus
  • Música y sonido de fondos
  • Que permita elegir el idioma en el que se presenta la interfaz
  • Que se juegue con el mouse para versión de escritorio y mediante gestos si es en un dispositivo móbil
  • Que pueda leer y escribir archivos de configuración y avance

Esas son las funcionalidades generales que tiene el juego. En este blog te estaré comentando mis hallazgos y avances.

Photo by Antoni Shkraba on Pexels.com

¿Por qué digo que no se puede generar un videojuego sin conocimientos de programación?

Hasta donde he entendido, la unidad de ejecución mínima en GDevelop es una «escena«. En dicha escena hay un escenario, actores (el jugador y lo que lo acecha) así como objetos que le ayudan o impiden su avance.

Todo aquello con lo que desees que haya interacción en la escena se hace a través de «behaviors» (comportamientos). Estos elementos proporcionan las reglas y controles, así como reacciones e interacción entre los elementos de la escena.

Por ejemplo, si queremos hacer un juego de plataforma (como Super Mario Bros) podemos agregar al personaje que utiliza el jugador el comportamiento de «juego de plataforma«. Este comportamiento, de fábrica, le proporciona movimiento con las teclas AWSD y barra espaciadora para saltar, así sin hacer más nada… ¿suena fácil, no? Sí, con eso tenemos ya un personaje que responde a lo que el usuario apriete en el teclado… pero eso es todo. Si quieres que tu personaje tenga animación cuando está de pie, cuando salta, cuando va cayendo, cuando avanza, no solo debes generar u obtener esas animaciones, debes indicarle a GDevelop cuándo y cómo usarlas y he ahí el motivo de mi comentario.

Veamos el ejemplo con el que inicié:

El ejercicio es bastante sencillo: Posicionar al jugador, permitir que se mueva con las teclas AWSD y que si toca el misil, incremente el marcador y el misil desaparezca.

Teniendo los elementos en pantalla, sin behaviors, solo vemos una pantalla que parece estática.

Yo quería que el personaje activara una animación cuando se encuentra en reposo, así que hay que indicarlo en las propiedades de las distintas animaciones asignadas al jugador:

Vamos a los behaviors:

Esta ventana es la que sustituye la programación tradicional escribiendo código por la oferta de GDevelop, crear sin programar.

Hay dos columnas en esta ventana, la condición a la izquierda y el efecto en la derecha.

La primera condición que podemos ver es al inicio de la escena, que cuando se dé, indicamos al motor que enfoque la cámara en el personaje del jugador (PricessSera) y que cambie la posición de la cámara a la misma de la princesa:

Aquí tenemos una condición y acciones que ejecutar si la condición se cumple. Traducido a lenguaje coloquial, dice:

Si la escena va inciando, centra la cámara en PrincessSera, iguala la posición X de la cámara con la de la princesa.

Esta codición y sus dos acciones asociadas, nos dan este efecto:

  • Centrado de la cámara con el personaje
  • La coordenada X de la cámara debe ser la misma que la del personaje.

Veamos ahora la interacción con el persona. Tenemos condiciones para indicar qué hacer si el jugador, controlando a PrincessSera presiona la tecla Izquierda o Derecha en el teclado (las del cursor o las definidas):

Observa del lado izquierdo que se declara «si se presiona a la izquierda/derecha» y en la columna de acciones se indica «cambia la animación a Running» con una cláusula extra, hacer el reflejo en horizontal del personaje cuando se mueve hacia la izquierda, el efecto de estas instrucciones es el siguiente:

Moverse a la izquierda

Moverse a la derecha

Son situaciones básicas, sin duda, pero sin experiencia previa, esto puede ser un gran obstáculo.

En fin, no pretendo decirle a nadie si puede o no hacer un videojuego, más bien, lo que quiero es hacer de su conocimiento que tener bases de programación, aunque no escribas direcamente el código, te ayudarán muchísimo a sacarle provecho a la herramienta.

Nos veremos pronto con una publicación nueva relacionada a este post donde te contaré cómo inició mi aventura para recrear Catastrophe en GDevelop.

Deja un comentario

Descubre más desde Crónicas de Programación

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo