PT-BREN
← Todos os projetos

2026 - Atual

Steel Horse Framework

Programador

Um toolbox open-source para Unity, oferecendo uma arquitetura leve de service locator, reprodução de efeitos sonoros (SFX) e música com pooling de áudio, carregamento de cenas com tela de loading, um cliente REST minimalista, um sistema de save criptografado, um sistema genérico de banco de dados em tempo de execução, um sistema de tags configurável por designers, e um conjunto de utilitários de UI (navegação de menu, pause, opções do jogador, localização, cursor compatível com gamepad).

Arquitetura

  • Projetou um sistema de service locator que resolve interfaces (áudio, música, carregamento de cenas, rede, banco de dados) a partir de componentes filhos em tempo de execução, permitindo trocar qualquer implementação apenas substituindo um componente do prefab, sem alterar o código que o utiliza.
  • Resolveu uma condição de corrida de inicialização de singletons duplicados fazendo com que cada serviço exponha um método Setup() explícito, chamado exatamente uma vez pelo singleton sobrevivente, em vez de depender de Awake/Start, que poderiam ser executados em um objeto duplicado de curta duração antes da deduplicação do DontDestroyOnLoad do Unity ser resolvida.
  • Construiu um sistema genérico de banco de dados em tempo de execução (Database<TEntry> / GameDatabase) para que novas coleções de dados do jogo possam ser registradas e resolvidas por tipo sem código adicional de serviço, além de um sistema de tags configurável por designers construído sobre ele, permitindo que não-programadores atribuam tags via dropdown em vez de strings digitadas livremente.

Áudio & Música

  • Construiu um sistema de reprodução de SFX com pooling (24 vozes por padrão), com suporte tanto para sons de UI 2D quanto sons 3D espacializados, com pitch/volume randomizados por cue, curvas de falloff selecionáveis, e controle de parada baseado em handles que utiliza um contador de geração para evitar que handles obsoletos afetem vozes recicladas.
  • Implementou um player de música com dois canais e crossfade automático entre faixas e playlists, controlado de forma independente através de parâmetros expostos do AudioMixer, para que o volume por música e os controles de volume no nível do mixer não entrem em conflito.

Rede

  • Construiu um cliente REST sem dependências externas sobre o UnityWebRequest e o modelo assíncrono Awaitable do Unity, com suporte a GET/POST/PUT/DELETE, headers por requisição e cancellation tokens, com um wrapper de resposta que preserva o corpo bruto para diagnóstico de erros mesmo em requisições que falham.

Sistema de Save

  • Implementou um serviço genérico de save/load que persiste dados serializáveis arbitrários como JSON criptografado em AES-CBC, com um IV novo gerado a cada save para que dados idênticos nunca produzam o mesmo texto cifrado.

Carregamento de Cenas

  • Construiu um carregador de cenas assíncrono com transição de crossfade configurável, descarregando explicitamente assets não utilizados e forçando a coleta de lixo antes de cada carregamento, evitando que as duas cenas fiquem residentes em memória simultaneamente.
  • Implementou uma variante de transição de cena controlada por Timeline, que pode ser acionada tanto por um sinal da Timeline quanto por um input configurável do jogador, protegida para que apenas o primeiro gatilho dispare o carregamento.

Framework de UI

  • Construiu um sistema de navegação de menus baseado em pilha (push/pop de painéis, cancelamento via gamepad/teclado), junto com uma variante de painéis em abas para navegação sem empilhamento, ambos com paridade completa entre gamepad, teclado e mouse.
  • Implementou uma tela completa de opções do jogador, conectando controles de volume, qualidade e resolução à persistência via PlayerPrefs e às APIs de áudio/qualidade/resolução do Unity.
  • Adicionou comportamento de UI sensível à plataforma em todo o framework (por exemplo, desabilitando o cursor de gamepad e a seleção por hover em mobile) através de um utilitário de plataforma compartilhado, além de um seletor de idioma baseado no Unity Localization com fallback para o idioma do dispositivo.

Tecnologias

  • Unity
  • C#
  • ScriptableObjects
  • Unity Localization
  • TextMeshPro
  • Unity Audio Mixer
  • Unity Input System
  • DOTween
  • UnityWebRequest
  • AES Encryption