Gamedev Владимир Семыкин
6 307

Все в бой: как ИИ работает в онлайн мире The Division

Виртуальные органы чувств и огромное количество данных.

В закладки
Аудио

В первой части разбора ИИ в The Division, была описана общая структура работы NPC. Пока игроки пробираются по улицам Нью-Йорка, они сталкиваются с различными персонажами: как друзьями, так и противниками. Действия NPC зависят от дерева поведения, которое основывается на нескольких атрибутах. Тем не менее незатронутым остался очень важный вопрос: как всё это работает в онлайн среде?

Автор блога AI and Games Томми Томпсон опубликовал вторую часть текста, в котором проанализировал многопользовательский компонент работы ИИ в The Division. Особое внимание он уделил вопросам того, как игра может предоставить одинаковый опыт разным пользователям, и как происходит процесс тестирования системы. Мы выбрали из материала главное.

Как ИИ работает в онлайне

The Division работает по модели «клиент — сервер»: каждый игрок со своей копией игры заходит на специальный сервер, который содержит информацию о том, что происходит в мире The Division.

В многопользовательской игре важно, чтобы не было расхождений между опытом пользователей, которые задействованы в одной и той же ситуации. Чтобы это требование выполнялось, все системы ИИ работают на стороне сервера. Это обеспечивает согласованность для всех пользователей.

Тем не менее это создаёт некоторую проблему, так как учёт всех аспектов, определяющих поведение NPC, требует обработки большого количества данных. Чтобы хоть как-то минимизировать этот процесс, на сервере просчитывается поведение ИИ, а уже сама анимация персонажей обрабатывается у каждого игрока отдельно.

Хоть такое решение и снижает нагрузку на серверы, оно, в свою очередь, порождает другую проблему, которая связана с передвижением NPC. Все неигровые персонажи в The Division используют систему animation-driven locomotion — подход, который учитывает кинематику и делает движения более плавными. Но если сервер не контролирует этот процесс, как он узнает, бежит ли персонаж к нужному месту?

Чтобы решить эту проблему, locomotion system на стороне сервера рассчитывает план движения персонажей, а на стороне клиента она создаёт траекторию на основе доступных анимаций. Хоть это и выглядит несколько усложнённо, зато позволяет снизить до минимума количество обрабатываемой информации.

Тем не менее существуют некоторые игровые события, которые одновременно должны обрабатываться и со стороны игроков, и на сервере. Например: лечение, бросание гранат и установка турелей. Это сделано для снижения количества данных, которые передаются между клиентом и сервером. В первые месяцы после запуска The Division некоторые игроки на ПК использовали недостатки этой системы, чтобы увеличить у своих персонажей количество здоровья и огневую мощь.

Управление миром

На каждом сервере The Division обычно размещается несколько экземпляров игровой карты, при возможности потенциально разместить до тысячи игроков. Чтобы справиться с большим количеством игроков и NPC, tick rate сервера равен 10 Гц. Это означает, что всё поведение и локации обновляются десять раз в секунду.

Интересно, что серверы не ограничивают количество NPC в игре, это происходит уже на стороне клиента. В ходе разработки было обнаружено, что консоли снижают количество одновременно функционирующих ИИ. Следовательно, существует ограничение на количество NPC, которые могут быть одновременно активными в игре.

Такая специфика особенно заметна в сюжетных миссиях, из-за чего бои постоянно прерываются передышками разной продолжительности. Это во многом происходит из-за специфики консолей.

Между тем, открытый мир сам устанавливает зоны, в которых NPC ограничены в перемещении. Это гарантирует то, что неигровые персонажи не будут уходить слишком далеко от их первоначальной точки появления. Например, это значит, что пользователи не столкнутся с войсками Последнего Батальона на Таймс-сквер.

К навигации и дереву поведения привязаны сенсорные системы NPC. Персонажи под управлением ИИ имеют конусы зрения и способность слышать звуки в зависимости от расстояния. Кроме того, они проводят тактический анализ того, какое из 1,5 миллиона укрытий, они должны использовать, если начнётся бой.

Скорость обновления этих сенсоров и их точность зависят как от расстояния до игрока, так и от активной системы погоды на сервере. Следовательно, плохая погода (дождь и снег) влияют на дальность и точность этих датчиков.

В бою сенсорная информация NPC обновляется каждый кадр; если игрок находится на расстоянии от 50 до 150 метров, то каждые две секунды; а если в пределах 150 метров нет игроков, то эта система отключается.

Инструменты для сборки и тестирования

Созданные во время разработки The Division инструменты тестирования позволили заранее выполнить полную отладку дерева поведения. Однако наиболее впечатляющей стала возможность тестирования в имитации реальной игры. Благодаря инструментам отладки можно было отследить появление многих проблем ещё на локальных серверах и не допустить их появления в финальной версии игры.

Самым забавным аспектом процесса тестирования стала отладка миссий. При создании игр такого масштаба небольшие ошибки могут стать непреодолимым препятствием для завершения заданий. Чтобы этого избежать, разработчики создали специальную тестовую модель, в которой сотни NPC, имитируя пользователей, бегали и убивали всё подряд.

Тысяча «игроков» с полным арсеналом способностей и улучшений оказались выброшены на карту. При этом, их не ограничивали даже физические объекты: они могли ходить и стрелять сквозь стены, а также перемещаться между локациями, игнорируя правила навигации.

Они могли собираться в группы и проходить сюжетные миссии или в одиночку исследовать открытый мир. У них не было реальной цели, но этот эксперимент помог выявить ошибки в миссиях, событиях, случайных встречах и так далее.

Система поведения The Division активно развивалась и дорабатывалась во время всего жизненного цикла игры. Что-то менялось не только с платными DLC вроде The Underground, Survival и Last Stand, но и с чередой более мелких бесплатных обновлений. Выход The Division 2 не за горами, поэтому особенно интересно посмотреть, как эти системы изменятся во второй части.

#геймдизайн #ии

{ "author_name": "Владимир Семыкин", "author_type": "editor", "tags": ["\u0438\u0438","\u0433\u0435\u0439\u043c\u0434\u0438\u0437\u0430\u0439\u043d"], "comments": 41, "likes": 101, "favorites": 103, "is_advertisement": false, "subsite_label": "gamedev", "id": 34089, "is_wide": false, "is_ugc": false, "date": "Thu, 13 Dec 2018 11:16:59 +0300" }
{ "promo": {"title":"Guns of Boom","order_id":0,"state":80,"description":"\u041e\u043d\u043b\u0430\u0439\u043d PvP-\u0448\u0443\u0442\u0435\u0440. \u0412\u0441\u0442\u0443\u043f\u0430\u0439 \u0432 \u0431\u043e\u0439!","email":"soldatenko@game-insight.com","button_text_id":7,"link":null,"app_store_link":"https:\/\/gunsofboom.onelink.me\/4289444349\/33db4f80","google_play_link":"https:\/\/gunsofboom.onelink.me\/4289444349\/33db4f80","color_id":0,"rejection_reason_text":null,"image":"{\"type\":\"image\",\"data\":{\"uuid\":\"d739e618-b339-faeb-7ab0-727ca32bf550\",\"width\":88,\"height\":88,\"size\":24774,\"type\":\"png\",\"color\":\"f1bb4f\",\"external_service\":[]}}","total":35500,"with_payment":false,"dates":"[{\"year\":\"2019\",\"month\":\"01\",\"day\":\"20\",\"available\":\"true\",\"price\":\"3500\",\"discount\":\"1500\",\"format\":\"backend\"},{\"year\":\"2019\",\"month\":\"01\",\"day\":\"21\",\"available\":\"true\",\"price\":\"5000\",\"discount\":\"0\",\"format\":\"backend\"},{\"year\":\"2019\",\"month\":\"01\",\"day\":\"22\",\"available\":\"true\",\"price\":\"5000\",\"discount\":\"0\",\"format\":\"backend\"},{\"year\":\"2019\",\"month\":\"01\",\"day\":\"23\",\"available\":\"true\",\"price\":\"5000\",\"discount\":\"0\",\"format\":\"backend\"},{\"year\":\"2019\",\"month\":\"01\",\"day\":\"24\",\"available\":\"true\",\"price\":\"5000\",\"discount\":\"0\",\"format\":\"backend\"},{\"year\":\"2019\",\"month\":\"01\",\"day\":\"25\",\"available\":\"true\",\"price\":\"5000\",\"discount\":\"0\",\"format\":\"backend\"},{\"year\":\"2019\",\"month\":\"01\",\"day\":\"26\",\"available\":\"true\",\"price\":\"3500\",\"discount\":\"1500\",\"format\":\"backend\"},{\"year\":\"2019\",\"month\":\"01\",\"day\":\"27\",\"available\":\"true\",\"price\":\"3500\",\"discount\":\"1500\",\"format\":\"backend\"}]","hits_count":90029,"scrolls_count":0,"clicks_count":116,"hits_limit":0,"scrolls_limit":0,"clicks_limit":0}, "link": "https://dtf.ru/redirect?hash=711a827f815242367f19babc34b72c1fdd1651f55cf4a641a5de6aeaea90816c&component=booster&id=40&type=daily&target=entry&url=", "buttonText": "Скачать", "location": "entry", "id": "40" }
{ "id": 34089, "author_id": 94357, "diff_limit": 1000, "urls": {"diff":"\/comments\/34089\/get","add":"\/comments\/34089\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/34089"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 64954, "possessions": [] }

41 комментарий 41 комм.

Популярные

По порядку

Написать комментарий...
4

Спасибо за второй кусок статьи, понравилось про тест, это жесть🤣🤣🤣 только блин ну поправьте батальон последних людей, ппц же, они последний батальон

Ответить
4

В игре потрясающий саундтрек, юбики уже какой раз удивляют в этом плане.

Ответить
0

О да. Щас погода соответствующая, второй день хожу с треками выживалки, каеф

Ответить
1

Подскажите пожалуйста, в одинучку в неё есть смысл играть? Подписки PS Plus нет.

Ответить
9

Мне показалось скучной.
Не обманывайся, это не шутан. Это ммо дрочильня.
Начиная с того что тебе нужно всаживать тонны пуль в противника, заканчивая перками полностью убивающими погружение.

Ну это частное мнение конечно.

Ответить
3

Там это, наномашины и техника дивижона у каждого бомжа после первой волны. Секретные технологии, все дела. Хз, игра одна из самых мощных по погружению и атмосфере, в которые я вообще играл.

Ответить
2

понял, спасибо. Пробежался по паре обзоров, вроде пишут что и в одиночку заходит. Ладно.

Ответить
2

Прошёл сюжет+кучка активностей за 31 час, немного посмотрел постгейм, не покупал длс. В целом рад, что поиграл. Атмосферно, сложность неплохая, ИИ приятный. Но играть как в ммо в неё не стал, есть другие игры для такого.

Ответить
0

Тяжко будет, я один до 25 уровня дошел, потом уже искал людей.

Ответить
3

Прекрасно играется в одиночку. я так её всю прошёл несколькими персонажами. потолок уровня (30) легко достигается и без команды. Но без подписки в неё не сыграешь. Требует постоянный онлайн.

Ответить
2

Очень приятная игра и красивая, купил ее год назад не раздумывая после того как поиграл в демо-версию.

Наиграл всего 46 часов за 5-6 дней плотной игры. Очень залип. Играл в одиночку.
Больше не играл т.к. мало свободного времени.

Рекомендую.

Ответить
0

Спасибо

Ответить
1

Играть одному можно спокойно, без подписки не поиграешь, и лучше уже подожди вторую часть!

Ответить
1

До 2ой части еще 3 месяца, а сюжетку первой можно пройти не напрягаясь за несколько недель. Поэтому в ожидании второй играть в первую то что нужно (если не играл).

Ответить
1

В коопе лучше, я часто с рандомами бегала, но раз подписки нет... Там иногда бесплатные выхи бывают

Ответить
1

Есть, пока проходишь сюжетку всё норм. Я бы даже сказал так даже предпочтительнее ибо одному удобнее за историей следить, не отвлекаешься. Но после последней миссии лучше в коопе, ибо дальше уже просто гриндилка.

Ответить
1

провел 100+ часов выполняя сюжет и собирая коллектблс за двух персонажей. следовательно – тебе надо будет 50 часов). все играл один. очень заходит

Ответить
1

Прошел в одиночку 80% контента, но те 20% что я проходил с рандомным чуваком были вообще вышкой, он был лвл на 5 ниже моего, а там и так тяжело было в соло, а когда еще кого то и тащить
как же нас там ебали))
Был момент когда на боссе операции пришлось отходить вглубь карты процентов на 20%, настолько давили)
Мне сюжет и концепция мира понравилась, в одиночку играть кайф, собирать истории отдельных людей, мир
Очень рекомендую купить еще и дополнение выживание, на скидке выйдет около 3 баксов?
Но денег своих стоит, вот там зима вообще улет)

И еще, тут реально нужно самому брать и играть
Я два года читал meh отзывы в коментах и не хотелось в нее даже играть, видео вообще не передают ту атмосферу!
Решил посмотреть на нее в бесплатные выходные и понеслось)

Ответить
0

Сюжета там часов на 20-30 и оно отлично играется в соло. Ну, точнее, если тебе не нужны "катсцены-катсцены-скрипты-катсцены". Атмосферно и интересно геймплейно. ТЗ тоже соло офигенно, но фиг знает пустят ли туда без плюса.

Ответить
0

Мне очень зашло. Видимо рассчитано на людей с определенным складом характера. Мне очень нравился темп игры и исследование Манхэттена.

Ответить
0

как ИИ работает в онлайн мире The Division

Вот так:

Ответить
10

Фигасе! Я не знал, что в играх бывают баги/глючи!

Ответить
1

Крепкий мужик, наверное много морковки кушал

Ответить
3

Самая идиотская притенения к Дивижену - что враги очень толстые, что по 5 рожков нужно в них выстреливать... азаза как же так, тут же не фентези... азаза не реализм... азаза.

Это обычная игровая условность. Никому не будет интересно играть в ММО, где все враги будут умирать от 1 пули в голову из пистолета (на кой черт тогда вообще какое-либо разнообразие оружия, если все и так будут умирать как в "жизни").

Ответить
3

Вот именно. Для таких азазелей сделали отличный Wildlands. Почему-то, когда орка нужно 100 раз топором по голове ударить, никто не бесится.

Ответить
0

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

Ответить
4

Сууууууука, всё равно находят способы...
А орк видимо не убивает человека с одного удара топора видимо из-за того, что я не могу знать насколько орк слаб и сколько ему может потребоваться ударов топором по человеку, чтобы человека убить! Логика!

Ответить
1

Я предполагаю)

Ответить
0

Ахах, неплохо так. Только вот на такого как налетишь в начале в выживалке и все, каюк, как правило хедшот, максимум пару выстрелов

Ответить
–1

Как действительно работает ИИ в Division:
<игрок ведёт перестрелку с пачкой тупящих врагов>?
- [да]: нарисовать из воздуха пачку врагов прямо за спиной
- [нет]: нарисовать из воздуха пачку врагов прямо за спиной

Ответить
3

там вообще-то все мобы выходят из каких-либо дверей, поэтому игрок просто сам олень

Ответить
2

Что-то не при помню в Division респ мобов в воздухе. Они выбегают из специальных точек. Это гриндилка и после первых 2-3 заходов успеваешь запомнить откуда и какие мобы придут. Адаптируешься.

Ответить
2

Да он просто за своей спиной не следит, а виновата игра.

Ответить
0

Ага, всегда же контролят точки спауна всякими гранатами и тд

Ответить
0

Из сейфхауза "пещера" добеги через канализацию до босса в метро и игра заспаунит его с группой поддержки прямо из воздуха у тебя на глазах в 15 метрах перед тобой.

Ответить
0

15-го декабря первая техническая альфа, посмотрю как устроен в новой части и поменялось ли что-то.

Ответить
0

А я жду бету на пс4

Ответить
0

Древо поведения... 2019 год считай на дворе, ну емае.

Ответить
0

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjog" } } }, { "id": 10, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-250597-0", "render_to": "inpage_VI-250597-0-1134314964", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=clmf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudo", "p2": "ftjf" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvc" } } } ]
В Steam появилась функция продажи
подержанных цифровых копий игр
Подписаться на push-уведомления