Único programador da sequência · Signum Ludens Academy
Fabulamente 2
Uma base existente, uma nova experiência. Evoluí o Fabulamente 1 com customização de cenários, refatoração de gameplay e ferramentas de desenvolvimento.
Trabalho em equipe. Fui responsável pela programação da sequência. A base do primeiro jogo já existia; trabalhei com profissionais de arte, game design e áudio.
O projeto
O Fabulamente 2 é a sequência de um jogo educacional da Metacognitiv. Meu trabalho partiu de uma nova branch do Fabulamente 1: adaptar a base existente, implementar a experiência da sequência e integrar o conteúdo produzido pela equipe.
O produto foi lançado para uso restrito à Metacognitiv. Não há uma versão jogável disponível neste portfólio.
Como contexto da série, a página oficial do primeiro Fabulamente descreve uma proposta de treinamento de funções executivas. Essa referência apresenta o primeiro jogo; não é uma página da sequência nem uma demonstração dos resultados do meu trabalho.
Meu papel
Entre 2 de abril e 26 de novembro de 2024, fui o único programador do Fabulamente 2. Assumi a programação sobre a base herdada, colaborando com os designers para transformar as necessidades do projeto em sistemas e configurações de conteúdo.
- Customização de cenário: seleção, prévia, compra, persistência e regras de compatibilidade entre elementos.
- Evolução da base: refatoração de gameplay, componentes de interação e separação entre estado e apresentação.
- Implementação de conteúdo: interfaces, tutoriais, transições, animações e áudio, em colaboração com as respectivas especialidades.
- Ferramentas de desenvolvimento: painéis de debug para inspecionar e manipular estados do jogo.
- Integração com a Metacognitiv: implementei a integração para coleta de dados. Os detalhes dessa parte permanecem confidenciais.
Decisões de programação
01Customização: códigos que organizam o cenário
Problema
Os elementos de customização precisavam formar um cenário coerente. Itens que ocupavam posições incompatíveis não podiam permanecer equipados juntos, mesmo quando apareciam em categorias diferentes do menu.
Minha decisão
Criei uma convenção de códigos para representar a ocupação dos elementos. Compartilhei em uma planilha com os game designers os códigos que cada elemento deveria seguir. A regra de composição passou a ser um acordo entre implementação e criação de conteúdo.
Implementação
Ao equipar uma variante, o sistema compara seu código com os elementos ativos nos grupos configurados. Quando identifica uma posição incompatível, retira o elemento anterior e aplica o novo. O posicionamento e as camadas visuais são definidos nos prefabs; a decisão de compatibilidade usa os códigos.
Evolução
A implementação ganhou categorias, prévia antes da compra e persistência dos itens comprados e equipados. Uma revisão posterior ampliou a verificação de incompatibilidade para grupos diferentes, cobrindo conflitos que não podiam ser resolvidos olhando apenas a categoria selecionada.
Resultado
O código reúne seleção, substituição de elementos incompatíveis e recuperação das escolhas salvas. Para o design, a planilha tornou explícita a configuração esperada de cada elemento. A regra de compatibilidade ficou concentrada no sistema, em vez de exigir uma condição nova para cada par de itens.
Aprendizado
Um sistema configurável também precisa de uma linguagem compartilhada com quem produz o conteúdo. Documentar os códigos foi parte da solução de programação, porque a composição dependia tanto da regra quanto da configuração dos elementos.
02Evoluir uma base legada por responsabilidades
Ponto de partida
Recebi uma base pronta, com comportamentos presos a referências e hierarquias específicas de cena. A sequência precisava evoluir essa estrutura enquanto recebia novos sistemas e conteúdo.
Abordagem
Fiz mudanças por sistema, conforme as necessidades da sequência. Em um dos minigames, separei a coordenação da atividade do comportamento de cada elemento clicável. Em vez de controlar toda a apresentação percorrendo filhos da hierarquia, o elemento passou a encapsular suas animações e a comunicar a interação ao controlador.
Outro exemplo
Na área de cenário, a região comunica mudanças de progresso por eventos, e um componente próprio atualiza a apresentação visual. Essa divisão permite localizar a regra de progresso e sua representação em responsabilidades diferentes.
Resultado
A versão revisada mostra componentes próprios para interação, coordenação e apresentação. Ainda existem trechos legados e dependências concretas na base; o trabalho foi uma evolução incremental, com fronteiras mais claras nos sistemas alterados.
Aprendizado
Ao trabalhar sobre um projeto existente, uma refatoração precisa responder a uma necessidade concreta. Separar responsabilidades onde o novo conteúdo exigia mudanças foi mais útil do que tratar toda a base como uma reescrita.
03Ferramentas para inspecionar o gameplay
Problema
Inspecionar progresso, tutoriais e situações avançadas apenas jogando desde o início exige repetir etapas que não são o foco da investigação.
Ferramentas
Implementei painéis de debug com comandos para mudar níveis, concluir uma tentativa, alterar progresso, ajustar recursos de customização e reiniciar estados. Também adicionei informações visuais para inspecionar elementos do gameplay.
Resultado
Esses comandos oferecem acesso direto a estados que normalmente dependem de uma sequência de ações do jogador. O histórico também registra correções de bloqueios, reinicialização de atividades e ajustes no feedback dos tutoriais. Não há uma medição de tempo economizado apresentada neste estudo.
Design técnico
Meu diferencial de design aparece na implementação da experiência: apoiar a configuração de conteúdo, tornar o estado do jogo observável e ajustar feedback e fluxo com a equipe. A programação da sequência foi minha responsabilidade; o game design foi um trabalho colaborativo.
Stack e método
// base
- Unity 2019.4 · 2D
- C#
- TextMesh Pro · Unity UI
// sistemas
- Componentes e eventos
- Configuração no Inspector e prefabs
- Persistência de customização
// desenvolvimento
- Git · evolução em branch própria
- Painéis de debug
- Convenção de conteúdo documentada em planilha
Sobre este estudo
Este estudo descreve minha participação e soluções gerais. Não inclui código-fonte, assets do projeto, códigos reais da planilha, dados de usuários ou detalhes da integração com a Metacognitiv.
Os resultados apresentados são de implementação e colaboração no desenvolvimento. Atualmente não tenho acesso ao produto para jogá-lo.