Parrot utiliza subistemas en Unreal Engine. Los subsistemas proporcionan ciclos de vida gestionados desde el motor y añaden puntos de extensión para las funciones comunes. Si has utilizado un patrón Singleton en Unity, los subsistemas cubren una necesidad similar. Los sistemas están vinculados con los siguientes ámbitos dentro del motor:
Motor
Editor
Instancia de juego
Mundo
Jugador local
Al ir entrando estos ámbitos en diferentes estados, también lo hacen los subsistemas y pueden reaccionar en consecuencia.
Un motivo habitual para utilizar subsistemas es cuando se necesita exponer funciones comunes de C++ a Blueprint y se conoce el ciclo de vida esperado.
Ejemplo de subsistema de audio
Parrot utiliza un subsistema de audio por los siguientes motivos:
El subsistema está vinculado al ciclo de vida de la instancia de juego sin formar parte de la propia instancia.
Se puede acceder al subsistema tanto en C++ como en blueprint.
Los ajustes de sonido, como el volumen, se pueden en cambiar en cualquier momento desde cualquier lugar del juego.
Manipular los ajustes de sonido a través de un subsistema proporciona un punto de acceso centralizado de depuración.
Un sistema externo puede guardar los ajustes de sonido en cualquier momento.
Si quieres ver cómo funciona en la práctica, echa un vistazo a UParrotAudioSubsystem. El subsistema de audio interactúa sobre todo con los sistemas de IU, ya que es allí donde el jugador puede manipular el audio. Sin embargo, cuentas con la flexibilidad necesaria si el audio se tiene que cambiar en otro sitio. Cuando estés añadiendo un sistema al juego, piensa si un subsistema podría ser una abstracción útil.