Engine e Frameworks

Phaser.js

Motivo da Escolha

  • Leve, eficiente para jogos 2D, altamente customizável, documentação recente com exemplos e funcionalidades e comunidade altamente ativa (Discord e Reddit).

Funcionalidades Utilizadas:

Câmera e Movimentação: Implementação da Câmera Top-Down com Foco no Jogador

Tipo de Câmera:

  • Câmera Top-Down Focada no Personagem:

    • Mantém o jogador sempre centralizado na tela, permitindo uma visão ampla do ambiente ao redor.

Movimento da Câmera:

  • Acompanhamento Suave (Lerp):

    • Ajuste de suavização na movimentação da câmera para evitar que ela siga o jogador de maneira brusca.

    • Configuração de lerp.x e lerp.y para valores próximos de 0.1, criando um efeito de "delay" natural.

  • Limite de Movimento (Bounds):

    • Definição de limites para a câmera não ultrapassar as bordas do cenário, mantendo o jogador sempre visível.

    • Jogador não pode sair da área de combate.

Efeitos Especiais na Câmera:

  • Shake (Tremor):

    • Câmera treme em explosões, ataques poderosos ou dano crítico no jogador.

    • Configurável em intensidade e duração para diferentes eventos.

  • Flash e Fade:

    • Flash: Ao coletar power-ups ou ao ser atingido.

    • Fade In/Out: Para transições entre arenas ou cenas narrativas.

Sprites e Animações: Gerenciamento de Spritesheets para Animações Fluidas

Organização e Importação:

  • Spritesheets Otimizadas:

    • Spritesheets compactas para minimizar o tempo de carregamento.

    • Organização por personagem, inimigos, projéteis e efeitos visuais (como explosões).

  • Pré-carregamento:

    • Utilização do método preload() para carregar assets antes de iniciar a cena, garantindo transições suaves.

Animações do Jogador:

  • Animações de Movimentação:

    • Idle: Quando o personagem não se move, dando uma sensação de vida (ex: respiração, cabelo ao vento).

    • Corrida: Animações dinâmicas com mudanças conforme a direção do movimento.

  • Animações de Combate:

    • Ataque Básico: Diferentes animações para cada tipo de arma.

    • Recuo (Knockback): Movimentos ao ser atingido, aumentando o feedback visual.

  • Animações de Interação e Contexto:

    • Morte e Renascimento: Animação dramática ao morrer e efeito de respawn ao recomeçar.

Animações de Inimigos:

  • Movimentação e Ataque:

    • Padrões de Ataque: Animações específicas para inimigos atiradores e corpo a corpo.

2.4. Efeitos Visuais (VFX):

  • Impactos e Explosões:

    • Efeitos de Partículas: Para tiros, explosões e poderes especiais.

    • Desaparecimento Gradual: Efeito de fade-out para corpos de inimigos e itens coletados.

  • Feedback de Dano:

    • Flash Vermelho: Piscada rápida ao ser atingido para indicar dano.

    • Shake no Sprite: Pequeno tremor para dar sensação de impacto.

Física Integrada: Utilização da Física do Phaser com Cannon.js ou Planck.js para Colisões Complexas

Física de Movimentação do Jogador:

  • Inércia e Aceleração:

    • Movimentação suave com aceleração ao começar a andar e desaceleração ao parar.

    • Ajuste fino para dar a sensação de peso e fluidez ao personagem.

Colisões e Interações:

  • Colisões Precisas:

    • Uso de Cannon.js ou Planck.js para colisões pixel-perfect entre projéteis, inimigos e o jogador.

    • Colisões com Objetos do Cenário:

      • Colisão com paredes ou obstáculos ao redor do mapa/background

  • Colisões com Projéteis:

    • Ajuste de velocidade, e colisão correta do hitbox.

Forças e Impactos:

  • Knockback e Empurrões:

    • Jogador e inimigos são empurrados ao sofrer dano crítico ou explosões.

    • Física ajustada para evitar sobreposição ou glitch em paredes.

Interações Ambientais:

  • Destruição de Objetos:

    • Objetos no cenário que podem ser destruídos, afetando o campo de batalha.

  • Efeitos Climáticos:

    • Ventos que afetam a movimentação de projéteis e personagens.

    • Poças d'água com fricção reduzida, aumentando a velocidade de movimento.

Atualizado