Skip to content

Latest commit

 

History

History
129 lines (69 loc) · 4.9 KB

README_PT.md

File metadata and controls

129 lines (69 loc) · 4.9 KB

Bem-vindo ao Open Knife 👋

Version Documentation License: MIT Twitter: ScriptsEngineer

🔨 Recursos

✔️ Apenas uma cena para facilitar carregamento no celular.

✔️ Uso de 3 estados de jogo (Menu, InGame, GameOver)

✔️ GameManager é um singleton com todos managers instanciados utilizando interface.

GameStates[] internStates = GetComponents<GameStates>();
gameStates.AddRange(internStates);

✔️ UnityEvents para uso fácil de designers no editor Unity.

✔️ Projeto com estrutura dividida com definições de montagem, ajudando em tempos de compilações menores,obrigando uso de SOLID e divisão de testes.

✔️ Separação total da lógica do jogo com UI, nada depende da interface do usuário e sua lógica.

✔️ Utilizado URP com renderização rápida e fácil para plataforma mobile.

✔️ Simples animações de UI com uso de triggers.

✔️ Modo de chefe Pull Request #1.

✔️ Uso do Test Framework para testes de procedimentos. - Testes de runtime. - Testes de editor.

Gerenciadores

Foi criado certos gerenciadores para utilizar lógica e dados de forma fácil e limpa.

🚨 GameManager: Um classe singleton. com estados do jogo, Importante notar aqui o uso de uma interface para todos componentes que queiram receber notificações de eventos dos estados do jogo.

🚨 LevelManager: Responsável obviamente pelos estágios e seus carregamentos.

🚨 UIManager: Além de ser pai de toda interface do usuário, armazena o Canvas também.

Atores

⛹️ Player com Shooter,Scorer

⛹️ Madeira com Rotator,CurveRotator

⛹️ Facas com Knife,RigidBody2D

⛹️ Frutas com Rigidbody2D

Stages

✔️ ScriptableObjects para separar dados das cenas.

✔️ AnimationCurves para tempo de interpolação da velocidade da madeira.

✔️ AngleObject é uma lista que mantém itens de objeto com um ângulo.

📈 Desafios

Física ou Triggers?

Um dos maiores problemas vistos nessa produção foi a dúvida que se deveria usar física ou não. Problemas de utilizar física do Unity podem ser vistos aqui:

Physic problem

Aonde o estágio ❓

Para um designer é muito fácil apenas editar um arquivo, desta forma foi utilizado o ScriptableObject.

Stage Object

👨‍💻 Um designer não deveria usar um editor de código?

Obviamente um designer que deseja-se trocar um som de efeito ou escolher quando instanciar uma partícula na cena deveria criar de um forma fácil e rápida, assim foi utilizado extensivamente o 'UnityEvent'.

UnityEvents

Uso de Assembly Definition

Uso de pacotes de montagem para cada namespace do projeto, divindo assim o uso de recursos ajudando no uso de testes.

Tempo de produção

⏰ 12 horas

Autor

👤 Rafael Correa (Script)

🤝 Contribuindo

Contribuições, problemas and pedido de recursos são bem-vindos!

Veja aqui => issues page.

Ajude

Dê uma ⭐️ se este projeto te ajudou!

Assets utilizados

🎨 FREE Casual Game SFX Pack

🎨 20 Evolving Fantasy RPG Weapons

🎨 Free Pixel Font - Thaleah

🎨 Free Pixel Food

📝 Licença

Este projeto é licenciado pelo MIT.