Categorías
Informática Universitario Videojuego

Programación

Tema 

Para definir comportamientos de cualquier objeto que intervenga en una aplicación creada con Unreal Engine es necesario usar algún lenguaje de programación, principalmente Blueprint (lenguaje visual integrado en el entorno de desarrollo) o C++, que es el lenguaje nativo del entorno.

Las lecciones a tratar en este tema son:

  1. Orientación a objetos
  2. Ejecución (en general)
  3. Programación visual
  4. Conversión de objetos
  5. Acceso a propiedades
  6. Construcción de objetos
  7. Registro de componentes
  8. Gestión de la entrada
  9. Control de la ejecución
  10. Uso de macros
  11. Funciones
  12. Interfaz de usuario
  13. Cálculo matemático
  14. Temporización
  15. Simulación física
  16. Gestión de niveles
  17. Programación de la jugabilidad
  18. Gestión de la persistencia
  19. Multijugador y programación en red
  20. Percepción automática
  21. Movimiento automático
  22. Navegación automática
  23. Decisión automática
  24. Evaluación y coordinación automática

De C++ según vamos enseñando BPs se podría enseñar C++; pero por ejemplo lecciones extra que podrían considerarse son Manejo de Vehículos, Gestión del Sistema de Habilidades de Jugabilidad (Gameplay Ability System), Procesamiento de Analíticas, Uso del sistema de reproducción (Replay System), registro visual (Visual Logger), programación con lambdas de C++ y mucho más que podríamos descargar de la tienda, etc.

Alternativas

Aunque desde Unreal Engine 4, Epic Games dejó de lado aquel “UnrealScript” que se usaba como lenguaje de guionizado en versiones anteriores de su entorno de desarrollo, hoy día han surgido alternativas para los que no quieren programar ni en C++ ni en el lenguaje visual Blueprints.

El más oficial es Verse, un lenguaje de guionizado bastante sencillo y limitado, creado por Epic Games, pero suficientemente potente como para ampliar las capacidades del modo creativo de Fortnite, en lo que se ha venido a llamar Unreal Editor for Fortnite.

Angelscript, por otra parte, es una modificación de Unreal Engine que incluye una extensión con un intérprete de este nuevo lenguaje, similar al C++ del motor pero algo simplificado. Supuestamente permite hacer juegos sin C++ ni Blueprints, porque tiene mejor rendimiento que los Blueprints y hasta es posible transformarlo a C++ para evitar la carga de la ejecución del propio intérprete de Angelscript. El flujo de trabajo es más cómodo que Unity: hay autocompletado y una depuración muy buena desde Visual Studio Code (aunque los errores de compilación no sean muy informativos), y al guardar los cambios en un script, automáticamente lo recarga todo, sin necesidad de reiniciar el editor de Unreal Engine nunca, ni aunque estemos ejecutando el juego en el editor. Aunque no tiene lambdas, para crear IA es bastante útil porque facilita mucho hacer nodos de árboles de comportamiento. Parece ser de código libre y hay estudios grandes que lo están utilizando (It Takes Two es el juego de los promotores de este lenguaje, Hazelight, y contiene más de 5000 ficheros con más de 700.000 líneas de código Angelscript).

Más información

Algunas otras referencias interesantes para consultar: