← Últimos artigos
💻 computer science

Multi-threaded Recast-Based A* Pathfinding for Scalable Navigation in Dynamic Game Environments

Este artigo apresenta uma estrutura multithread que integra geração de malha baseada em Recast, suavização por curvas de Bezier e coordenação sensível à densidade para aprimorar o algoritmo de busca de caminho A* padrão, permitindo a navegação escalável e livre de colisões para mais de 1.000 agentes em ambientes 3D dinâmicos, mantendo altas taxas de quadros.

Autores originais: Tiroshan Madushanka, Sakuna Madushanka

Publicado 2026-02-05
📖 5 min de leitura🧠 Leitura aprofundada

Autores originais: Tiroshan Madushanka, Sakuna Madushanka

Artigo original sob licença CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). ✨ Esta é uma explicação gerada por IA do artigo abaixo. Não foi escrita nem endossada pelos autores. Para precisão técnica, consulte o artigo original. Ler aviso legal completo

Imagine que você é o diretor de um set de filmagem massivo e caótico. Você tem milhares de atores (agentes) que precisam se mover de um lugar para outro sem esbarrar uns nos outros, tropeçar em objetos de cena ou ficar presos em paredes. No mundo dos videogames, isso é chamado de pathfinding (busca de caminho).

Este artigo apresenta um novo "kit de ferramentas do diretor" para ajudar esses milhares de atores a se moverem de forma suave e eficiente, mesmo quando o set está constantemente mudando. Veja como eles fizeram isso, dividido em conceitos simples:

1. O Problema: A "Grade" vs. O "Mundo Real"

Tradicionalmente, os personagens de jogos se movem em uma grade invisível gigante (como um tabuleiro de xadrez).

  • O Problema: Se você tentar caminhar na diagonal em um tabuleiro de xadrez, terá que fazer ziguezagues. Isso parece robótico e travado. Além disso, se o set for enorme, o computador fica sobrecarregado tentando calcular cada quadrado para milhares de atores ao mesmo tempo, o que causa lentidão no jogo (lag).

2. A Solução: Um Mapa Mais Inteligente (Gráficos Recast)

Em vez de uma grade rígida, os autores construíram uma Malha de Navegação (NavMesh).

  • A Analogia: Imagine que o chão da sua casa não é uma grade de azulejos, mas um tapete liso e contínuo. O computador não se importa com "quadrados"; ele apenas vê o espaço aberto do chão.
  • A Magia: Eles usaram uma ferramenta chamada Recast para escanear automaticamente o mundo 3D e desenhar este "tapete" apenas onde os personagens podem realmente caminhar. Ela entende escadas, inclinações e tetos, transformando um mundo 3D complexo em um mapa simples e fácil de ler.

3. O Motor: A "Linha de Montagem" (Multi-threading)

Calcular um caminho para uma pessoa é fácil. Calcular o caminho para 1.000 pessoas ao mesmo tempo é como tentar resolver 1.000 problemas matemáticos com um único lápis.

  • O Jeito Antigo: Um único cérebro (a thread principal do computador) tenta resolver todos os caminhos um por um. Ele fica cansado, e o jogo trava.
  • O Novo Jeito: Os autores construíram uma linha de montagem. Eles contrataram uma equipe de trabalhadores (multi-threading). Enquanto um trabalhador calcula o caminho para o primeiro ator, outro já está trabalhando no segundo, e um terceiro no terceiro.
  • O Resultado: O jogo não espera. Ele continua rodando suavemente (mantendo mais de 350 quadros por segundo) mesmo com 1.000 atores se movendo ao mesmo tempo.

4. O Movimento: De "Robô" para "Humano"

Mesmo com um bom mapa, o caminho bruto de um computador parece uma linha irregular de cantos afiados.

  • A Correção: Eles adicionaram uma etapa de "suavização".
    • O Funil (Funnel): Primeiro, eles puxam o caminho apertado através dos "corredores" do mapa para remover paradas desnecessárias.
    • A Curva de Bezier: Depois, eles transformam esses cantos afiados em linhas curvas e suaves (como desenhar um arco perfeito com uma régua flexível).
  • O Resultado: Em vez de um robô girar a cabeça bruscamente em ângulos de 90 graus, os personagens deslizam naturalmente, fazendo curvas suaves como os humanos fazem.

5. O Controle de Multidão: O "Olhar de Águia" (Análise de Densidade)

Quando muitas pessoas tentam passar por uma porta, o caos acontece.

  • A Inovação: O sistema possui um "Olhar de Águia" que observa o quão lotada uma área está antes que os atores cheguem lá.
  • Como funciona: Se um ator vê que o caminho à frente está ficando muito cheio (como um engarrafamento se formando), ele não espera até bater na parede para parar. Ele imediatamente pede à "linha de montagem" uma nova rota, menos congestionada. Isso evita o efeito de "aglomeração", onde todos param ao mesmo tempo.

Os Resultados: O Que Eles Provaram?

Os autores testaram este sistema em 10 "fases" diferentes, começando com um labirinto 2D simples e terminando com um mundo 3D complexo com barcos em movimento, portas oscilantes e milhares de atores.

  • Velocidade: Com 1.000 atores se movendo ao mesmo tempo, o sistema manteve o jogo rodando a 350 FPS (muito rápido e fluido). Um sistema padrão teria caído para uma lentidão extrema (abaixo de 20 FPS) com apenas 200 atores.
  • Realismo: Os personagens não apenas caminharam; eles fluíram. Eles evitaram obstáculos, esperaram as portas abrirem e navegaram por plataformas móveis (como um barco balançando) sem cair.
  • Eficiência: O sistema foi inteligente o suficiente para saber quando recalcular um caminho e quando apenas continuar seguindo, economizando o poder de processamento do computador.

Em resumo: Este artigo descreve uma maneira de permitir que milhares de personagens de videogame se movam através de mundos complexos e mutáveis sem que o jogo fique lento ou que os personagens pareçam robôs desajeitados. Eles fizeram isso dando ao computador um mapa melhor, contratando uma equipe de trabalhadores para fazer os cálculos e ensinando os personagens a olhar à frente para evitar engarrafamentos.

Afogado em artigos na sua área?

Receba digests diários dos artigos mais recentes que correspondam às suas palavras-chave de pesquisa — com resumos técnicos, no seu idioma.

Experimentar Digest →