¿Cómo hacen un seguimiento de los zombis NPC en Left 4 Dead?
Estoy hablando de los NPC que simplemente caminan hacia las paredes o deambulan sin rumbo fijo. Aunque los jugadores no pueden verlos, están allí (por ejemplo, dentro de las habitaciones o detrás de las puertas). Digamos que hay alrededor de 10 zombis en un pasillo y dentro de las habitaciones. ¿El juego mantiene a todos esos zombis en una lista e itera dándoles comandos? ¿Se generan simplemente cuando el usuario está dentro de un cierto radio o llega a una ubicación especial?
Digamos que colocaste las 4 unidades (controladas por jugadores) en lugares completamente diferentes en todo el mapa. Supongamos que no estás siendo enjambrado y luego no has matado a ninguno de estos NPC sin objetivo. ¿Sería el juego un seguimiento de 10 x 4 = 40 zombies en total?
¿O mi comprensión está completamente fuera de lugar?
La razón por la que pregunto es si tuviera que implementar algo similar en un dispositivo móvil, hacer un seguimiento de 40 o más NPC podría no ser una gran idea.
fuente
Respuestas:
Te interesa el artículo que se encuentra aquí:
Sistemas de IA de Left 4 Dead
fuente
No he leído el documento al que ChrisE escribió un enlace, pero ya sea por una conversación que tuve con un empleado de Valve o en algún lugar de su Wiki de Desarrollo (no recuerdo cuál) recuerdo haber sido informado de que esencialmente solo tienen un par de entidades reales (el director de IA); los avatares que ves retratando los NPC infectados son solo "títeres de dedo" para esas entidades. Hicieron esto para mantener el número de entradas de edicto (diccionario de entidades) al mínimo ya que obviamente hay un montón de NPC infectados para realizar un seguimiento.
El diccionario de entidades del motor tiene un tamaño fijo y no puede crecer. Esto significa que cualquier juego construido en este motor que requiera una gran cantidad de NPC, o cualquier otra entidad, debe hacer uso de dicho sistema para que el motor funcione correctamente y no se ahogue (y finalmente se bloquee) porque El recuento de entidades es demasiado alto.
fuente
No puedo hablar sobre cómo funciona la implementación Left 4 Dead, pero puedo decir cómo probablemente lo haría.
Iría por algo como su segunda opción, rastrearía a cada jugador y solo cargaría PNJ cuando los jugadores pasen los puntos de activación. La clave en un sistema como este es hacer que los puntos de activación estén lo suficientemente lejos del jugador como para que no puedan asociar esos
walking past this fence post
factoresthat car to blow up, and shoot a zombie at them.
Probablemente tendría una colección de NPC activa, que los puntos de activación agregan o eliminan NPC de la colección. Esto le permite gastar recursos de CPU / GPU en NPC con los que los jugadores realmente están interactuando, pero le brinda la flexibilidad de cargar NPC en cualquier momento.
Piensa en un jefe que puede escuchar sonidos, tal vez el jefe esté cargado al comienzo del mapa y si el jugador que pasa por el mapa hace mucho ruido (granadas, bombas de tubo, etc.), el jefe buscará al jugador y atacará. de la nada, en lugar de esperar hasta que el jugador llegue a la arena del jefe.
fuente