Acho que todo mundo está na bola com o nome "aggro", no entanto é provavelmente um comportamento emergente (efeitos colaterais de sistemas simples de regras, por exemplo, Boids ). Eu acho que provavelmente seria alcançado usando uma árvore de decisão ponderada. Para dar um exemplo de por que esse sistema teria resultados interessantes, considere isso:
Start
|
Player threat (based on player level, distance, DPS, etc.)
Very High High Low
| | |
Flee Fight Pass
Essa decisão seria executada para cada jogador e subgrupo mob (produto cartesiano) nas proximidades. A multidão inteira seguiria uma árvore de decisão como:
Start
|
Combined results
More flee More fight All pass
| | |
Flee Attack own fight result; Attack individuals
otherwise, attack the player
with most fight results.
- A multidão vê um grupo de jogadores se aproximando; e começa a se mover em direção a eles para atacar (a ameaça é baixa porque a distância é alta). Quando eles se aproximam, a ameaça se torna excessiva e eles correm (ou seja, percebem que morderam mais do que conseguem mastigar).
- Se o nível dos jogadores estiver baixo, diga que um jogador recebeu um item de nível muito alto e a multidão começa a atacá-los. De repente, um jogador produz DPS louco e a multidão foge.
- Se um jogador é mais ameaçador, a maioria da multidão se concentrará nele (portanto, sua mecânica agro-clássica).
- Uma equipe de jogadores assume um grupo que não deveria ser. A multidão se concentra em jogadores individuais para lhes dar uma chance de lutar; e se eles não puderem derrotar a multidão, alguns poderão se controlar.
O ponto aqui é que um sistema muito elegante, mas previsível, foi construído usando duas árvores de decisão muito simples.
nota lateral : Alguns dos resultados exigidos significam que a reavaliação não deve ocorrer por um prazo específico (por exemplo, Flee deve ser aplicado como um debuff 'Scared' dos anos 20); caso contrário, você obteria resultados muito estranhos (por exemplo, feedback infinito de ataques de fuga).
Além da modelagem "aggro" mencionada por Ricket, outro estado comum da IA é o "leashing". Se um NPC ficar muito longe de seu ponto de reprodução, ele volta para lá e rapidamente se recupera. Isso é para evitar kite excessivo .
fonte
Não tem nome verdadeiro. Não é nenhum tipo de algoritmo 'aceito'. É apenas barato e fácil de implementar como uma máquina de estado trivial. Se o inimigo estiver ocioso e o jogador estiver próximo o suficiente, troque o inimigo para agressivo. Os MMOs continuam a usá-lo porque é fácil trabalhar com eles.
fonte
A IA nos MMOs é bastante ignorante. Você está lidando com um mundo em que você tem potencial para alcançar milhões de jogadores com habilidades variadas. Se a IA nos MMOs estivesse realmente presente, você veria criaturas constantemente atacando seus curandeiros, depois perseguindo os usuários de tecidos, etc. Mas não vemos isso. Vemos um sistema que fornece uma saúde mob x e uma classificação de ataque, dependendo do seu nível, e uma facção em que ele se enquadra (o que o faz atacar pessoas cuja facção é diferente). Eles são executados (às vezes) quando a saúde <y, e podem acionar mais multidões para ajudar se a condição x for atendida. O sistema pode fazer um teste de DX para ver se o ataque / feitiço bate ou não, e vai a partir daí. Se um jogador está atacando muito (aumentando a ameaça), as criaturas se voltam para ele. Portanto, este sistema é muito, muito básico. Não há como um jogador casual jogar um '
A partir daí, entramos em alguns encontros "avançados" que atraem a multidão do núcleo duro. Mas mesmo estes não são totalmente automatizados pela IA - são eventos com script. Quando uma guilda de alto nível leva uma semana e descobre como matar o King of Dreams, eles podem passar os detalhes do encontro para jogadores casuais.
Lembro-me no EverQuest que você poderia iniciar uma conversa com os NPCs e desencadear ações diferentes dizendo certas coisas! Alguma IA linguística.
fonte
A primeira versão disso que eu já vi foi no antigo jogo roguelike Moria. Cada espécie de monstro tem um parâmetro aaf, que significa área de afetação. Se você está fora do aaf do monstro, ele não se move.
fonte