А как ты сделал, чтобы боты свободно бегали сквозь друг друга? Через AiMoveTo и навигационую сетку, у меня они на узкой полосе начинают тупить, создают друг другу препятсвие, при этом колизия отключена.
Здравствуйте!
На протяжении последних восьми месяцев я усилено изучал прекрасно всем нам известный движок — Unreal Engine 4. Изучение проходило в контексте разработки одной конкретной игры — я пытался воспроизвести геймплей Hotline Miami (рабочее название игры FUBAR).
Что реализовано:
- Игрок может:
- Подобрать оружие.
- Использовать оружие.
- Бросить оружие — при по попадании по противнику, тот отрубится. Летит оружие по физике и способно вырубить противника, пока не коснётся чего-либо.
- Нейтрализовать противника ударом двери.
- Спец способность (демонстрация ниже в видео)
- Противники (боты):
- Начальные состояния — стоит неподвижно, патрулирует по указанным точкам, рандомная ходьба, преследует героя.
- Реакция на трупы союзников — это многих напрягало в HM. если бот видит труп «друга», то он подбежит к нему и переходит в состояние «В тревоге».
- Режим «В тревоге» — скорость перемещения бота приравнивается скорости перемещения героя. Увеличивается скорость реакции. Режим активируется, когда бот видит противника, видит труп союзника, слышит выстрел или просыпается после отключки.
- Реакция на громкие звуки (выстрелы, взрывы) — боты бегут на звук.
- Реакция на союзников — если бот видит встревоженного друга, то он переходит в режим «Тревоги». Если бот видит друга, который бежит в атаку, то он тоже бежит атаковать того же противника.
- Разделение на команды — боты могут сражаться друг с другом, а не только с героем — реализована простенькая система команд.
- Умеют искать оружие — если бот решит атаковать, а оружия в руках не будет, то сначала он побежит к ближайшему и подберёт его.
Довольно скоро (в апреле 2020 года) пришло осознание, что доделать игру сейчас я не смогу, так как не умею анимировать и моделировать. Было решено поубавить аппетит и сделать что-то попроще, например, мини-игру из Nier: automata — простейшую стрелялку видом сверху, в стиле lowpoly и не требующую анимации.
В спустя несколько дней удаления всего лишнего получилось что-то вроде этого:
А спустя ещё три месяца имею следующее:
Что появилось:
- Открытие уровней и сохранение прогресса
- Пользовательский интерфейс
- Простенькая система переключения музыки — при рестарте не прерывается, а продолжает играть. Если в следующем уровне должна играть та же музыка, что и в предыдущем, то она также не прервётся.
- Аптечки
- Собственные модельки и спецэффекты.
Что изменено:
- Упрощены боты — в какой-то момент научил их обходить друг друга, но в процессе тестирования игры понял, что они так только сильнее путаются и мешают друг другу (возможно к этому потом вернусь), поэтому сейчас они свободно проходят насквозь. А ещё их теперь нельзя вырубить дверью.
- Оружие нельзя бросить, можно только сменить.
- Пропало оружие ближнего боя, но появилось лучевое.
Игру назвал Hello Ugly World (HUW), как "hello world". Думал, что эту сумею довести до конца и выпустить, но и тут возникли сложности...
Когда все механики были более-менее доработаны, противники и вооружение настроены, я приступил к проектированию первого уровня.
На данный момент HUW в целом завершена, всё что мне осталось, это шлифовка геймплея и наполнение контентом (звуки, музыка, модельки и уровни). Моделировать простенькие ассеты я научился (их вы и видите в последнем видео). Звуки выстрелов, в силу визуального стиля, также можно и самому сделать (те, что уже есть - это один звук из одного музыкального трэка, тональность которого меняется самим движком отдельно для каждой пушки). Музыкальным талантом не обладаю, и думаю сразу заметно — те трэки, что Вы могли услышать, были написаны с помощью https://beepbox.co. Вопрос с музыкой планировал решить заказом у какого-нибудь малоизвестного исполнителя DarkWave или что-то похожее.
А вот с уровнями не задалось, и проблема в большей степени техническая… копм не тянет освещение. При этом я полностью отказался от текстур, и просто крашу модели в какой-нибудь цвет.
Процессор — HexaCore AMD Phenom II X6, 2920 MHz Видеокарта — NVIDIA GeForce GTS 450 (1 ГБ)
Записывать демку пришлось в разрешении 1280х720 и без динамических теней.
Если кому надо — ссылочка на архив с игрой
Планы на будущее:
- Переделать модельки ботов в Blender — первое время все модели создавал в самом движке, что было большой ошибкой.
- Кампания - в какой-то момент появилась идея сделать полноценную кампанию с постепенным переходом от понятных локаций к максимально абстрактным конструкциям. В демке можно заметить, что некоторые боты различаются по цветам: черно-зелёные, бело-синие и черно-красные - это условные фракции, и каждый герой относился бы к одной из них. А «сюжет» сводился бы к простой цикличности — каждый следующий герой убивает предыдущего.
- Геймплей -в целом подкорректировать управление и стрельбу (что-то с ней не так… возможно из-за фризов на моём компе). Добавить объекты взаимодействия (лифт, ловушки, турели).
Лучшие комментарии

Да, юзаю navmesh и aimoveto. Чтобы они не толпились наследовал aicontroller от detouraicontroller — он умеет обходить других ботов. Ну и просто стоит настроить агенты навмеша в настройках проекта.
Извиняюсь за долгий ответ, надеюсь это кому-то поможет