A IA simples de Elden Ring
Aprofundamento CEVIU
Aprofundamento
A IA de Elden Ring não depende de árvores complexas ou planejadores de busca, mas de uma pilha simples de objetivos em Lua, executados frame a frame. Cada entidade, inimigo ou chefe, mantém uma pilha de 'Goals', onde o topo é sempre o que está ativo. Quando um objetivo termina com sucesso ou falha, ele é removido da pilha, e o anterior assume o controle. Isso permite que comportamentos complexos, como sequências de ataques ou reações imediatas a eventos, sejam construídos com blocos pequenos e reutilizáveis, sem a sobrecarga de estruturas como Behavior Trees.
O sistema é imperativo e direto: os Goals são tabelas com funções de ativação, atualização e interrupção. A lógica de decisão fica dentro dessas funções, usando pesos aleatórios e condições simples, como nível de vida ou proximidade do jogador. Interações como o Hunter de Sino interromper o jogador ao lançar magia não exigem um motor de planejamento, só um callback de interrupção que desce a pilha até o ponto certo. Isso é eficiente, legível e acessível a designers, não só programadores.
Por que isso importa
Essa abordagem mostra que alta complexidade de comportamento não precisa de alta complexidade de arquitetura. Enquanto muitos jogos AAA investem em sistemas de IA com blackboards, árvores de dezenas de milhares de nós e planejadores de tarefas, FromSoftware mantém o núcleo da IA leve, em linguagem interpretada, e delega a riqueza ao design de animações e parâmetros. O resultado? Combates imprevisíveis, mas previsíveis o suficiente para serem ajustados por designers sem precisar recompilar código ou depurar árvores aninhadas. É um modelo de DX (experiência do desenvolvedor) que prioriza agilidade sobre abstração.
Linha do tempo
Análise revela que a IA de Elden Ring usa uma pilha de objetivos em Lua, não Behavior Trees ou planejadores complexos.
Perguntas frequentes
Como esse sistema de Goals difere de uma Behavior Tree?
Behavior Trees reavaliam toda a árvore em cada frame, mesmo que apenas um nó tenha mudado. O sistema de Goals de Elden Ring executa apenas o objetivo no topo da pilha, o que reduz drasticamente o custo de processamento. Além disso, o controle de fluxo é escrito em código imperativo dentro dos Goals, não em nós de controle como 'Sequência' ou 'Selector', tornando o código mais direto e mais fácil de modificar por designers.
Por que usar Lua e não C++ para toda a IA?
Lua permite que designers alterem comportamentos sem recompilar o jogo. O núcleo de funções críticas, como movimento e animação, ainda é feito em C++, mas a lógica de decisão, como quando atacar, quando fugir ou como reagir a um incêndio, fica em scripts Lua. Isso acelera o ciclo de teste e ajuste, essencial para combates que precisam de refinamento constante.
O que são 'interrupts' nesse sistema e como eles funcionam?
Interrupts são callbacks que disparam imediatamente quando eventos externos acontecem, como o jogador lançar uma magia ou o inimigo ser atingido por fogo. Eles sobem pela pilha de Goals, começando pelo atual, até que um deles trate o evento e retorne verdadeiro. Isso permite reações rápidas e contextuais sem precisar de monitoramento constante ou estado global.
Esse sistema pode ser usado em jogos modernos além de Soulsborne?
Sim. Ele é especialmente útil em jogos com inimigos com comportamentos distintos e personalizados, como jogos de ação, RPGs ou jogos cooperativos. A simplicidade da estrutura permite escalar com pouca sobrecarga, e a integração com animações já existentes torna a implementação mais barata que sistemas baseados em planejamento ou árvores complexas.
Fontes
- nega.tvfonte original
- Categoria
- CEVIU Web Dev
- Publicado
- 24 de junho de 2026
- Editoria
- CEVIU Web Dev
