O Parrot usa subsistemas na Unreal Engine. Os subsistemas fornecem tempos de vida gerenciados pela engine e pontos de extensão para funções comuns. Se você usou um Padrão Singleton no Unity, os subsistemas preenchem uma necessidade semelhante. Os subsistemas estão vinculados diretamente aos seguintes escopos na engine:
Engine
Editor
Instância de jogo
Mundo
Jogador local
À medida que esses escopos entram em estados diferentes, o mesmo ocorre com os subsistemas, e eles podem reagir de acordo.
É comum, por exemplo, usar subsistemas para expor funcionalidades comuns do C++ ao Blueprint, já estando ciente do tempo de vida útil esperado.
Exemplo de Subsistema de Áudio
O Parrot usa um subsistema de áudio pelos seguintes motivos:
O subsistema é vinculado ao tempo de vida da instância do jogo, mas sem estar nela própria.
O subsistema pode ser acessado em C++ e Blueprint.
Configurações de som, como volume, podem ser alteradas a qualquer momento e em qualquer lugar do jogo.
Manipular as configurações de áudio por meio de um subsistema viabiliza um ponto de acesso de depuração centralizado.
As configurações de áudio podem ser salvas a qualquer momento por qualquer sistema externo.
Para vê-lo funcionando na prática, veja UParrotAudioSubsystem. O subsistema de áudio interage principalmente com os sistemas de interface de usuário, pois é onde o áudio pode ser manipulado pelo jogador. Porém, há flexibilidade caso precise alterar o áudio em outro lugar. Sempre que você adicionar um sistema ao seu jogo, considere se um subsistema seria uma abstração útil.