"XRAY Engine" demo build 749 предназначался для тестирования различных аспектов движка, в том числе и отладки искусственного интеллекта. Было создано три типа поведения ИИ с разной логикой и моделями: alien, mover и jumper.
Описание[]
Все 3 монстра не являются NPC как таковыми — это внешнее представление первого вида ИИ, написанного Олесем Шишковцовым для движка X-Ray. Модели для них создавались для более наглядного отображения поведения ИИ и наблюдения за ним, на что также косвенно указывает качество моделей mover и jumper.
- alien — отдаленно похожая на мифического Кецалькоатля змееподобная модель, имеющая иерархическую структуру, разделённую по признаку материалов.
- mover — сферическая однородная модель с приведёнными и вытянутыми вершинами, образующими шип.
- jumper — уменьшенный и сдавленный по высоте вариант модели mover.
Способности и поведение[]
Все три модели отражали различные варианты поведения, но не были привязаны к ним (им может быть подставлена почти любая ogf-модель и написан свой отдельный ИИ с совсем другим поведением):
- Alien — самые первые тесты поведения проверялись на модели alien, которая осталась в достаточно проработанном виде, но в сборке не используется. Модель поведения строила сплайновый путь на основе данных из игровой коллизии геометрии сцены и просто перемещалась по уровню. Сам программный объект монстра был написан во внешней динамической библиотеке object_alien.dll (в составе сборки отсутствует). В течение месяца (конец января — февраль 2001) модель поведения и просчёты улучшались, что позже легло в основу двух последующих моделей поведения.
- Mover — движется по прямой, в спокойном состоянии крутится из стороны в сторону. Из-за постоянного ускорения может достигать очень большой скорости и бесконечно преследовать игрока без потери его из вида на любой дистанции.
- Jumper — передвигается прыжками с задержкой примерно в 2 секунды, атака происходит во время прыжка (при попадании в стену может от неё отскочить; сила и расстояние отскока могут быть разными). В спокойном состоянии крутится из стороны в сторону, суммарно примерно на 270 градусов (иногда происходит баг, когда при атаке в прыжке он продолжает крутиться).
Отношение к игроку[]
Целью монстров Mover и Jumper является обнаружение игрока, построение к нему пути и достижение конечной точки. Поэтому они всегда движутся в его сторону и своими моделями «налезают» на коллизию модели игрока, из-за чего происходят повреждения с последующей потерей управления.
История создания[]
Модель и текстура[]
Дата | Автор | Описание |
---|---|---|
19 декабря 2000 | — | Была нарисована текстура eye1.TGA. Возможно тогда же были созданы первые версии моделей alien1.ogf и alien2.ogf |
23 января 2001 | Сергей Кармальский | Была создана модель alien.ogf, к которой было нарисовано 8 текстур: coilBMP.TGA, coilyello.TGA, FACE.TGA, RIBS2.TGA, Tissue.TGA, TOOTH.TGA, VIENS.TGA, Yellotrans.TGA |
10 апреля 2001 | Сергей Кармальский | Была экспортирована модель alien1.ogf[прим. 1] |
11 апреля 2001 | Сергей Кармальский | Была экспортирована модель alien2.ogf[прим. 2] |
Программирование[]
В конце января 2001 года Олесь Шишковцов начал писать первый исходный код, связанный с работой искусственного интеллекта. Для тестов использовалась модель alien.ogf, которая должна была, исходя из наличия окклюзии, просто передвигаться по уровню. Были созданы функции, отвечающие за зрение и передвижение монстра. В последующие дни происходили работы над написанием кода, связанным с искусственным интеллектом, но позже было решено реализовывать поведение на встроенном в X-Ray скриптовом языке программирования C-Scripting Engine, а основа работы ИИ оставалась в движке.
Конфиги[]
В начале 2001 года в файле system.ltx была создана секция [m_alien]
, в которой были прописаны переменные eye_fov
и eye_distance
с определёнными значениями.
Скрипты[]
Начиная с февраля, были созданы скрипты iq_alien.c и iq_jumper.c, которые также были скомпилированы[прим. 3] в бинарный вид[прим. 4] для чтения движком. В апреле на уровне L1 day были продолжены тесты поведения монстров и скрипты менялись: в последний раз iq_jumper.c правился 17 апреля, а iq_alien.c — 24-го.
Галерея[]
Примечания[]
- Комментарии
- Источники
- \\game\XR_3DA.exe\.data
- \\game\data\meshes\alien.ogf (ревизия 23.01.2001)
- \\game\data\meshes\alien1.ogf (ревизия 10.04.2001)
- \\game\data\meshes\alien2.ogf (ревизия 11.04.2001)
- \\game\data\scripts\iq_jumper.c (ревизия 17.04.2001)
- \\game\data\scripts\iq_alien.c (ревизия 18.04.2001)
- \\game\data\scripts\iq_jumper.c (ревизия 18.04.2001)
- \\game\data\scripts\iq_alien.c (ревизия 24.04.2001)