9

RED COAST || Двери

"Гениальные двери: как кусок дерева с петлями доводит ИИ до истерики"

Вступление (или «За что ненавидят двери все, кто их программирует»)

Ах, двери! Казалось бы, что может быть проще? Деревяшка на петлях, которая открывается–закрывается. Но нет — в мире игрового ИИ это не дверь, а настоящий квест на выживание. Особенно если это не просто дверь, а, скажем, распашная дверь (читай: "кошмар разработчика"). А если добавить лифты? Поздравляю, ваш ИИ теперь официально в аду.

В этой статье мы с грустной иронией разберём, почему двери — это худшее, что случалось с игровым ИИ после патчей Day One, как мы (через боль) заставили их работать, и какие "гениальные" альтернативы можно придумать, чтобы не сойти с ума.

Почему двери — это проклятие для ИИ? (спойлер: потому что всё)

  1. "Динамическая геометрия" (или "Навигационный меш больше не ваш друг")
    Стены — статичны, пол — статичен, даже эти унылые вазы в углу не двигаются. Но двери? О нет, они должны шевелиться! И теперь ваш NavMesh, который строился с таким трудом, превращается в хаотичный пазл, который надо пересчитывать каждые полсекунды.

  2. "Направление открывания" (или "Почему ИИ всегда толкает дверь не туда")
    Казалось бы, логика проста: если дверь открывается от себя, то толкать её на себя — плохая идея. Но ваш ИИ так не думает. Он будет биться лбом в дверь, как пьяный студент в закрытый ночной клуб, пока не сломает физику или вашу психику.

  3. "Конфликты с физикой" (или "Добро пожаловать в дверной ад")
    Дверь задевает персонажа? Отлично! Теперь у вас есть:

  • Персонаж, который дрожит, как в лихорадке.

  • Дверь, застрявшая между измерениями.

  • NPC, который навсегда слился с дверью в экзистенциальном объятии.

Как мы "решили" проблему (спойлер: костылями)

  1. "Двери теперь открываются от игрока (потому что ИИ не способен на большее)"
    Чтобы избежать сцен, достойных черной комедии, мы просто заставили двери отъезжать в противоположную сторону от того, кто к ним подходит. Да, это лишает их "реализма", но, как показывает практика, реализм — это когда ИИ не застревает в дверном проёме навеки.

  2. "Невидимая геометрия (или 'Давайте просто нарисуем ещё один хитбокс, никто не заметит')"
    Наш гениальный план:
    • Добавляем коллизии, которых нет.
    • Говорим NavMesh'у, что они есть.
    • Надеемся, что игроки не спросят, почему их персонаж обходит "невидимую стену" рядом с дверью.

"Советы" по реализации дверей (читай: как не сойти с ума)

  1. "Используйте раздвижные двери (потому что распашные — зло)"
    Шутеры? Гоночные игры? Да что угодно! Раздвижные двери — это как читы в реальной жизни: они не создают проблем, потому что им всё равно.

  2. "Оптимизируйте навигацию (или 'Просто сделайте вид, что оптимизировали')"
    Если вам очень хочется распашных дверей — хотя бы притворитесь, что продумали, как NavMesh будет обновляться. (Спойлер: он всё равно сломается.)

  3. "Тестируйте крайние случаи (и плачьте)"
    Обязательно проверьте:

  • Что будет, если 10 NPC попробуют пройти в одну дверь одновременно (спойлер: это будет "человеческий муравейник").

  • Что произойдёт, если дверь застрянет между ящиком и NPC (правильный ответ: "физика сдаётся").

  • Как ИИ отреагирует, если дверь внезапно исчезнет (подсказка: очень плохо).

Заключение (или "Просто уберите двери из игры")

Двери — это маленький, но исключительно болезненный элемент геймдизайна. Если вы хотите сохранить свои нервы — делайте их максимально примитивными. А лучше вообще замените их шторами. Или порталами. Или просто дыркой в стене.
Потому что, в конце концов, лучшая дверь — это отсутствие двери.(Но если вы всё же решили их оставить… наши соболезнования.)

"Дверные" результаты с видео и картиночками в телеге...

Правила сообщества

ОБЩИЕ ПРАВИЛА:

- Уважайте чужой труд и используйте конструктивную критику

- Не занимайтесь саморекламой, пишите качественные и интересные посты

- Никакой политики


СТОИТ ПУБЛИКОВАТЬ:

- Посты о Вашей игре с историей её разработки и описанием полученного опыта

- Обучающие материалы, туториалы

- Интервью с опытными разработчиками

- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе

НЕ СТОИТ ПУБЛИКОВАТЬ:

- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры

- Посты, единственная цель которых - набор команды для разработки игры

- Посты, не относящиеся к тематике сообщества

Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.

ЗАПРЕЩЕНО:

- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции

- Выдавать чужой труд за свой

Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.


О РАЗМЕЩЕНИИ ССЫЛОК:

Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:

- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества

- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз

- Cсылка размещается в формате: "Страница игры в Steam: URL"