Bem-vindo ao nosso desafio de programação para desenvolvedores de jogos! Este teste foi projetado para avaliar suas habilidades de implementação de mecânicas de gameplay em um ambiente Unity.
Seu objetivo é recriar as mecânicas de gameplay demonstradas no vídeo de referência. Você terá acesso ao vídeo demonstrativo, mas não ao código-fonte original. Este é um exercício de engenharia reversa e implementação.
2025-04-02.11-50-13.mp4
Os assets do vídeo podem ser baixados clicando aqui. O uso é opcional para o envio do desafio.
Baseado no vídeo de demonstração, você deve implementar as seguintes funcionalidades (em ordem de prioridade):
-
Movimentação básica do personagem
- Movimentação suave em todas as direções
- Rotação de câmera/personagem
-
Sistema de pulo
- Pulo básico
-
Interação com objetos
- Capacidade de segurar/agarrar objetos
- Manter objetos na mão do personagem enquanto se move
- Soltar objetos com física realista
-
Sistema de arremesso
- Arremessar objetos na direção que o personagem está olhando
Avaliaremos sua submissão com base nos seguintes critérios:
- Funcionalidade - O quão próximo sua implementação reproduz as mecânicas demonstradas no vídeo
- Qualidade do Código - Organização, legibilidade e boas práticas
- Física e Sensação - O quão natural e responsivo se sente o controle do personagem
- Criatividade - Soluções inovadoras para os problemas apresentados
- Completude - Quantas das mecânicas solicitadas você conseguiu implementar
- Projeto deve ser desenvolvido em Unity (versão 2021.3 LTS ou superior)
- Você pode usar o sistema de física nativo da Unity
- O projeto deve ser executável em PC Windows
- Você pode usar assets gratuitos da Unity Asset Store para visuais
Algumas funcionalidades são marcadas como opcionais neste desafio. A implementação dessas funcionalidades é um diferencial, mas não um requisito obrigatório. Você não deve se sentir pressionado a implementar todas elas. Recomendamos que primeiro implemente todas as funcionalidades principais antes de tentar as opcionais. Preferimos uma implementação sólida e bem feita das mecânicas básicas do que várias funcionalidades incompletas.
- O controle deve funcionar com gamepad (opcional)
- Controle de força do arremesso (opcional)
- Controle da altura do pulo baseado no tempo de pressão do botão (opcional)
- Sinta-se a vontade para implementar quaisquer funcionalidades que demonstre suas habilidades! (opcional)
Para submeter sua solução:
- Fork este repositório
- Implemente sua solução
- Submeta um pull request com sua implementação
- Inclua um breve documento explicando suas decisões de design e quaisquer informações adicionais que considere relevantes
- Um vídeo curto demonstrando sua implementação (Opcional)
- Não é esperado que você reproduza exatamente todos os aspectos do vídeo, mas quanto mais próximo, melhor.
- Priorize a implementação das mecânicas principais em vez de visuais elaborados.
- Se tiver dúvidas, sinta-se à vontade para abrir uma issue neste repositório.
- Divirta-se! Este desafio foi projetado para ser desafiador, mas também divertido de implementar.