Core Keeper demonstra que a pixel art não está em conflito com a tecnologia moderna. Desenvolvido em Unity, o jogo combina sprites clássicos com um sistema avançado de iluminação por células que projeta sombras em tempo real. Cada tocha colocada pelo jogador modifica o ambiente, revelando minerais e inimigos ocultos na escuridão. Esse efeito é alcançado por meio de um buffer de luz que calcula a visibilidade por tiles, otimizando o desempenho mesmo em cenários com dezenas de fontes de luz ativas.
O motor de sombras por células em Unity 🎮
O truque técnico de Core Keeper reside em um sistema de iluminação 2D híbrido. Em vez de usar luzes pontuais tradicionais, o jogo emprega um shader personalizado que divide a tela em uma grade de células (tiles). Cada célula armazena um valor de luz que é atualizado dinamicamente de acordo com a distância das tochas. Isso permite que os sprites de personagens e objetos reajam ao contorno da escuridão sem a necessidade de cálculos complexos por pixel. Aseprite é a ferramenta chave aqui, pois permite projetar sprites com paletas reduzidas que mantêm sua legibilidade sob diferentes condições de iluminação, desde a penumbra azulada até o brilho quente do fogo.
Lições para desenvolvedores indie 💡
Se você busca replicar essa atmosfera em seu projeto, priorize a estrutura de dados sobre o realismo gráfico. Em Unity, use o sistema de Tilemap junto com um script que gerencie um array bidimensional de intensidade luminosa. Defina suas fontes de luz como objetos simples que modifiquem esse array em um raio específico. Aseprite te ajudará a criar variações de cor para cada sprite sob diferentes níveis de luz, evitando que a renderização em tempo real distorça a paleta original. O resultado é uma experiência imersiva onde a escuridão não é apenas um fundo, mas um mecanismo de jogo ativo.
Como se implementa em Unity o sistema de iluminação dinâmica de Core Keeper para fazer com que sprites de pixel art reajam a fontes de luz em tempo real sem perder a estética retrô
(PS: os shaders são como a maionese: se talham, começa tudo de novo)