Categorías
Informática Internacional Videojuego

Ejecución

Para poder trabajar con el motor de Unreal Engine es importante conocer ciertas generalidades sobre su ejecución

Flujo del juego

En esta página de la documentación oficial se explica el flujo de juego, según arranquemos el videojuego desde el editor o de forma independiente.

En general no sabemos exactamente cuándo se llama al código de la clase Blueprint de un actor que está en el nivel o del código del propio nivel. Si el orden es relevante, conviene controlar nosotros cuando se ejecuta cada nodo con barreras como variables booleanas.

Funciones y eventos

Aunque parecen lo mismo, en realidad hay diferencias entre llamar a una función o a un evento de una misma clase.

Las funciones están hechas para realizar cálculos (funciones puras) o modificar el estado del mundo pero de golpe, en un único fotograma (funciones impuras). Pueden tener variables locales, pueden devolver valores (de nuevo, en el mismo fotograma)… pero al no poder hacer una tarea que dure un cierto tiempo, no permiten el uso de nodos latentes (como Delays, Timelines, etc.).

Los eventos pueden ser replicados (para darse simultáneamente en varios jugadores en juegos multijugador en red) y son asíncronos por naturaleza (sabes cuando empieza su ejecución, pero no cuando termina), pues se gestionan en hilos aparte. Crear muchos eventos personalizados en distintas clases Blueprints y hacer que dependan unos de otros implica programar cierta sincronización ya que el orden de ejecución podrá variar según la ocasión y si hay Destroys, podríamos acabar accediendo a actores o componentes que no sean válidos en un momento dado.

Como curiosidad, si heredamos de una clase donde había una función sin valores de retorno, desde la clase hija se verá como si fuese un evento. Si la función sí tenía valores de retorno entonces desde la clase hija la veremos como una función más.

Más información

Ahora mismo no hay otros documentos recomendados para consultar.