Хотите начать играть в Star Citizen? Никаких проблем -  Вы можете приобрести через меня  стартовый пакет с Авророй или Мустангом за  5500 р. при регистрации по моей реферальной ссылке (без рефералки - 6000 р.).  Пишите через обратную связь или в личку дискорда (star_Smith). Возможно приобрести другие пакеты и корабли. Подробее о гарантиях

Star Citizen: Технологии ИИ

Главная / Все разделы / Jump Point Issue 12-04 August 2024

К 2954 году Человечество достигло многого. Мы покинули Землю, заселили планеты вокруг нас, совершили прыжок на триллионы километров к далеким звездным системам и расширили возможности нашего вида дальше, чем кто-либо мог ожидать. И хотя технологии сделали это возможным, воля и стремление людей Земли стали причиной того, что мы зашли так далеко.

В CIG Человечеством руководит команда ИИ, которая дает персонажам, населяющим нашу вселенную, жизнь, личность, цели и предназначение — будь то полезные, безразличные или враждебные по отношению к игрокам.

Чтобы узнать, как создаются неигровые персонажи (NPC) Star Citizen, мы поговорили с ведущим программистом ИИ Мариусом Айринеем; огромное спасибо Мариусу за то, что он нашел время, чтобы провести нас через все ИИ Tech

ИНСТРУМЕНТ СОЗДАНИЯ ПОВЕДЕНИЯ ИИ, ВКЛЮЧАЯ БОЕВОЕ ПОВЕДЕНИЕ: СТАРЫЙ ИНТЕРФЕЙС

Кто вы, какова ваша роль и за что вы отвечаете в Star Citizen?

Меня зовут Мариус Айринеи, и я ведущий программист ИИ в команде AI Tech. Мои основные обязанности — проектирование, внедрение и оптимизация систем ИИ, используемых в Star Citizen и Squadron 42, а также координация и поддержка членов команды AI Tech.

Чем занимается команда AI Tech в CIG?

Команда AI Tech отвечает за внедрение новых основных функций AI и поддержку существующих систем и функций AI. Мы также отвечаем за то, чтобы Star Citizen и Squadron 42 работали максимально эффективно.

Над чем ваша команда работала в последнее время?

Поддержка Server Meshing — это большая тема в настоящее время; для половины команды это одно из основных направлений. Мы обновляем наши системы и компоненты AI (систему движения и систему восприятия зрения), чтобы быть готовыми к переходу полномочий Server Meshing и восстановлению сервера. С точки зрения игрока, мы не хотим, чтобы он мог различать NPC, которые находятся на одном сервере или другом, когда они переходят между серверами или когда они перезапускают свое состояние при сбое сервера. Для этого нам нужно убедиться, что данные правильно синхронизируются в слое репликации, определить, что на самом деле нужно синхронизировать, и как код будет справляться с этими изменениями, сохраняя при этом ту же функциональность, что и раньше. В других местах мы работаем над поддержкой более процедурной генерации данных ИИ и покажем кое-что интересное как можно скорее!

Мы также продолжаем фокусироваться на улучшении поведения космического корабля в воздушном бою и способности NPC справляться со всеми новыми функциями корабля, которые команда Vehicle добавляет для игроков. Мы также фокусируемся на улучшении наших текущих инструментов, особенно в части Subsumption. Мы перерабатываем весь интерфейс, который мы называем StarScript. Это позволит нам лучше проверять наши данные и улучшит процесс создания, позволяя дизайнерам иметь автоматическую компоновку своих графиков и гораздо лучший способ навигации по своим данным.

ИНСТРУМЕНТ СОЗДАНИЯ ПОВЕДЕНИЯ ИИ, ВКЛЮЧАЯ БОЕВОЕ ПОВЕДЕНИЕ: НОВЫЙ ПОЛЬЗОВАТЕЛЬСКИЙ ИНТЕРФЕЙС (ВСЕ ЕЩЕ В ПРОГРЕССЕ)
НОВЫЙ СТИЛЬ ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА И ФУНКЦИОНАЛЬНЫЕ ВОЗМОЖНОСТИ ИНСТРУМЕНТА ПОВЕДЕНИЯ ИИ

Над чем вы сейчас работаете?

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

Что дальше?

Работа над Server Meshing будет продолжаться. Мы также изучаем, как эти изменения могут улучшить существующий подход к синхронизации, который мы разделяем с игроками. Оптимизация также будет в центре внимания в будущем из-за нашего внимания к Squadron 42 и Star Citizen. Работа над инструментами ИИ будет продолжаться, особенно в отношении улучшенного пользовательского интерфейса и новых функций. Мы также изучаем, как сделать вещи более процедурными и динамичными, улучшить восприятие и реактивность ИИ, а также улучшить структуру данных и проверку, чтобы уменьшить ошибки дизайнеров и программистов.

«Используемые» объекты

ОТЛАДКА ПЛАНЕТАРНОЙ НАВИГАЦИОННОЙ СЕТИ НА ВЫДЕЛЕННОМ СЕРВЕРЕ С ОДНИМ ПОДКЛЮЧЕННЫМ К НЕМУ ИГРОКОМ. ОТЛАДКА КАМЕРЫ С ТОЧКИ ЗРЕНИЯ ИГРОКА

Мы много слышим о «используемых» объектах от вашей команды в наших ежемесячных отчетах PU. Было бы здорово узнать больше о том, что это такое и что они делают.

Когда мы говорим о используемых объектах, мы говорим об описании, необходимом для взаимодействия NPC с объектами в мире. Используемые объекты в основном просто представляют знания ИИ о мире, описание функций, которые предлагаются каждым объектом, и как к ним подходить для выполнения определенных операций. Например, стул будет предлагать функциональность для «занятия» пространства в мире, которое сам стул идентифицирует. Таким образом, NPC может искать что-то, что он может использовать для «занятия» мира.

Как NPC выбирают, какие предметы использовать, и что мешает им использовать неправильные?

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

Технически, как настраиваются используемые объекты?

Используемые объекты в основном являются метаданными поверх сущностей движка, которые часто также являются интерактивными объектами. Используемые данные делятся на три подраздела:

Канал использования — это действие, которое вы можете выполнить из этого используемого объекта. Например, любой переносимый объект может предоставлять каналы использования «взять» и «бросить», стул может предоставлять канал использования «занять», а настенная панель может иметь каналы использования «открыть», «закрыть» и «проверить».

Слот выравнивания — это место, где персонаж будет находиться при выполнении определенных операций. В используемом объекте столько же слотов выравнивания, сколько мест, в которых персонаж может находиться при взаимодействии с этим объектом; так, стул может иметь два слота выравнивания, один, чтобы сидеть на нем, и один, чтобы разговаривать с кем-то, кто сидит в нем.

Слот использования определяет виртуальное место, где происходит операция. В некотором смысле количество слотов использования является хорошим показателем количества NPC, которые могут использовать один и тот же используемый объект одновременно (хотя это не всегда верно). Например, трехместный диван будет иметь три слота использования, которые связаны с тремя различными слотами выравнивания. Это означает, что NPC могут потенциально сидеть на этом диване одновременно. Прилавок магазина может иметь слот использования, который представляет собой место, где и продавец, и покупатель будут размещать и брать объект, который они хотят продать/купить, но также и другой слот использования, чтобы определить место, где продавец может взять один из предметов из одного из ящиков прилавка. В этом случае оба слота использования будут связаны с одним и тем же слотом выравнивания. Это означает, что, несмотря на наличие нескольких слотов использования, только один продавец может использовать прилавок одновременно.

СУЩЕСТВА КОПИОНА, ИЩУЩИЕ ПУТЬ/ИСПОЛЬЗУЮЩИЕ НАВИГАЦИЮ ПО ПЛАНЕТАМ
ОБЕСПЕЧЕНИЕ БЫСТРОЙ ГЕНЕРАЦИИ НАВИГАЦИОННОЙ СЕТКИ, ОСОБЕННО НА СЕРВЕРАХ С НИЗКИМ FPS
ОТЛАДКА ИНФОРМАЦИИ О РИСУНКЕ ДЛЯ ПЛАНЕТАРНОЙ ФИЗИЧЕСКОЙ МЕСТНОСТИ, ВКЛЮЧАЯ, КАК ОНА РАЗДЕЛЕНА НА НАВИГАЦИОННЫЕ ПЛИТКИ
ОТЛАДКА РИСОВАНИЯ ПЛИТОК ПЛАНЕТЫ НАВИГАЦИОННОЙ СЕТКИ, УБЕДИВШИХСЯ, ЧТО ПЛИТКИ СОЕДИНЕНЫ ПРАВИЛЬНО В ОБЛАСТЯХ С РАЗБРОСАННЫМИ ВАЛУНАМИ
ОТЛАДКА СОЕДИНЕНИЯ ПЛИТКИ НАВИГАЦИОННОЙ СЕТКИ, КОГДА УЧАСТОК МЕСТНОСТИ ПЛАНЕТЫ МЕНЯЕТ СВОЮ ОРИЕНТАЦИЮ

Поведения

ПОВЕДЕНИЕ, ВЫПОЛНЯЕМОЕ NPCS ПРИ ИСПОЛЬЗОВАНИИ ЛИФТА ИЛИ ПОЕЗДОВ/ЭТО ОДНО ИЗ НАИБОЛЕЕ СЛОЖНЫХ ПОВЕДЕНИЙ

Что такое поведения и что они делают?

Поведения — это описания логики, которую NPC хотят выполнить для достижения определенной цели. Они описывают поток их действий; вы можете представить их как историю того, что NPC хочет сделать. В качестве примера давайте представим поведение использования полигона космического корабля. NPC может захотеть использовать полигон для тренировки, поэтому сначала ему нужно будет найти полезное средство, позволяющее ему «взять» оружие. Затем ему придется использовать это полезное средство, и результатом этой операции будет то, что NPC будет держать оружие в своих руках. В этот момент NPC будет искать свободное место на полигоне или место, где он может подождать своей очереди, чтобы подойти к полигону. Как только оно станет доступно, он переместится на полигон и активирует канал использования «тренировки» на счетчике полигона. Эта логика будет включать обработку тренировочного упражнения на полигоне.

Как поведения и используемые объекты работают вместе?

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

Как определяются поведения для каждого NPC?

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

Технически, как настраиваются поведения?

Поведения настраиваются в нашем инструменте Apollo, который является нашим внутренним интерфейсом для Subsumption. Как упоминалось выше, сейчас он обновляется для использования StarScript UX. Действия (это то, что мы называем поведениями) — это своего рода контейнер, который может определить наилучшее поддействие (и фактический график поведения), которое должно быть запущено. Дизайнеры могут указать свойства, используемые системой для оценки доступного поддействия и выбора наиболее подходящего. Вдобавок ко всему, у нас есть мастерграф. Это большой конечный автомат, который управляет внешними запросами и событиями. Он также обрабатывает системные реакции, например, когда NPC вступают в бой, и определяет наиболее подходящее действие для этого конкретного события.

Чем отличаются предметы и поведение в PU и SQ42?

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

Одинаково ли настроены дающие задания или персонажи, набираемые в SQ42?

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


Подпишитесь на наш Telegram / starcitizenhelp_ru что бы всегда быть в курсе актуальных обновлений и новостей.
Для того, что бы оставить комментарий, войдите или зарегистрируйтесь.