Arena Survival Top-Down

Jogo 2D de arena onde o jogador sobrevive a ondas infinitas de inimigos utilizando movimentação e disparos direcionais.

Nível
fácil
Categoria
Programação
Tecnologias
Game Engine 2D, C#, GDScript, C++, Physics 2D, UI Systems

Objetivo do Projeto

O projeto consiste no desenvolvimento de um jogo 2D com visão superior focado na sobrevivência em uma arena fechada. O objetivo principal é implementar os fundamentos de um game loop completo incluindo controle de entrada de usuário, detecção de colisões, instanciação dinâmica de objetos e gerenciamento de estado do jogo.

A aplicação final entrega uma experiência arcade contínua. O jogador deve desviar de inimigos gerados proceduralmente pelas bordas do mapa e utilizar projéteis para eliminá-los acumulando pontos até que sua vida seja completamente esgotada.

Características e Regras de Negócio

  • Movimentação e Controle: O personagem do jogador deve se mover nos eixos X e Y em um ambiente bidimensional utilizando as teclas de direção. A rotação do personagem ou a direção dos disparos deve seguir a posição do cursor do mouse.
  • Sistema de Inimigos: Inimigos devem ser instanciados fora da visão da câmera de forma aleatória em intervalos regulares de tempo. O algoritmo de movimentação dos inimigos deve calcular constantemente a direção do jogador e aplicar velocidade contínua até ocorrer uma colisão.
  • Mecânica de Disparo: O jogador aciona a criação de instâncias de projéteis através do clique do mouse. Os projéteis possuem velocidade fixa e são destruídos ao colidir com inimigos ou após saírem dos limites da arena para otimizar o uso de memória.
  • Sistema de Vida e Pontuação: O jogador inicia com uma quantidade predefinida de pontos de vida. Colisões diretas com inimigos subtraem vida. A destruição de um inimigo adiciona pontos ao placar global. A condição de derrota é ativada quando a vida chega a zero.

Stack e Arquitetura

  • Modelagem de Dados: Componentes estruturais dos atores principais representados por classes ou nós. O jogador possui atributos de velocidade, vida atual e cadência de tiro. Os inimigos possuem atributos de velocidade de perseguição e dano de colisão.
  • Lógica e Serviços: Gerenciadores de estado controlam o fluxo de iniciar, pausar e finalizar a partida. Um sistema de pooling de objetos pode ser utilizado para gerenciar a criação e destruição repetitiva de projéteis e inimigos.
  • Interface e Interação: Componentes de tela sobrepostos à câmera principal exibem a pontuação atual e uma barra de vida. Menus simples contendo os botões de controle de estado acionam as transições de cena ou recarregamento dos dados.

Passo a Passo de Desenvolvimento

  • 1. Setup e Modelagem: Configuração do projeto na engine escolhida, importação de formas geométricas primárias e configuração da câmera estática limitando a visão da arena.
  • 2. Lógica Central: Programação dos scripts de movimentação do jogador e de perseguição dos inimigos. Configuração das caixas de colisão e simulação física cinemática bidimensional.
  • 3. Interface e Interações: Implementação da lógica de disparo com cálculo de vetores a partir da posição do mouse. Construção da interface gráfica para exibição dinâmica dos dados numéricos.
  • 4. Validações e Testes: Ajuste numérico da velocidade das entidades. Validação do acionamento da tela de conclusão e limpeza total das instâncias em memória ao reiniciar a partida.

Critérios de Conclusão

  • O jogador consegue se mover livremente dentro dos limites da tela respondendo aos comandos de teclado.
  • Os projéteis são instanciados corretamente na direção do cursor do mouse e registram colisão com as entidades adversárias.
  • Entidades inimigas surgem em intervalos constantes e calculam a rota de interceptação do jogador.
  • O sistema contabiliza a pontuação ao destruir entidades e reduz a integridade do jogador ao sofrer contato físico.
  • A tela de reinicialização sobrepõe a visualização principal no momento da derrota.

Desafios Extras (Opcional)

  • Implementar suporte a gamepads para controle de movimento nos direcionais analógicos isolando a orientação da mira.
  • Desenvolver um sistema de progressão temporal reduzindo o intervalo de geração das entidades inimigas a cada ciclo de sessenta segundos.

Comentários

0

Participe da conversa

Faça login com sua conta para deixar dúvidas, sugestões e trocar ideias com outros estudantes.

  • Nenhum comentário ainda. Seja o primeiro a participar da discussão!