projeto

Neko

Reimplementação em Go do velho gato de desktop que persegue o cursor, com sprites clássicos, som e uma janela transparente usando Ebitengine.

1 artigos relacionados GitHub

Neko é o gato que persegue o cursor pelo desktop. O original é de 1989, do Masayuki Koba, e foi portado para tantas plataformas que virou parte da memória cultural de quem usou Mac ou X11.

Reimplementei em Go com Ebitengine. Não usei nada do código original – só sprites e sons, que reaproveitei direto. O resto é reescrita do zero, sem compromisso com o comportamento exato da versão antiga.

Neko perseguindo o cursor
Neko em ação

Fiz por nostalgia, mas também porque queria um exemplo bom para o Grupo de Estudos de Go com algumas dificuldades reais: janela transparente, sprite animado, captura de posição global do cursor, escala configurável. Coisas pequenas em que você não pensa, até tentar implementar.

O motor por baixo é o Ebitengine, biblioteca de jogos para Go que entrega janela, eventos, áudio e loop de renderização sem complicar. Para o Neko o encaixe é exato – nem mais, nem menos.

Roda em macOS, Linux e Windows. Para rodar precisa de CGO habilitado, dependência que o Ebitengine carrega por baixo.

export CGO_ENABLED=1
go install github.com/crgimenes/neko@latest
neko -scale 3 -speed 2

Flags: -scale ajusta o tamanho do gato, -speed a velocidade, -quiet desliga o som, -mousepassthrough deixa o cursor atravessar a janela do Neko quando precisa.