|
Acadêmico(a): Sara Helena Regis Theiss |
Título: SPACE ROYALE: desenvolvimento de jogo Battle Royale com Unreal Engine |
|
Conclusão: |
O principal objetivo deste trabalho era o desenvolvimento de um jogo multiplayer no estilo Battle Royale de
naves com o motor de jogos Unreal Engine. Para tal, foi utilizada a linguagem C++ em conjunto com Blueprints para
aproveitar ao máximo o que o motor oferece. Foi realizada a modelagem da nave do jogo por meio da ferramenta
Blender e pode ser alcançado um resultado positivo, conforme relatado na seção 4, que descreve que os usuários
gostaram do design final. No tocante aos objetivos específicos, foi alcançado o primeiro objetivo com a entrega de um
jogo funcional, no qual os jogadores se enfrentam e conseguem lutar até que reste apenas um. O segundo objetivo que previa a categorização das armas também foi alcançado, mas parcialmente. Em alguns testes foi identificado que o
escudo as vezes não bloqueia corretamente o dano recebido, apesar de ser aplicado à nave corretamente e permanecer
nela somente pelo tempo previsto. Por fim, o último objetivo que era fornecer um jogo com boa jogabilidade também
foi alcançado parcialmente. Conforme visto nos questionários realizados, apesar de os usuários terem achado fácil a
jogabilidade do jogo, o problema que ocorre com a movimentação é um empecilho e, por isso, afeta a experiência que
os jogadores podem ter.
O principal desafio encontrado foi a elaboração das sessões, pois inicialmente foi feita uma implementação em
C++ que resultou em problemas para encontrar a sessão criada. Mesmo após testar outros métodos na linguagem, o
problema persistia. Por esse motivo, foi optado por utilizar os métodos disponibilizados para Blueprints no Unreal
Engine. A solução foi muito positiva, pois ofereceu uma saída funcional e com maior facilidade. Contudo, apesar de ter
se resolvido o problema com as sessões, o fato de o usuário entrar em uma sessão requer tratamentos diferentes para
que, tudo que um usuário realiza em sua máquina, possa ser visto por seu oponente no outro lado.
Assim, foi alterado o componente utilizado para tratar a nave do jogador e foi refeita a movimentação dela e os
spawn dos tiros e do escudo. Para que tudo seja refletido entre os jogadores foi necessário utilizar funções com a opção
de rodar no servidor, disponibilizado para Blueprints, de modo que ele se torna o responsável por aplicar a ação em
todos os clientes.
De acordo com os resultados apresentados na seção 4, o resultado não foi o esperado, mas foi adequado. O jogo
está funcionando como deveria com relação à gestão de sessões, disparo das armas, tratamento de dano, recarga das
armas e resultados com a colocação do jogador. Contudo, está pecando com relação à movimentação da nave, que
apresentou travamento para um dos usuários e que também ficou invisível para os inimigos em algum momento da
partida. Por se tratar da movimentação do usuário pelo mapa, esse erro acaba afetando bastante a jogabilidade, pois
atrapalha a gameplay dele.
Sendo assim, o objetivo de demonstrar o desenvolvimento de um Battle Royale utilizando o Unreal Engine
pode ser alcançado, apesar de ainda haver melhorias a serem feitas no resultado geral do jogo. O que se acredita ser um
grande motivo da dificuldade encontrada com o motor, foi as tentativas de implementar algumas funções sem o
conhecimento de que ele não permite alguns comandos em C++. Por exemplo, todas as variáveis criadas, precisam ser
inicializadas em sua criação, pois inicializar a variável na linha seguinte à sua criação já leva o motor a estourar e fechar
com erros. Por conta disso, também acabou sendo usado os Blueprints para, pelo menos, 80% da implementação.
Mesmo os tratamentos que foram deixados em C++ por conta da facilidade poderiam ter sido implementados por
Blueprints sem problemas, mas ao final, a implementação mista foi a ideal para o projeto.
Deste modo, as possíveis extensões deste trabalho são:
a) melhor a performance durante a partida;
b) corrigir erros com a movimentação da nave;
c) implementar a possibilidade de listar as sessões encontradas, para que o usuário possa escolher em qual
quer entrar;
d) aumentar a capacidade de jogadores por sessão;
e) implementar um perfil para o usuário, no qual possam ser registradas as suas conquistas;
f) implementar uma lista de amigos para que os jogadores possam manter contato após as partidas;
g) implementar a delimitação de zona ao mapa com uma nuvem tóxica que vai suprimindo as áreas das
pontas até o centro e queima jogadores que a tocarem;
h) implementar uma opção de rever a partida, no qual os jogadores poderão retornar à partida para assisti-la.
i) implementar uma lista de amigos para que os jogadores possam manter contato após as partidas. |
|
|