TGViewer
Бессонный кодер Бессонный кодер @sleeplesscode · 4.24K subscribers
Post #569 1.58K
🧠 Где укрыться?

Один из самых базовых — и самых сложных — вопросов, который встаёт перед ИИ в The Last of Us. Потому что это не «сесть за ящик». Это — решение о выживании. А выживание, как и смерть — вещь нерациональная.

🔹 Сначала — сбор кандидатов:
ИИ ищет cover posts — это точки укрытия, заранее просчитанные в редакторе, с ориентацией против угрозы. Берутся ближайшие 20 штук на NPC. Каждая из них проверяется четырьмя лучами: можно ли стрелять из неё по игроку. Если хотя бы один луч блокирован — точка отбраковывается.

Параллельно находятся open posts — это точки для разведки: из них тоже стреляют лучи, но не по игроку напрямую, а в последнее известное его местоположение.

🎯 Всего за кадр может быть запущено до 160 raycast’ов — они же формируют исходный список точек, куда NPC в теории может пойти. Затем на оставшиеся точки запускается pathfinding, но не сразу — в порядке очереди, максимум 20 на кадр.

🔹 Потом — пост-селекторы (post selectors):
ИИ не выбирает точку сразу. Он передаёт весь массив данных в скриптовую систему. Всего в игре было 17 различных селекторов, каждый из которых подбирает точку под текущее состояние NPC: атака, уклонение, оборона, паника и т.д.

Каждый пост проходит через набор критериев — и каждый критерий выдаёт значение от 0 до 1. Эти значения перемножаются: итоговая точка — это та, у которой наивысший результат. Причём:

– Критерий ai-criterion-static-pathfind-not-near-player отбраковывает укрытия, путь к которым идёт сначала к игроку, а потом от него. Это частый баг в шутерах — когда NPC «хочет» пойти в дальнее укрытие, но для этого пробегает мимо тебя.
– Критерии можно обновлять на лету — всё написано на LISP и перезагружается без перезапуска.
– Все оценки точек идут асинхронно, заранее, поэтому ИИ мгновенно реагирует на смену ситуации — он всегда знает, куда ему двигаться, не тратя кадры на панику.

📌 И именно поэтому люди в The Last of Us кажутся живыми. Потому что они не бегают по скриптам, а взвешивают варианты, анализируют, не слишком ли они сблизятся с тобой при беге к укрытию.
В отличие от заражённых, человек в бою не инстинкт — он расчёт, страх, уклонение и агрессия. А у тебя на него — всего пара патронов.

#devblogTLoU #devblogTLoUAI
  • ❤ 30
  • ✍ 3
  • 🔥 2
  • 🍓 2
  • 💋 2
  • 👍 1
More from @sleeplesscode
  1. Oct 5, 2026Post #923
  2. Oct 1, 2026Post #914
  3. Sep 18, 2026Post #913
  4. Sep 17, 2026Post #912
  5. Sep 15, 2026Post #911
  6. Sep 14, 2026Post #909
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →