Voltar

Halloween Manor

Um jogo de Halloween para navegador: você é o fantasma de uma velha mansão sombria, possuindo retratos, espelhos e cadeiras de balanço para assustar os visitantes de lanterna na mão até que fujam pela porta da frente. Os visitantes são o mascote Triboo com fantasias de Halloween, feitos com a API do Tripo, do figurino à animação.

Autor: Theodore
Experimente ao vivo
Halloween ManorExperimente ao vivo

Descrição

Halloween Manor é um minijogo de Halloween que roda direto no navegador. Você é o fantasma de uma velha mansão sombria: os visitantes entram por conta própria, de lanterna na mão, e a sua missão é possuir os objetos da casa, escolher a hora certa de aparecer e fazê-los fugir aos gritos pela porta da frente, um por um. Até quatro visitantes podem estar na casa ao mesmo tempo, às vezes chegando em dupla, e cada um tem um nível de coragem diferente — as placas de identificação mostram quem é medroso e quem é cético.

Os objetos são de dois tipos. A caixinha de música e a porta da cozinha são iscas: fazem um som que atrai qualquer um que o ouvir. As luminárias, a cadeira de balanço, o retrato, o espelho de chão, além da cama e do guarda-roupa do quarto, são objetos de susto e só funcionam se alguém estiver olhando — um olho se acende acima de um objeto quando alguém consegue vê-lo naquele exato momento. A jogada básica é atrair primeiro e assustar depois: a caixinha de música faz par com a luminária do quarto, e a porta da cozinha, com a cadeira de balanço. O retrato mostra uma senhora comum até você possuí-lo: aí os olhos dela se viram e o rosto se derrete em algo horrível; do espelho de chão salta um rosto; e seis quadros de terror ficam pendurados nas paredes do hall de entrada, do corredor, do escritório, da sala de estar e do quarto.

Os visitantes só enxergam aquilo para onde apontam a lanterna. Quando um facho de luz cai sobre você, sua forma fica mais densa e eles param para olhar fixamente — mas só isso não basta para assustá-los. Pressione F ou clique com o botão direito para aparecer: as luzes próximas enfraquecem duas vezes, como lâmpadas com mau contato, e, 0,6 segundo depois, você toma a forma de uma figura escura e permanece assim por 1,5 segundo enquanto ergue a cabeça devagar. A aparição só assusta dois tipos de pessoa: quem está com a lanterna apontada para você e quem já está nervoso e consegue ver você. Quanto mais assustada a pessoa estiver, maior o impacto; por isso, use os objetos para abalar as pessoas primeiro e apareça para dar o golpe final. A aparição tem um tempo de recarga de 18 segundos.

Segure o botão esquerdo do mouse sobre um objeto por cerca de meio segundo para armar uma armadilha: a geada vai cobrindo o objeto, e a armadilha dispara sozinha quando alguém se aproxima. Você pode ter duas armadilhas ao mesmo tempo, e uma armadilha se desarma se ninguém chegar perto em 60 segundos. Quando a sua mira está sobre um objeto, surge no chão uma tênue linha de geada que marca até onde ele consegue assustar (ou atrair) as pessoas, e um pequeno olho antes do nome de um visitante se acende quando o seu próximo movimento vai pegá-lo. Depois que você age, a legenda ao lado da mira diz o que aconteceu — “Theo jumped” ou “No one saw it”.

Uma partida é uma noite de cerca de cinco minutos. O primeiro visitante entra logo no início e, depois, chega mais um a cada 12 segundos, até haver quatro na casa. Aos 3 min 20 s, a noite se fecha — a luz da varanda se apaga e mais ninguém chega —, e, aos 4 min 30 s, amanhece e quem ainda estiver lá dentro sai por conta própria. Quando o último vai embora, abre-se o livro de registro de visitantes: a hora em que cada um entrou, do que fugiu ou se saiu ao amanhecer, com uma frase final que depende de quantos você espantou. Não há pontuação, vitória nem derrota; escolha Keep haunting para continuar ou Another night para recomeçar.

Controles: com mouse e teclado, o jogo é em terceira pessoa — você é o fantasma. Clique para travar o mouse, flutue com WASD (atravessando paredes), olhe ao redor com o mouse e ajuste o zoom da câmera com a rodinha. Clique em um objeto a até 4 metros para possuí-lo, segure o botão esquerdo para armar uma armadilha e pressione F ou clique com o botão direito para aparecer. Esc libera o mouse e mostra todos os controles, M silencia o som e a qualidade gráfica fica no canto inferior direito. Você não consegue ver os visitantes através das paredes, então siga o som dos passos deles — fones de ouvido ajudam. Em celulares e tablets, a mansão vira uma casa de bonecas vista de cima: toque em um objeto para possuí-lo e gire a visualização. Esse modo não tem aparição, armadilhas nem quadros — assuste um visitante de novo antes que ele se acalme e ele vai fugir.

O recomendado é um navegador com WebGPU, como uma versão recente do Chrome ou do Edge; navegadores sem WebGPU passam automaticamente para WebGL2. O jogo é para um jogador, sem login nem download, mas o primeiro carregamento demora um pouco, porque é preciso baixar os modelos e compilar os shaders. A interface do jogo é em inglês.

Como o Tripo foi usado

Todos os personagens do jogo — os visitantes com suas lanternas e o fantasma que você controla — foram feitos com a API do Tripo; a casa, os móveis e os props são montados em código a partir de formas básicas, e os quadros, o retrato e o rosto do espelho são texturas 2D separadas.

  • Visitantes: Triboo, o mascote da VAST, a equipe por trás do Tripo, com quatro fantasias de Halloween — um vampiro vitoriano, um explorador noturno com um lampião, uma bruxa e um esqueleto desenhado à mão. Primeiro, com imagem para imagem do Tripo, o Triboo é colocado em T-pose, e as quatro fantasias partem dessa única imagem, então as proporções batem e o rigging sai limpo; uma segunda passada de imagem para imagem adiciona a fantasia, mantendo o corpo redondo e preto, o logo na frente e os tênis amarelos, com a roupa feita como acessórios de boneco de vinil: chapéus, capas e golas.
  • Modelos dos visitantes: cada imagem de fantasia é transformada em quatro vistas, e então um modelo com texturas PBR é gerado com multivista para 3D do Tripo. Em terceira pessoa, você vê os visitantes quase sempre de costas, e as quatro vistas acertam as capas e os xales na parte de trás; as texturas vêm sem iluminação embutida, para que as luminárias e as lanternas do jogo cuidem da iluminação.
  • Rigs e animação: após uma verificação de riggabilidade, o rigging automático do Tripo encaixa um esqueleto humanoide, e oito animações predefinidas do Tripo são aplicadas — parado, andando, correndo, olhando ao redor, com medo, fugindo e dois tipos de sobressalto. Antes da exportação, um script no Blender refina todos os visitantes da mesma forma: o corpo de bola, o chapéu e a capa se movem com o tronco como uma peça só, os acessórios junto às pernas não se esticam com elas, a contagem de triângulos é limitada e o root motion é removido. Cada visitante fica com cerca de 1,1–1,7 MB, com texturas WebP.
  • O fantasma: quatro imagens conceituais foram geradas com texto para imagem do Tripo, e a escolhida passou por imagem para 3D do Tripo, virando um modelo branco, sem textura — a névoa fria e translúcida, o modo como ela se adensa no facho de uma lanterna e a forma escura e sólida que o fantasma assume quando aparece são todos desenhados pelos próprios shaders do jogo, então ele não precisa de texturas. Depois, uma limpeza no Blender afundou o rosto dentro do capuz até formar uma cavidade profunda, deixou o modelo com menos de 8.000 triângulos e fez o bake da oclusão nos vértices, para que o interior do capuz e as dobras profundas escureçam.

Como roda no navegador

Não há motor de jogo: o jogo é construído diretamente sobre o renderizador WebGPU do three.js, com TypeScript e Vite, e muda automaticamente para WebGL2 em navegadores sem WebGPU. O build é um conjunto de arquivos estáticos com caminhos relativos, então o jogo abre a partir de qualquer subdiretório em qualquer hospedagem estática.

As lanternas são as luzes mais importantes da casa: cada visitante carrega uma, e cada uma projeta as próprias sombras. O shader do fantasma calcula, pixel a pixel, em quais cones de luz das lanternas ele está — dentro de um facho, ele se adensa, o contorno fica mais nítido e ele ganha um pouco do tom quente da lanterna, enquanto fora do facho continua sendo névoa fria. Quando aparece, ele troca para um material “sólido” escuro, que bloqueia a luz e escreve no buffer de profundidade, um pouco mais claro do lado em que uma lanterna bate. Conforme o fantasma atravessa paredes e móveis, eles se dissolvem ao redor dele, com geada nas bordas.

Todo o som é sintetizado ao vivo com Web Audio — não há um único arquivo de áudio no jogo. Os gritos, o rangido da cadeira de balanço, o zumbido elétrico da luminária, a caixinha de música, o susto sonoro quando o rosto salta do espelho e o som ambiente da casa são todos gerados em código. Quando você não consegue ver ninguém através das paredes, é pelos passos que você encontra as pessoas.

O botão de início espera até que a casa, a primeira fantasia de visitante e a pré-compilação dos shaders da casa inteira estejam prontas; clique nele e a noite começa em cerca de 20 milissegundos. As outras fantasias são baixadas em segundo plano enquanto você joga e entram no rodízio assim que seus pipelines são compilados. A oscilação das luzes é limitada para proteger jogadores fotossensíveis: nenhuma luz enfraquece mais de três vezes em um mesmo segundo. Os gráficos têm dois níveis, Alto e Baixo, e o Baixo renderiza a 75% da resolução.