Автоматический модуль поддержки (также Robot [прим. 1], иногда Hen [прим. 2]) — роботизированная боевая машина из отменённой игры «Oblivion Lost».
Описание[]
Концепт-арт
Роботизированная боевая машина модели 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 | Удалены секции дружественного и враждебного АМП. |
Галерея[]
Примечания[]
- ↑ Согласно рендеру модели.
- ↑ Техническое название, рус. Курица.
- ↑ Согласно маркировке на корпусе.
- ↑ Условное название.
- ↑ Это хорошо видно здесь.
- ↑ В сборке 1098 у игрока только 3 союзных робота.
- ↑ класс AI_HUMAN не являлся конкретным для применения на нем АМП, он был на тот момент общим для всех тестируемых сущностей ИИ и использовался в отладке. Однако к сборке 1098 за неимением других классов, интеллект роботов работал на алгоритмах этого класса достаточно для демонстративных функций
- ↑ inventory.doc: ...\\koan\Koan_work_on_stalker\Documents\Interface
- ↑ $/xr_3da/AI_Human.cpp Visual Source Safe (ревизия 2, 11 июля 2001).
- ↑ $/xr_3da/xrGame/AI_FSM.cpp Visual Source Safe (ревизия 6, 12 ноября 2001).
- ↑ $/xr_3da/xrGame/ai_hen.cpp Visual Source Safe (ревизия 5, 5 апреля 2002).
- ↑ $/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).
- ↑ $/xr_3da/xrGame/xrGame.cpp Visual Source Safe (ревизия 69, 6 ноября 2002).