A downloadable game for Windows

1. Introdução

O projeto desenvolvido é um jogo de corrida de dragões, o foco para esta disciplina é a implementação da programação do protótipo na unity. Esta disciplina envolve conteúdos essenciais para a criação de mecânicas de jogo, como lógica de programação, desenvolvimento de algoritmos, implementação de sistemas de movimentação e interação entre objetos.

Os objetivos do projeto incluem a criação de um sistema de movimentação fluido e responsivo para os dragões e a implementação de interações significativas com o circuito de corrida, proporcionando uma experiência de jogo envolvente e desafiadora para os jogadores.

Os procedimentos metodológicos empregados no desenvolvimento do projeto seguiram uma abordagem iterativa e incremental, dividida em duas principais etapas de entrega (M2 e M3). Na M2, o foco foi na implementação da movimentação básica dos dragões, garantindo que os controles respondessem de maneira adequada e que os dragões se movessem de forma realista ao longo da pista. Na M3, foram realizadas melhorias na movimentação, além de adicionar a interação dos dragões com os checkpoints do circuito, permitindo uma progressão clara e objetiva durante as corridas.

2. Desenvolvimento

Durante a M3, a prioridade foi refinar a movimentação dos dragões. Isso envolveu ajustes nas variáveis e a troca do método Update para FixedUpdate, o que resultou em uma movimentação mais suave. Além disso, foi implementado o Cinemachine para melhorar o comportamento da câmera, e configurado o multiplayer local, onde cada controle adicionado inclui um novo jogador.

Shaders

No desenvolvimento do jogo d, os shaders foram utilizados para aprimorar a aparência visual dos dragões e do ambiente do circuito de corrida. Isso envolveu a criação de materiais dinâmicos e efeitos visuais que tornaram o jogo mais atrativo e imersivo.

Programação de console

A programação para console foi explorada na implementação do multiplayer local. Foi utilizado a Unity Input System para configurar o jogo de forma que cada controle conectado adicionasse um novo jogador. Este aspecto é fundamental em jogos de console que suportam multiplayer local, garantindo que a experiência de jogo seja fluida e sem interrupções.

Desenvolvimento de script complexo

O desenvolvimento de scripts complexos foi essencial em diversas partes do projeto. Durante a M2, scripts foram criados para implementar a movimentação básica dos dragões. Na M3, esses scripts foram refinados com ajustes de variáveis e a mudança para o método FixedUpdate para garantir uma movimentação mais suave. Adicionalmente, a implementação do Cinemachine e a configuração do multiplayer local envolveram scripts avançados para gerenciar a câmera e a interação entre múltiplos jogadores.

2.1. Conceito 

Gênero do Jogo

O jogo desenvolvido é um jogo de corrida de dragões, inspirado em títulos como Mario Kart, onde os jogadores competem entre si em uma série de circuitos desafiadores. O gênero combina elementos de corrida arcade com fantasia, proporcionando uma experiência dinâmica e visualmente envolvente.

Mecânicas

As principais mecânicas do jogo incluem:

  • Movimentação dos Dragões: Os dragões podem acelerar,  e realizar manobras para desviar de obstáculos e pegar atalhos.
  • Checkpoints: O circuito é dividido por checkpoints que os dragões precisam passar para continuar a corrida.
  • Multiplayer Local: O jogo suporta múltiplos jogadores na mesma máquina, com cada controle conectado adicionando um novo dragão à corrida.
  • Cinemachine: A câmera segue suavemente cada dragão.

Jogabilidade

A jogabilidade é centrada em corridas frenéticas e emocionantes onde até quatro jogadores podem competir simultaneamente em uma tela dividida. Os controles são intuitivos, permitindo que jogadores de todas as idades possam rapidamente aprender e se divertir.

  • Controles: Utilizam a Unity Input System, proporcionando respostas rápidas e precisas aos comandos dos jogadores.
  • Interação com o Circuito: Os dragões interagem com os checkpoints ao longo da pista, com indicações visuais claras para o próximo ponto de controle. A interface é projetada para ser clara e não intrusiva, garantindo que cada jogador possa focar em sua própria corrida sem distrações.
  • Desafios: O circuito inclui diversos obstáculos e atalhos, exigindo dos jogadores habilidade e estratégia para alcançar a linha de chegada primeiro.

2.2. Programação 

Movimentação dos Dragões

A movimentação dos dragões foi um dos aspectos mais importantes e desafiadores do desenvolvimento do jogo. A implementação incluiu:

A segunda imagem adicionada apresenta o código deste tópico.

  • Controles de Aceleração e Frenagem: Utilizando a Unity Input System, os controles foram mapeados para permitir que os jogadores acelerassem, freassem e direcionassem seus dragões com precisão.
  • Método FixedUpdate: A lógica de movimentação foi movida do método Update para FixedUpdate para garantir uma atualização mais consistente e suave dos movimentos, resultando em uma experiência de jogo mais fluida.
  • Ajustes de Variáveis: Variáveis como velocidade máxima, aceleração, e inércia foram cuidadosamente ajustadas para garantir um equilíbrio entre realismo e jogabilidade.

Cinemachine

A Cinemachine foi utilizada para gerenciar a câmera do jogo, proporcionando uma visualização dinâmica e ajustável da corrida. As configurações incluíram:

A terceira imagem adicionada apresenta o código deste tópico.

  • Seguimento Suave: A Cinemachine foi configurada para seguir os dragões suavemente, evitando movimentos bruscos que poderiam distrair os jogadores.
  • Layer Diferentes para Cada Jogador: Para resolver problemas de câmera no multiplayer local, diferentes layers foram atribuídos a cada jogador, garantindo que a câmera seguisse o dragão correto sem interferências.

Multiplayer Local

A implementação do multiplayer local foi um ponto chave no desenvolvimento, permitindo que vários jogadores competissem na mesma tela. Os aspectos principais incluem:

  • Adição de Jogadores: Através da Unity Input System, novos jogadores eram adicionados automaticamente conforme novos controles eram conectados.
  • Gestão de Inputs: Cada jogador tem seus próprios controles e camadas de input, garantindo que os comandos de um jogador não interferissem nos de outro.
  • Câmera Dividida: Em casos de multiplayer, a tela é dividida adequadamente para que cada jogador tenha sua própria visão clara da corrida.

Interação com Checkpoints

Os checkpoints foram implementados para guiar os jogadores ao longo do circuito e medir o progresso de cada dragão. A implementação teve que ser feita em C#, mas o acesso as variáveis foi no Visual Script. As principais características incluem:

A quarta e quinta imagem adicionada apresenta o código deste tópico.

  • Detecção de Colisão: Scripts de detecção de colisão foram utilizados para identificar quando um dragão passava por um checkpoint.
  • Indicação Visual: Ao passar por um checkpoint, uma indicação visual clara é mostrada na tela para o jogador correspondente, direcionando-o ao próximo ponto de controle.
  • Gestão de Interface: A interface foi projetada para que as indicações de checkpoint fossem específicas para cada jogador, garantindo que as informações não se misturassem e cada jogador pudesse focar em sua própria corrida.

Ajustes e Melhorias na M3

Na etapa M3 do desenvolvimento, foram realizadas várias melhorias e ajustes para refinar a experiência de jogo:

  • Suavização da Movimentação: Ajustes adicionais nas variáveis de controle e no método FixedUpdate para garantir uma movimentação ainda mais suave e responsiva.
  • Implementação de Cinemachine: Configuração do Cinemachine para garantir um seguimento de câmera perfeito e sem interrupções durante a corrida.
  • Correções de Problemas de Multiplayer: Utilização de diferentes layers para resolver problemas de câmera e inputs no modo multiplayer, garantindo uma experiência de jogo fluida e livre de bugs.

2.3. Discussão de resultados

O desenvolvimento do jogo de corrida de dragões exigiu uma abordagem interdisciplinar, integrando conteúdos de várias disciplinas. A Programação Aplicada Avançada foi fundamental na implementação das mecânicas de movimentação e interação com checkpoints. A Inteligência Artificial contribuiu com regras simples para a interação dos dragões com o circuito, enquanto a Design de Jogos foi crucial na criação dos personagens e do circuito, equilibrando estética e funcionalidade. O uso da Unity, Unity Input System, e Cinemachine permitiu gerenciar a jogabilidade e as interfaces de usuário, integrando ferramentas e sistemas de desenvolvimento.

Durante o desenvolvimento, foi enfrentado diversas dificuldades. A movimentação dos dragões inicialmente apresentou inconsistências, resultando em um controle menos responsivo. Após vários testes e ajustes, a troca do método de atualização de Update para FixedUpdate garantiu uma movimentação mais suave e precisa. Outra dificuldade foi a sinalização de checkpoints, que invadia as telas dos outros jogadores, causando confusão. Foi implemntado um sistema de interface que exibe as indicações exclusivamente na tela do jogador correspondente, utilizando scripts personalizados para cada jogador.

As manobras dos dragões também apresentaram desafios, pois interferiam na movimentação básica, causando problemas de controle.  Foi decidido desabilitar temporariamente essa mecânica para evitar comprometimento da jogabilidade. Essa mecânica será repensada e refinada em fases futuras do desenvolvimento. No modo multiplayer local, as câmeras frequentemente focavam no último personagem adicionado, ignorando os demais. Usado o Cinemachine para configurar múltiplas câmeras, cada uma associada a um layer específico para cada jogador.

3. Conclusão

O desenvolvimento do jogo de corrida de dragões foi marcado por desafios significativos, mas a aplicação de soluções iterativas permitiu superar muitos obstáculos. A abordagem interdisciplinar foi essencial para integrar diversos aspectos técnicos e de design, resultando em um produto funcional e promissor, embora com áreas que precisam de refinamento.

Cada aspecto foi cuidadosamente planejado e ajustado para garantir uma experiência de jogo fluida. Mesmo com algumas funcionalidades temporariamente desabilitadas para evitar comprometimentos na jogabilidade, o projeto continua a evoluir, com planos de melhorias futuras. Em resumo, o jogo demonstra um produto funcional e promissor.

Referências

1. How To Make Local Multiplayer Games W/ Unity Visual Scripting + New Input System. Disponivel em:

2. Unity First-Person Controller Part 1. Disponível em:

3. Flying Control in Unity. Disponivel em:

4.Unity Flying Controller. Disponível em:

5. Camera follow In Unity: Cinemachine Tutorial | AshDev. Disponível em:


6. Modelo do dragão: https://sketchfab.com/3d-models/dragon-flying-78f809b98bbe426e94d4024dc894b206;

Ficha completa da equipe:

Thaís Fernanda Paz - Programadora e Game Designer- Pickyx

Universidade do Vale do Itajaí - UNIVALI

Cesar Albenes Zeferino | Diretor Escola Politécnica

Giorgio Gilwan | Coordenador do Curso de Design de Jogos

Rafael Kojiio | Coordenador Gamelab UNIVALI

Projeto  desenvolvido como requisito parcial para obtenção de aprovação na disciplina: Motores de Jogos Avançados - Professor - Marcelo Dornbusch Lopes;


StatusIn development
PlatformsWindows
Rating
Rated 5.0 out of 5 stars
(1 total ratings)
AuthorPickyx
GenreRacing
Tags3D, Dragons

Download

Download
Build TIC1_Thais.zip 35 MB

Leave a comment

Log in with itch.io to leave a comment.