Ir para o conteúdo principal
Background Image
  1. Projetos/

Signal Lens

Tabela de conteúdos

Um Debugger Visual para os Signals do Godot

Meu Papel
#

Criador e Maintainer

Detalhes Técnicos
#

Notas de Desenvolvimento
#

Uma das funcionalidades do Godot que sempre apreciei bastante é o suporte nativo da engine para sinais, que são uma implementação interna do que você chamaria de eventos em C#, por exemplo.

No entanto, à medida que um projeto cresce dentro da engine, torna-se bastante trabalhoso acompanhar todos os sinais em qualquer momento da execução de um jogo. Enfrentei esse problema durante um projeto para um cliente no Studio Bravarda e decidi aproveitar a oportunidade para explorar a arquitetura de plugins do Godot e tentar criar uma solução que funcionasse para mim e para a comunidade.

Fiquei extremamente impressionado com o sistema e consegui colocar um plugin funcionando do zero em dois dias, fazendo exatamente o que eu queria: permitir visualizar todos os sinais de um nó em forma de grafo.

Decidi lançar o plugin como um projeto FOSS, e a recepção tem sido incrível. Espero continuar mantendo-o e ajudá-lo a crescer junto com o Godot. Com sorte, eu e outros colaboradores conseguiremos transformá-lo no depurador de referência para sinais no ecossistema Godot.

Funcionalidades
#

  • Clique em um nó na árvore de cena remota e veja instantaneamente todas as conexões de seus sinais
  • Visualize emissões de sinais em tempo real enquanto são emitidos no jogo
  • Selecione e reorganize uma visualização em grafo para inspecionar suas conexões de sinais
  • Congele as emissões de sinais para inspecioná-las depois
  • Modifique a velocidade de emissão dos sinais para ajustar a experiência às suas necessidades de depuração
  • Suporta inspeção de sinais internos e personalizados
  • Suporta inspeção de nós internos, nós personalizados e autoloads — se está na árvore remota, você pode inspecioná-lo.

Extras
#

Lancei um vídeo no meu canal do YouTube detalhando o processo de criação do plugin e compartilhando algumas lições aprendidas: