Sistemas autônomos
Verdigris
Um roguelite 2D onde a física é a mecânica: nenhuma arma foi programada, todas emergem das propriedades dos materiais.
93
testes de invariante — a física precisa continuar obedecendo às próprias leis
- Condição
- 93 de 93 verdes no `cargo test` do crate de núcleo · a simulação roda sem abrir janela, então o teste não depende de renderizar nada
- Papel
- Autor, projeto próprio
- Contexto
- Projeto pessoal de simulação física e design de jogo
- Período
- 2026
- Situação
- Protótipo jogável
Verdigris é um roguelite 2D construído sobre uma simulação de falling-sand: cada pixel do mundo é um material com temperatura, densidade e estado, e todo o resto acontece por consequência. Está escrito em Rust, num workspace de dois crates — o núcleo de simulação não sabe que existe um jogo em volta dele, e o jogo não pode alcançar dentro da física para trapacear.
O princípio de design é o que torna o projeto interessante para mim: definir leis, nunca
artefatos. Não existe um lanca_chamas.rs. Existe combustão, existe propagação de calor,
existe um material inflamável — e um lança-chamas é o que acontece quando você aponta os
três na mesma direção. O ácido não tem uma lista de “coisas que dissolve”; ele reage com o
que a tabela de materiais disser que reage. A consequência prática é que mecânicas
aparecem sem que eu as tenha escrito, o que é ótimo, e bugs também, o que é menos ótimo.
Daí os 93 testes de invariante. Numa simulação emergente, um erro não aparece como
exceção: aparece como areia que sobe, calor que se cria do nada, ou massa que desaparece
num canto do mapa. Os testes verificam as leis diretamente — conservação, monotonicidade,
reversibilidade onde deve haver — e rodam sem abrir janela nenhuma, porque o núcleo é
puro. clippy e fmt são portão, não sugestão.
É um protótipo jogável, não um jogo terminado. O laço de progressão do roguelite existe mas é raso, e a performance ainda limita o tamanho do mundo. O repositório é privado.