Como eles acompanham os NPCs em Left 4 Dead?

11

Como eles controlam os zumbis dos NPCs em Left 4 Dead?

Eu estou falando sobre os NPCs que simplesmente caem nas paredes ou vagam sem rumo. Mesmo que os jogadores não possam vê-los, eles estão lá (digamos, dentro de salas ou atrás de portas). Digamos que haja cerca de 10 zumbis no corredor e dentro dos quartos. O jogo mantém todos esses zumbis em uma lista e interage com os comandos? Eles apenas aparecem quando o usuário está dentro de um determinado raio ou alcançou um local especial?

Digamos que você colocou as 4 unidades (controladas pelos jogadores) em lugares completamente diferentes ao longo do mapa. Vamos supor que você não esteja sendo invadido e não tenha matado nenhum desses NPCs sem objetivo. O jogo estaria acompanhando 10 x 4 = 40 zumbis no total?

Ou meu entendimento está completamente errado?

A razão pela qual pergunto é se eu deveria implementar algo semelhante em um dispositivo móvel, manter o controle de 40 ou mais NPCs pode não ser uma ótima idéia.

f20k
fonte
1
Eu vi uma apresentação feita pela Valve explicando tudo sobre os zumbis em L4D. Eu não consigo encontrar isso.
The Duck Comunista
2
@ O Pato Comunista - Isso seria muito útil. Por favor, poste se você o encontrar. A única coisa que posso encontrar on-line são as perguntas frequentes sobre jogos.
F20k

Respostas:

24

Você está interessado no artigo encontrado aqui:

Sistemas AI de Left 4 Dead

ChrisE
fonte
Sim, é exatamente isso que estou procurando, obrigado!
F20k
1
Sem problemas. Para nossa sorte, os desenvolvedores têm a gentileza de publicar suas publicações.
21411 ChrisE
4

Não li o artigo para o qual ChrisE escreveu um link, mas a partir de uma conversa que tive com um funcionário da Valve ou em algum lugar do Wiki de desenvolvimento (não me lembro qual) lembro de ter sido informado de que eles basicamente têm apenas alguns entidades reais (o diretor de IA); os avatares que você vê retratando os NPCs infectados são apenas "fantoches de dedo" para essas entidades. Eles fizeram isso para manter o número mínimo de entradas de edital (dicionário de entidades), uma vez que obviamente existem muitos NPCs infectados para acompanhar.

O dicionário de entidade do mecanismo tem um tamanho fixo e não pode crescer. Isso significa que qualquer jogo criado neste mecanismo que exija uma grande quantidade de NPCs - ou qualquer entidade nesse sentido - precisa usar esse sistema para que o mecanismo funcione corretamente e não engasgue (e, no final, trava) porque a contagem de entidades é muito alta.

Cale
fonte
Você sabe que outros tipos de entidades existem? Os infectados especiais seriam entidades? Estou tendo problemas para entender "entidade" vs "fantoche de dedo" quando posso interagir com o NPC infectado.
F20k
1
Especiais são entidades. A maneira mais fácil de determinar o que é real e o que é falsificado é assistir ao console. Você pode receber dano de outros jogadores, de especiais por nome, mas quando você recebe dano de bens comuns, o console mostra que você está recebendo dano por "mundo" (iirc).
Rob N
Sim, entendo o seu ponto. Eles apenas se amontoam ao meu redor e fazem uma animação emocionante. Isso é muito interessante, obrigado.
F20k
Provavelmente, a melhor maneira de explicar como o conceito de "fantoche de dedo" funciona é comparando-o a um cão pastor. Há um 'controlador' (por exemplo: o cachorro) e um rebanho (ou horda neste caso) de 'fantoches' (por exemplo: ovelhas). Os 'fantoches' não podem pensar por si mesmos, eles fazem apenas o que o controlador os instrui a fazer. Os bonecos são basicamente uma extensão da entidade controladora, mas em vez de usar um único elemento visual, como o caso de infectados especiais, eles usam vários elementos visuais que são controlados de forma independente.
Cale
1

Não posso falar sobre como a implementação do Left 4 Dead funciona, mas posso dizer como provavelmente faria isso.

Eu usaria algo como sua segunda opção, rastrear cada jogador e carregar NPCs apenas quando os jogadores passarem dos pontos de gatilho. A chave em um sistema como este é afastar os pontos de gatilho do jogador, o suficiente para que eles não consigam associá- walking past this fence postlos.that car to blow up, and shoot a zombie at them.

Eu provavelmente teria uma coleção de NPCs ativa, cujos pontos de gatilho adicionam ou removem NPCs da coleção. Isso permite que você gaste recursos de CPU / GPU em NPCs com os quais os jogadores estão realmente interagindo, mas oferece a flexibilidade de carregar NPCs a qualquer momento.

Pense em um chefe que pode ouvir sons, talvez o chefe esteja carregado no início do mapa e, se o jogador percorrer o mapa emite muito barulho (granadas, bombas de tubulação, etc.), o chefe procurará o jogador e atacará do nada, em vez de esperar até que o jogador chegue à arena do chefe.

Nate
fonte