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.
fonte
Respostas:
Você está interessado no artigo encontrado aqui:
Sistemas AI de Left 4 Dead
fonte
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.
fonte
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 post
los.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.
fonte