Tudo sobre GameDev

Game Instance, Game Mode e Game State

Uma dúvida bem comum para quem está começando com a Unreal Engine são as funcionalidades e diferenças entre GameInstance, GameMode e GameState.  Então, vou tentar explicar de forma simplificada.

Game Instance:

O Game Instance, é a instância de jogo em si. É um Actor persistente que estará lá durante a vida útil do jogo. Cada cliente possui o seu próprio GameInstance e ele não é replicado. O GameInstance pode ser utilizado como um manager para carregar Widgets de UI, realizar ações enquanto o jogador muda de mapa e etc.

Game Mode:

O GameMode existe apenas no servidor e nenhum cliente pode modificá-lo. Ele pode ser usado para controlar coisas como o spawn de jogadores, login e regras e modos de jogo como TDM, PVP, PVE e etc. Você pode ter vários GameModes com regras diferentes e alterá-lo durante a sua GamePlay.

Game State:

O GameState é um Actor simplificado que existe no servidor e todos os clientes possuem uma cópia dele. Todas as variáveis do GameState são replicadas, mas somente o servidor pode alterá-las. Isso é bem útil para mostrar aos jogadores a pontuação dos times, hora do servidor e o que mais for necessário mostrar aos clientes.

Então aqui, geralmente o GameMode e o GameState trabalham juntos. O servidor decide que deve adicionar um ponto a equipe vencedora através do GameMode que por sua vez, altera a variável de pontuação no GameState, que replica esta pontuação para todos os jogadores mostrarem em suas UI’s.

Conclusão:

Na minha opinião, essas três classes são muito úteis e deixam nossos jogos bem modulares e organizados, e ainda nos poupa bastante tempo, pois não precisamos escrever singletons e coisas do gênero, nos preocupar com segurança e replicação para esse tipo de coisa.

Deixe uma resposta