Как они следить за НПС в Left 4 Dead?

11

Как они отслеживают NPC-зомби в Left 4 Dead?

Я говорю о NPC, которые просто заходят в стены или бесцельно бродят вокруг. Даже если игроки их не видят, они есть (скажем, в комнатах или за дверями). Скажем, есть около 10 или так зомби в коридоре, так и внутри помещений. Сохраняет ли игра всех этих зомби в списке и повторяет их команды? Они просто появляются, когда пользователь находится в пределах определенного радиуса или достиг специального местоположения?

Скажем, вы разместили 4 юнита (контролируемые игроками) в совершенно разных местах по всей карте. Давайте предположим, что вас не роят, и тогда вы не убили ни одного из этих бесцельных NPC. Будет ли игра отслеживание 10 х 4 = 40 зомби в общей сложности?

Или мое понимание полностью выключено?

Причина, по которой я спрашиваю, заключается в том, что если бы я реализовал нечто подобное на мобильном устройстве, отслеживание 40 или более NPC может быть не такой уж хорошей идеей.

f20k
источник
1
Я видел презентацию, сделанную Valve, объясняющую все о зомби в L4D. Я не могу найти это все же.
Коммунистическая утка
2
@ Коммунистическая утка - это было бы очень полезно. Пожалуйста, напишите, если вы когда-нибудь найдете его Единственное, что я могу найти в Интернете, - это часто задаваемые вопросы.
f20k

Ответы:

24

Вы заинтересованы в документе, найденном здесь:

AI системы Left 4 Dead

ChrisE
источник
Да, это именно то, что я ищу, спасибо!
f20k
1
Нет проблем. К счастью для нас, разработчики достаточно любезны, чтобы выложить свои публикации.
ChrisE
4

Я не читал статью, на которую ChrisE написал ссылку, но из разговора, который у меня был с сотрудником Valve, или где-то в их вики-разработке (не могу вспомнить), я помню, что мне сообщили, что у них, по сути, есть только пара реальные лица (директор ИИ); аватары, которые вы видите, изображающие зараженных NPC, являются просто «марионетками» для этих сущностей. Они сделали это, чтобы свести к минимуму количество записей эдикта (словаря сущностей), поскольку очевидно, что существует тонна зараженных NPC, которые нужно отслеживать.

Словарь сущностей движка имеет фиксированный размер и не может расти. Это означает, что любая игра, построенная на этом движке, которая требует большого количества NPC - или любой сущности в этом отношении - должна использовать такую ​​систему, чтобы движок функционировал должным образом и не подавлялся (и в конечном итоге падал), потому что количество объектов слишком велико.

Кейл
источник
Вы случайно не знаете, какие еще существуют сущности? Будут ли особые зараженные существа? У меня возникают проблемы с пониманием «сущность» против «марионетка пальца», когда я могу взаимодействовать с зараженным NPC.
f20k
1
Специальные предложения. Самый простой способ определить, что реально, а что фальсифицировано, это посмотреть на консоль. Вы можете получать урон от других игроков, от специальных по имени, но когда вы получаете урон от общего достояния, консоль показывает, что вы получаете урон от "мира" (iirc).
Роб Н
Да я вижу вашу точку. Они просто толпятся вокруг меня и сделать царапать анимацию. Это очень интересно, спасибо.
f20k
Вероятно, лучший способ объяснить, как работает концепция «пальчик-марионетка», - это сравнить ее с овчаркой. Существует один «контролер» (например, собака) и стадо (или орда в данном случае) «марионеток» (например, овца). В «марионетки» не могут думать сами за себя, они делают только то , что контроллер направляет их делать. Куклы в основном являются расширением объекта контроллера, но вместо того, чтобы использовать один визуальный элемент, например, в случае со специально зараженными, они используют несколько визуальных элементов, которые контролируются независимо.
Кейл
1

Я не могу говорить о том, как работает Мертвая реализация Left 4, но я могу сказать, как я, вероятно, сделать это.

Я бы пойти на то , как ваш второй вариант, отслеживать каждый игрок и загружать только NPC , когда игроки двигаются мимо триггерные точек. Ключ в системе , как это, чтобы сделать триггерные точки достаточно далеко от игрока , что они не в состоянии связать , что walking past this fence postспусковыеthat car to blow up, and shoot a zombie at them.

Я бы, вероятно, имел активную коллекцию NPC, триггерные точки которой либо добавляли, либо удаляли NPC из коллекции. Это позволяет вам тратить ресурсы CPU / GPU на NPC, с которыми игроки на самом деле взаимодействуют, но дает вам возможность загружать NPC в любое время.

Подумайте о боссе, который может слышать звуки, возможно, босс загружен в начале карты, и если игрок, проходящий по карте, издает много шума (гранаты, трубные бомбы и т. Д.), Босс будет искать игрока и атаковать. неожиданно, вместо того, чтобы ждать, пока игрок не достигнет босса.

Nate
источник