Estudo de Caso
Plataforma orientada a dados para Morrowind, com pipeline próprio de extração, validação e modelagem de dados, ferramentas interconectadas e publicação versionada.
Os dados necessários para responder perguntas úteis sobre personagens, equipamentos, missões, comerciantes e viagens estavam distribuídos entre arquivos de jogo, plugins e comportamento do próprio engine. Diferentes perfis de jogo também podiam alterar ou sobrescrever esses dados. Consultar e reconciliar tudo manualmente não escalava.
Construí um pipeline separado da aplicação que extrai e normaliza os dados, preserva proveniência, gera catálogos por perfil e publica bundles versionados consumidos pelo site. Regras analíticas ficam separadas dos dados brutos, permitindo mudar critérios sem reprocessar toda a extração.
O pipeline valida versões, snapshots, hashes, contagens de registros e contratos entre produtor e consumidor. Dados incompatíveis, desatualizados ou incompletos interrompem a publicação em vez de chegar silenciosamente ao produto.
Um bug real mostrou por que isso importa: um campo de condição pertencente a um container estava sendo interpretado como a condição dos itens dentro dele. Isso fazia equipamentos caros parecerem quebrados, alterava seu valor calculado e contaminava recomendações de início de jogo. A correção ajustou a interpretação do dado e adicionou testes de regressão para impedir que a mesma classe de erro voltasse.
Os mesmos dados alimentam ferramentas interconectadas de build, level-up, alquimia, equipamentos, viagens, facções e outros sistemas. O estado do personagem acompanha o usuário entre ferramentas, permitindo que cada cálculo seja feito para o personagem que ele realmente está jogando.
A implementação usa agentes de codificação especializados com responsabilidades separadas para aplicação, pipeline de dados e arquitetura de interface.
Minha responsabilidade está em:
Os agentes trabalham com limites explícitos de responsabilidade e contratos compartilhados entre os módulos.
Uma aplicação publicada com pipeline de dados independente, bundles versionados e ferramentas interconectadas que operam sobre dados validados — do arquivo de jogo ao produto no ar.