S.T.A.L.K.E.R. Wiki: Zone Chronicles
S.T.A.L.K.E.R. Wiki: Zone Chronicles


Автоматический модуль поддержки (также Robot [прим. 1], иногда Hen [прим. 2]) — роботизированная боевая машина из отменённой игры «Oblivion Lost».

Описание[]

Untitled-а

Концепт-арт

Роботизированная боевая машина модели T-800M [прим. 3].

Конструкция робота очень напоминает курицу, отсюда и название Hen. Передвижение также напоминает походку курицы. Имеет 2 пулемёта, прикреплённых сверху и активирующихся в случае атаки.

Эти роботы могут действовать как сами, так и под управлением, то есть задачи и цели либо зависят от хозяина-управляющего [прим. 4], имеющего информацию о его состоянии (степень повреждений, количество боеприпасов), либо от введённых в внутреннюю программу. Они следуют за «хозяином», если он есть, а при нападении (на «хозяина» или самих АМП) или обнаружении противника незамедлительно идут в атаку. То есть можно сказать, что основное использование АМП — разведка и огневая поддержка.

Имеет 3 режима: спокойствия, поиска/ожидания и боя.

  • В режиме спокойствия находится в сложенном виде;
  • В режиме поиска/ожидания находится в обычном состоянии;
  • В режиме боя робот активирует встроенные пулемёты.

АМП достаточно крепкий, чтобы не разрушаться от попаданий по нему пуль, поскольку смерть или разрушение для него не характерны — при нанесении критического урона он отключается, и обретает такую же форму, как при режиме спокойствия [прим. 5].

В сборке 1098 представлен в 2-ух вариантах: АМП-союзник и АМП-противник. Они не различаются по конструкции (одной модели), но различаются по цвету корпуса и маркировки: АМП-союзник имеет светлый окрас и жёлтую маркировку, АМП-противник — тёмный окрас и красную маркировку. При чём союзные находятся под управлением игрока, а вражеские действуют самостоятельно.

Судя по всему, хозяин-управляющий может иметь в распоряжении не более 3-ёх союзных роботов [прим. 6].

Прототип[]

АМП имеет большое сходство с «киберразведчиками» из рассказа братьев Стругацких «Забытый эксперимент»:

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

История создания[]

Концепт-арт[]

Концепт-арт АМП был нарисован Алексеем Мосейчуком примерно в конце осени 2001 года.

Дизайнерские документы[]

Документ Дата Описание содержимого
S.T.A.L.K.E.R. - Design Document (v1.4).PDF 2 апреля Упоминаются как военные киборги, которые работают на дистанционном управлении и вооружены пулеметами.
All_levels.doc 26 сентября Описывается неудачная попытка использовать роботов внутри территории Зоны.
xxx.doc 1 октября Описывается возможность проводить модификации роботов в мастерских: навесить броневые пластины, добавить оружия, провести апгрейд внутренних системы управления и наведения.

Модель и текстура[]

Дата Разработчик Описание
Январь 2002 Руслан Коновальчук Был смоделирован и привязан АМП.
28 января 2002 Алексей Мосейчук В течении января были созданы анимации для персонажа, настроен скелет в SStudio и произведен экспорт в .ogf.
29 января 2002 Руслан Коновальчук Экспортирует готовый вариант общей текстуры робота.
31 января 2002 Алексей Мосейчук Была перепривязана модель под новый скелет, количество костей с 36-ти уменьшилось до 18. Анимации были адаптированы под новый скелет и изменены бленд-переходы между анимациями.
1 февраля 2002 Руслан Коновальчук Экспортирует готовый вариант текстуры союзного и враждебного робота.


Программирование[]

Дата Разработчик Описание
11 июля 2001 Олесь Шишковцов Был написан набросок кода для общего класса ИИ [прим. 7][ист. 2].
18 июля 2001 Написаны алгоритмы выбора противника и перемещения, чтения секции из конфигурационного файла System.ltx.
5 сентября 2001 Александр Максимчук Дополнены алгоритмы перемещения ИИ.
6 сентября 2001 Олесь Шишковцов Были настроенны значения скоростей передвижения, часть параметров была вынесена в конфигурационный файл.
7 сентября 2001 Сделан указатель для выбора лучшего врага в поле видимости.
10 сентября 2001 Закомментирован оператор switch, отвечающий за выбор цели для перемещения в её сторону.
12 сентября 2001 Оператор был раскомментирован обратно, были добавлены алгоритмы проигрывания звуков стрельбы, попадания и смерти, а также стрельбы из оружия со своей точки видимости сцены.
13 сентября 2001 Александр Максимчук ИИ научился приседать.
14 сентября 2001 Олесь Шишковцов Донастроен поиск игрока с запоминанием его позиции.
17 сентября 2001 Написана реакция на попадание в ИИ пули.
24 сентября 2001 Написано оценивание ИИ места, откуда по нему стреляют.
Октябрь 2001 Олесь Шишковцов
и
Александр Максимчук
Написано оценивание ИИ места, откуда по нему стреляют.
12 ноября 2001 Олесь Шишковцов Перенесены FSM стратегии поведения ИИ в отдельный файл AI_FSM.cpp[ист. 3].
Январь 2002 подключено использование секцию АМП к классу AI_HUMAN и его FSM-стратегиям. Класс был написан в течении сентября-октября 2001 года, а FSM стратегии доработаны в течении ноября-декабря.
5 апреля 2002 Дмитрий Ясенев На основе устаревшего AI_HUMAN был сформирован отдельный класс для АМП AI_HEN, начав переносить на него код искусственного интеллекта [ист. 4].
9 апреля 2002 Был завершен перенос кода на новый класс.
12 апреля 2002 Функции поведения АМП были разделены на файлы ai_hen.cpp, ai_hen_attack.cpp, ai_hen_cover.cpp, ai_hen_defend.cpp, ai_hen_die.cpp, ai_hen_f_hunting.cpp, ai_hen_follow.cpp, ai_hen_go_dir.cpp, ai_hen_go_pos.cpp, ai_hen_h_pos_u_f.cpp, ai_hen_hold_pos.cpp, ai_hen_pursuit.cpp, ai_hen_retreat.cpp, ai_hen_selectors.cpp, ai_hen_sense.cpp, ai_hen_sense_s.cpp, ai_hen_state.h, ai_hen_u_fire.cpp, ai_hen_under_fire.h, ai_hen_wait_pos.cpp[ист. 5].
15 апреля 2002 Возвращена часть перенесенного кода обратно в основной ai_hen.cpp, убрав включение вышеперечисленных файлов в основной файл, тем самым сделав их код нечитаемым для компилятора. Поведение робота начало переписываться заново.
19 апреля 2002 Было добавлено запоминание врага, проверка на видимость, оценка построения пути до противника и написан новый алгоритм перемещения по построенным путям. Улучшена работа алгоритмов поведения в качестве напарника, свободной охоты и преследования.
22 апреля 2002 Олесь Шишковцов Удалена функция спавна.
23 апреля 2002 Дмитрий Ясенев Доработан алгоритм проверки на членство в отряде, улучшена работа остальных. Написаны алгоритмы поведения АМП под вражеским огнем.
24 апреля 2002 Были удалены участки кода, отвечающие за опредление лидера отряда.
25 апреля 2002 Определение лидера отряда было возвращено, оптимизация алгоритмов.
26 апреля 2002 Дописано поведение с использованием укрытий при наличии рядом врага.
29 апреля 2002 Олесь Шишковцов Дописано динамическое приведение типов для проверки корректности указателя к переменной CEntity.
9 мая 2002 Дмитрий Ясенев Дописаны базовые значения для переменных tpSavedEnemyNode и dwSavedEnemyNodeID.
13 мая 2002 переменная m_fCurSpeed стала использовать m_fMinSpeed вместо m_fMaxSpeed.
16 мая 2002 Написано условие, отвечающая за поведение оценки возможности убийства противника при наличии живого лидера отряда.
18 мая 2002 Добавлена булевая переменная, отключающая активность АМП после смерти.
19 мая 2002 Переменная перенесена из функции состояния смерти в функцию ухода в состояние смерти, также добавлена переменная, приводящее состояние робота на момент смерти в статус отключения.
14 августа 2002 Олесь Шишковцов В штатном режиме обновлен вызов некоторых переменных по проигрышу звука в связи с изменением их внутри движка.
21 августа 2002 Штатное изменение функций по причине их изменения синтаксиса вызова внутри движка.
24 августа 2002 Были изменены аргумента вызова функции чтения секции АМП под новый стандарт.
13 сентября 2002 Дмитрий Ясенев Обновлен код чтения АИ-нод для построения пути.
25 сентября 2002 Штатное обновление кода.
8 октября 2002 Олесь Шишковцов Обновление переменных и макросов.
11 октября 2002 Замена типа переменной amount с целочисленного int на float.
15 октября 2002 Частичная правка кодстайла, выравнивание табуляции.
6 ноября 2002 Дмитрий Ясенев Класс AI_HEN перестал собираться в движок[ист. 6].

Конфиги[]

Дата Автор Описание
3 февраля 2002 Алексей Мосейчук Настроены параметры АМП в секциях m_friend и m_enemy.
19 мая 2002 Дмитрий Ясенев Изменено имя секции, программный класс, введен параметр health и перенастроены селекторы поведения.
28 августа 2002 Олесь Шишковцов Убраны переменные position, run_coef и walk_accel.
11 ноября 2002 Удалены секции дружественного и враждебного АМП.

Галерея[]

Примечания[]

Общие
  1. Согласно рендеру модели.
  2. Техническое название, рус. Курица.
  3. Согласно маркировке на корпусе.
  4. Условное название.
  5. Это хорошо видно здесь.
  6. В сборке 1098 у игрока только 3 союзных робота.
  7. класс AI_HUMAN не являлся конкретным для применения на нем АМП, он был на тот момент общим для всех тестируемых сущностей ИИ и использовался в отладке. Однако к сборке 1098 за неимением других классов, интеллект роботов работал на алгоритмах этого класса достаточно для демонстративных функций
Источники
  1. inventory.doc: ...\\koan\Koan_work_on_stalker\Documents\Interface
  2. $/xr_3da/AI_Human.cpp Visual Source Safe (ревизия 2, 11 июля 2001).
  3. $/xr_3da/xrGame/AI_FSM.cpp Visual Source Safe (ревизия 6, 12 ноября 2001).
  4. $/xr_3da/xrGame/ai_hen.cpp Visual Source Safe (ревизия 5, 5 апреля 2002).
  5. $/xr_3da/xrGame/AI/Hen/...
    ai_hen.cpp 
    ai_hen.h
    ai_hen_attack.cpp
    ai_hen_attack.h
    ai_hen_cover.cpp
    ai_hen_cover.h
    ai_hen_defend.cpp
    ai_hen_defend.h
    ai_hen_die.cpp
    ai_hen_die.h
    ai_hen_f_hunting.cpp
    ai_hen_f_hunting.h
    ai_hen_follow.cpp
    ai_hen_follow.h
    ai_hen_go_dir.cpp
    ai_hen_go_dir.h
    ai_hen_go_pos.cpp
    ai_hen_go_pos.h
    ai_hen_h_pos_u_f.cpp
    ai_hen_h_pos_u_f.h
    ai_hen_hold_pos.cpp
    ai_hen_hold_pos.h
    ai_hen_pursuit.cpp
    ai_hen_pursuit.h
    ai_hen_retreat.cpp
    ai_hen_retreat.h
    ai_hen_selectors.cpp
    ai_hen_selectors.h
    ai_hen_sense.cpp
    ai_hen_sense.h
    ai_hen_sense_s.cpp
    ai_hen_state.h
    ai_hen_u_fire.cpp
    ai_hen_u_fire.h
    ai_hen_under_fire.h
    ai_hen_wait_pos.cpp
    ai_hen_wait_pos.h

    Visual Source Safe (ревизия 2, 12 апреля 2002).

  6. $/xr_3da/xrGame/xrGame.cpp Visual Source Safe (ревизия 69, 6 ноября 2002).