Вопросы
MARIO LUIGI
2903

Как работает система NPC bethesda на уровне архитектуры кода?

Прочитал про Radial AI и Radial Quests, насчет генерации квестов я понял, там просто перебор и подставление переменной, но что насчет AI.

То-есть, искуственный интеллект Radial AI якобы постоянно что-то делает, хочет есть и пить. Как это рализованно структурно? Все нпц постоянно сидят в оперативной памяти? Вряд ли. Или например какой-нибудь путешествующий нпц, система постоянно следит за ним? Или через определенные промежутки проверяет условия и задает действия? Может приоритеты задач?
Плез, кто в курсе, видео, статеек накидайте. Жутко интересно.

Материал опубликован пользователем.
Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "MARIO LUIGI", "author_type": "self", "tags": [], "comments": 32, "likes": 22, "favorites": 57, "is_advertisement": false, "subsite_label": "ask", "id": 63223, "is_wide": true, "is_ugc": true, "date": "Fri, 09 Aug 2019 12:15:28 +0300", "is_special": false }
0
{ "id": 63223, "author_id": 122456, "diff_limit": 1000, "urls": {"diff":"\/comments\/63223\/get","add":"\/comments\/63223\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/63223"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 64961, "last_count_and_date": null }
32 комментария
Популярные
По порядку
Написать комментарий...
64

Я ожидал статьи об этом, а получил кучу вопросов, которые теперь и меня интересуют.

Ответить
0

Можешь посмотреть это видео про Radial AI, если шаришь в инглишь. Но в том то и проблема что после этого появляется много любопытных вопросов по реализации.
Там вплоть до того что нпц слишком умные стали и пришлось резать

Ответить
10

Ну это миф что слишком умные. Как и в а-лайф из сталкера не верю - который по легендам проходил главный квест вместо игрока и заканчивал игру.

В конечном счёте Тодда Говарда поймали на той маленькой лжи - что он на Обливион вместо реальной демонстрации Радиант АИ сделал набор скриптов с нпс.

Ответить
0

В конечном счёте Тодда Говарда поймали на той маленькой лжи - что он на Обливион вместо реальной демонстрации Радиант АИ сделал набор скриптов с нпс.

О как, вот этого не видел.

Ответить
5

Да очень просто . Он дал кусок геймплея описывая возможности Радиант АИ.

Вон то самое легендарное видео из демонстрации на е3. После чего когда
игра таки вышла моделлеры покопались. Они нашли полный список скриптов которые заставляли персонажей действовать именно так как на видео, но в отключённом виде.

Ответить
1

И что в этом видео особенного? В игре они так же себя ведут.

\\я специально сейчас проверил. никакого отличия игры от видео.

Ответить
0

Убивает собственную собаку ради мяса?))))

Ответить
0

Скрипт/сцена. И это единственное отличие от игры. Убрали эту поведенческую функцию за ненадобностью (а может сочли жестокой). Так или иначе, но пришлось бы эту функцию долго распределять среди сотен НПС в игре. Идиотизм. Не. Это не ИИ. Это просто скрипт написанный для конкретной сцены. Я с этого и начал. Т.ч. опять тут нет ничего особенного.

Ответить
5

Видимо хайп про особенность Радиант АИ прошел мимо вас.
Это преподносили как революции в нпс в РПГ. Тодд тогда рекламировал это как то что :
Нас качаются(стреляют из лука) , ищут еду (охота) , и живут полной жизнью.

Но увы все свелось к копанию мотыгой мостовой и поедание отравленных яблок.

Ответить
0

Почти ничего с тех пор не изменилось. Сейчас всё это есть в Ведьмак 3. А если особо не придираться, то было в Фоллаут 1.

Ответить
0

Не моделлеры, а модеры.

Ответить
8

Не совсем. Конечно же игра не держит всех нпс в ОЗУ постоянно. Когда нпс выходят из зоны стриминга - они выгружаются. Но после возвращения игрока в регион, AI используя разницу времени "досимулирует" события, которые могли бы пройти за этот промежуток времени.

Касательно AI - AI это просто большая стейт-машина. Вкратце, есть древо из определенных состояний, из которых AI и формирует своё поведение. Грубо это можно описать в пикче. Из действия 1, может прозойти действие 2, а из того в свою очередь действие 3 и так по кругу. Конечно, реальная схема куда сложнее.

Ответить
0

Там рассказы вплоть до войн АИ и убийств квестовых персонажей вне зоны стриминга, я вот и думаю действительно ли это возможно реализовать или масштабы я сам себе напридумывал. Вряд ли среднестатестическая пекарня сможет позволить себе постоянно обрабатывать действия большого количевства персонажей.
Хотя опять же, какой-нибудь High School Simulator из гугл плея, следит за расписанием нпц например.

Ответить
0

Что здесь было?

Ответить
0

Я расписывал как примерно работает система Неписей и ее оптимизация, но мои коменты почему-то потерлись

Ответить
1

В КР - достаточно честный закадровый обсчет НПС . За исключением неправильного учета ракетниц. Так то если наблюдать прямо побеждают корабли с ракетницами. А за пределами обсчета - без ракетниц. А так там из отклонений от честной симуляции - лишь читинг денег на товары и апгрейд оборудования. Так что НПС там летают почти всегда без денег.

Ответить
2

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

Ответить
0

Прыгнуть под грузовик и попасть в новую игру можно?

Ответить
0

Но эта новая игра будет Skyrim...

Ответить
0

Нее. Никаких смертей вне локации с игроком.

Радиант ИИ скорее работает перебирает кто когда должен быть на локации рядом с игроком по расписанию . И спамит их. После чего отправляет их пешим маршрутом к следующей точки по расписанию

Ответить
0

по идее отслеживать все это без погрузки 3д мира, должно быть не слишком сложно для ПК, считай по тому же принципу dwarf fortress работает

Ответить
0

Да. Радиант АИ не сильно в этом плане отличается от расписания НПС из Готики. Разница только в том что там расписание задаётся не столь жёстко.(поэтому мы натыкается на одновременную группу горожан разбредающихся из таверны после того как время прокрутим) И заданное по дням неделям.(в будни работать. В пятницу бухать в таверне. В воскресенье в храм)

Ответить
0

На курсах по гейм-дизайну рассказывали ещё про систему весов. Т.е. чем больше вес тем выше шанс что из всех доступных действий будет выбрано именно это.

Ответить
0

Ну серьезно, зачем такое писать на уровне статьи? Тут ведь обычное обращение с вопросами для какого-нибудь форума по геймдеву

Ответить
1

У геймдева нет подраздела с воспросом, а собранный материал возможно и пригодиться кому

Ответить
3

Все равно нужно было в подсайт вопросы отправлять.

Ответить
0

Плюсую гражданину выше - в вопросы, пожалуйста. Это ж вопрос, а не статья -_-

Ответить
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": "Article Branding", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cfovz", "p2": "glug" } } }, { "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, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "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" } } } ]