Conduta - Manifesto de

  1. Padrões de Nomenclatura e Organização Namespaces Espelhados: O namespace deve refletir estritamente a estrutura de pastas do projeto. Exemplo: Um script em

Manifesto de Desenvolvimento Técnico - Projeto Conduta

Para o projeto Conduta é necessário levar em conta os seguintes pontos:

1. Padrões de Nomenclatura e Organização

  • Namespaces Espelhados: O namespace deve refletir estritamente a estrutura de pastas do projeto.

    • Exemplo: Um script em Assets/Scripts/Core/Network deve ter o namespace Core.Network.
  • Inglês Técnico: Todo o código (nomes de variáveis, classes, métodos e docs) será escrito em inglês.

2. Documentação e Comentários

  • Clean Code First: O código deve ser autoexplicativo.

  • Sem Poluição: É estritamente proibido o uso de comentários de linha para controle de versão ou notas temporárias (ex: //alterado aqui, //teste).

  • Documentação Funcional: Desde a primeira versão, métodos e classes devem conter XML Summaries (///

    ) e campos serializados devem conter o atributo [Tooltip].

  • Comentários Explicativos: Comentários profundos sobre a lógica interna serão adicionados apenas na fase de finalização (“bater o martelo”).

3. Arquitetura Data-Driven e Híbrida

  • Scriptable Objects (SO) como Fonte da Verdade Local: A base de dados do jogo (balanceamento, definições de papéis, configurações) residirá em Scriptable Objects.

  • Sincronização com Cloud Save: A arquitetura deve prever que valores nos Scriptable Objects possam ser sobrescritos ou populados por dados vindos do Unity Cloud Save. Isso permitirá Live Ops e balanceamento remoto sem necessidade de atualização do client.

  • Separação de Dados e Lógica: Scripts não devem conter “hardcoded values”; eles devem consumir dados dos SOs.

4. Internacionalização (Localization)

  • Zero Strings Soltas: Nenhum texto de UI ou mensagem de sistema deve ser escrito diretamente no código (“hardcoded strings”).

  • Unity Localization Package: Todo texto deve ser referenciado via String Tables e Asset Tables do pacote de Localization da Unity.

5. Princípios de Engenharia (SOLID)

  • Single Responsibility Principle (SRP): Cada classe deve ter uma única responsabilidade.

  • Anti-God Script: É proibida a criação de classes monolíticas (ex: um GameManager que controla UI, Rede, Áudio e Turnos ao mesmo tempo).

  • Refatoração Contínua: Ao notar que um script está acumulando muitas funções, ele deve ser imediatamente refatorado e dividido em subcomponentes, criando novas pastas e namespaces se necessário.

6. Interface do Usuário (UI)

  • UI Toolkit: Todo o desenvolvimento de interface utilizará o framework UI Toolkit (UXML e USS).

  • Desacoplamento: A lógica da UI deve ser separada da lógica de simulação do jogo (View vs Model/Controller). O Canvas legado (UGUI) não será utilizado para nada além de testes.