O projeto My Work Is Not Yet Done demonstra que o horror não precisa de cor. Com uma paleta de apenas branco e preto puro, seu criador utiliza Unity e um pós-processamento em C# para aplicar dithering (pontilhado) em tempo real. O resultado é uma atmosfera angustiante que evoca um desenho a tinta, mostrando que as limitações técnicas podem ser o maior ativo expressivo no desenvolvimento de jogos independentes.
Implementação técnica do dithering em C# para Unity 🎮
Para obter esse efeito, é necessário criar um script de pós-processamento que itere sobre cada pixel da imagem renderizada. O algoritmo chave é o dithering de Bayer ou o de Floyd-Steinberg. Em vez de simplesmente limiarizar a imagem (o que perde detalhes), esses algoritmos comparam o valor de cinza de cada pixel com uma matriz de limiares (no caso de Bayer) ou distribuem o erro de quantificação para os pixels vizinhos (Floyd-Steinberg). No Unity, isso é implementado em um Shader ou em um script que processa a câmera através de OnRenderImage. É crucial desativar a filtragem bilinear da textura de saída e forçar a resolução para um valor baixo para potencializar o pixel art. Jogos como Return of the Obra Dinn usam uma abordagem semelhante, mas com uma paleta de 3 cores, enquanto World of Horror aplica um pontilhado mais estático. Para o seu projeto, recomendo começar com uma matriz de Bayer de 4x4, que oferece um bom equilíbrio entre desempenho e qualidade visual.
A narrativa do monocromático: por que o preto e branco funciona 🖤
Além da técnica, a escolha estética responde a uma necessidade narrativa. O preto e branco radical elimina a distração da cor, forçando o jogador a se concentrar nas formas, nas sombras e no movimento. O dithering, ao gerar texturas granuladas, evoca a ansiedade de um esboço nervoso ou de uma fotografia de arquivo perturbada. My Work Is Not Yet Done utiliza esse contraste extremo para ocultar detalhes no ruído visual, criando uma sensação de paranoia. Se você busca esse efeito em seu jogo, lembre-se de que a iluminação deve ser muito contrastada; uma luz direcional forte com sombras duras é a base perfeita para que o pontilhado faça sua mágica.
Para um jogo de horror que utiliza uma paleta de apenas branco e preto puro, como My Work Is Not Yet Done, como se pode implementar o dithering procedural no Unity para gerar texturas de 1 bit que mantenham a legibilidade visual e a atmosfera opressiva sem recorrer a escalas de cinza?
(PS: otimizar para mobile é como tentar colocar um elefante dentro de um Mini Cooper)