Build 749

***"XRAY Engine" demo build 749*** — самая первая известная сборка, относящаяся к разработке игры *Oblivion Lost*. Предназначалась для тестирования возможностей движка *X-Ray Engine*.

## Описание

### Общая информация

В составе сборки находится 1 тестовая локация *l1\_day*, представляющая собой относительно детализированный храм в стиле архитектуры майя и местность вокруг. Игроку доступно единственное оружие с боезапасом в 1000 патронов — *Railgun* (рус. рельсотрон), позаимствованное из игры *Quake III Arena*. Присутствует показатель здоровья в 100 очков и система урона, но не реализована смерть игрока — при количестве здоровья меньше единицы главный герой только теряет управление движением.

### Неиспользуемый контент

*См. также **Build 749/Искусственный интеллект**, **Текстуры 2001 года***
В ресурсах сборки можно найти модели и звуки от пулемета, ракетомёта, брони, аптечек и патронов к оружию, также взятые из *Quake III*. Эти файлы предполагалось использовать, были сделаны шкалы здоровья, брони и патронов в пользовательском интерфейсе, а в конфигурационных файлах были прописаны секции для пулемета и ракетомёта. Но в итоге эти файлы в сборке не используются, а из оружия работает только рельсотрон.

Изначально уровень был заселен 2-мя видами врагов, предназначенных для теста искусственного интеллекта — монстрами *Jumper* и *Mover*, но по по умолчанию они не появляются в игровом процессе. Среди моделей можно обнаружить инопланетное существо с техническим названием *alien.ogf* (рус. инопланетянин) в достаточно проработанном виде, но сама модель нигде не применяется.

### Недоработки

1. Неправильно работающий рендер: без сторонних фиксов не отображаются текстуры и карты освещения.
2. Вместо нормальной модели игрока используется цилиндр со сферообразным окончанием, проваливающийся в геометрии, что можно заметить при включении режима камеры от 3-го лица.
3. Возможность игрока ходить по воде, что связано с наличием у её модели коллизии.
4. Неудовлетворительная работа коллижн-модели игрока, которая проявляется в некоторых аспектах:
	* при спуске с крутого склона игрок теряет управление движением и начинает медленно спускаться вниз, приседание вызывает подскакивание игрока вверх;
	* неправильное взаимодействие со сложной геометрией, например, со стенами, имеющими орнамент. Подойдя к такой стене вплотную нужно присесть и прыгнуть. В таком случае игрок отскочит назад и получит урон.
5. Неправильное взаимодействие оружия с врагами: при стрельбе на дистанции или с определенного ракурса выстрелы проходят сквозь них и не убивают, а прицел не окрашивается в красный.
6. Пользовательские интерфейс (по умолчанию не отображается) не умеет выводить минус при оперировании с отрицательными числами.

## История сборки

*Основная статья: **Oblivion Lost § История разработки***
Сборка была скомпилирована 19 апреля для тестирования работы рендера, различной технической составляющей системы уровней, а также искусственного интеллекта в движке *X-Ray Engine*. В июле разработчиками были убраны элементы пользовательского интерфейса и отключено отображение оружия, скорее всего с целью убрать лишние детали с экрана. С 2 по 4 сентября сборка была использована GSC Game World на выставке ECTS 2001 для демонстрации возможностей своего нового движка. 5 сентября были опубликованы скриншоты с той выставки, на которых была запечатлена в том числе и данная сборка. Точно неизвестно, была ли на выставке она или только её скриншоты.

Позже сборка была выложена пользователем Loxotron на *GAMEINATOR forums* в сливе сборок от 9 февраля 2011 года.

## Технические особенности

* При запуске движок сканирует папку *game* на наличие внешних динамических библиотек — необходимы только движковые библиотеки, сторонние не подойдут.
* При запуске любой процессор *Intel*, начиная от **Pentium IV** и старше, определяется как *Pentium III*, а процессоры *AMD*, начиная от *Athlon XP* и старше — как *Unknown*.
* Присутствует технология **Potentially Visible Set** (рус. «Потенциально видимый набор»), также использующаяся в *Quake III Arena* и являющаяся одним из методов отбора окклюзии, основанном на видимости в разных точках в пространстве сцены, где статическая геометрия разбивается на потенциально видимые наборы. Разбиение проводилось компилятором, а реализация была подобна таковой в *Quake III*. Но из-за требования высоких расчётных мощностей того времени и низкой эффективности на открытых пространствах на самом *l1\_day* она не используется и в течении 2001 года постепенно заменялась на **Hierarchical Occlusion Maps** (рус. «Иерархические карты окклюзии»).
* Для скриптов внедрён сторонний Си-подобный язык программирования *Scripting engine* версии 0.94a, написанный польским программистом-студентом Пшемыславом Аркадиушом Подсиадлы (пол. Przemysław Arkadiusz Podsiadły).
* Модель инопланетного существа по пути *game\data\meshes\alien.ogf* содержит иерархию модели из восьми частей (от *alien#0.ogf* до *alien#7.ogf*), к каждой из которых привязана своя текстура. Эта единственная модель в ресурсах, использующая иерархическое деление.
* Начиная с этой сборки и до *'xrCore' build 1632, Dec 19 2003* включительно все звуки хранятся в формате без использования сжатия *.wav*, в дальнейшем заменённые на формат *.ogg* после внедрения библиотек *libogg*, *libvorbis* и *libtheora*.
* Максимально разрешение экрана, распознаваемое движком — 1280×1024.
* Скриншоты при нажатии на клавишу F1 сохраняются в папке *game* в формате *.tga* и имеют вид *sshot\*.tga* (где \* — порядковый номер скриншота, сделанного в текущем игровом сеансе, при перезапуске сборки нумерация начинается сначала, а при совпадении имён старые файлы заменяются на новые).

## Скачивание и запуск

Для полной работоспособности сборки необходимо распаковать в папку *game* критический фикс рендера. Запуск осуществляется через исполнительный файл *XR\_3DA.EXE*. Также возможен запуск с дополнительными настройками с помощью специальных ключей:

* *-dxt3* (загружает текстуры с использованием формата DXT3);
* *-emu\_fog* (использование вершинного тумана — происходит вычисления данных для каждой вершины и их интерполяция);
* *-multipass* (включение многопроходного рендеринга — вызывает заметное уменьшение FPS);
* *-nogpu* (использование программного рендеринга вместо аппаратного — увеличивается нагрузка на процессор).

Для этого необходимо создать и запустить в папке со сборкой bat-файл со следующем содержанием:

```
XR_3DA.EXE *КЛЮЧ*

```

Выход из сборки осуществляется клавишей *F12* или командой `quit` в консоли.

## Руководства и модификации

*Основная статья: **Пользовательские модификации для сборок § Build 749***
Руководство по настройке и возвращению неиспользуемого контента в сборке 749
Представляет собою инструкции для настройки и восстановления некоторых аспектов сборки для тех, кто не хочет скачивать какие-либо модификации.

Значения некоторых параметров в файле user.ltx

* rs\_antialias *on / off* — включение сглаживания;
* rs\_clear\_bb *on / off* — очистка вторичного буфера (исчезает двоение изображения за картой);
* rs\_geometry\_lod *число* — детализация геометрии на расстоянии, по умолчанию выставлено 0.50000, но можно сделать больше или меньше (0.0000 — 1.0000);
* rs\_occ\_reject *число* — коэффициент отклонения окклюзии, по умолчанию выставлено 0.00300;
* rs\_occlusion *on / off* — включение применения окклюзии;
* rs\_overdraw *on / off* — включение просмотра отрисовки геометрии (включать не рекомендуется для нормального игрового процесса);
* rs\_pvs *on / off* — включение применения Potentially Visible Set (не используется на уровне);
* rs\_renormalize *on / off* — включение автоматической нормализации нормалей вершин после их трансформации в *camera space*;
* rs\_triplebuffer *on / off* — включение тройной буферизации;
* texture\_format *DXTC / FXTC / 16 bit / 32 bit* — формат загрузки текстур, значение 32 bit обеспечивает максимальное количество бит по всем каналам;
* vid\_mode *512x384 / 640x480 / 800x600 / 1024x768 / 1280x1024*  — разрешение экрана;

Воспроизведение записанного разработчиками демо-ролика
1. Запустить сборку
2. Открыть консоль (клавиша ~)
3. Ввести команду `demo_play l1`

Возвращение отображения оружия в сборку

1. Открываем файл *System.ltx*
2. Находим строчку `visuаl=li_health.ogf`
3. Меняем `li_health.ogf` на `_rail.ogf`

Возвращение фоновой музыки, спавна монстров и различных точек спавна главного героя

1. Открываем файл *game\data\l1\_day\level.ltx*
2. Находим строчку `;track=track3` и удаляем знак `;` (фоновая музыка)
3. Находим строчку с секцией `[a]` и удаляем её (спавн монстров)
4. Находим строчку с секцией `[b]` и удаляем её (спавн ГГ в рандомном порядке)

Возвращение пользовательского интерфейса, шрифтов в консоли и прицела

1. Открываем папку *game\data\maps\Fonts* и удаляем у двух файлов префикс *Copy of*, соглашаясь на замену. Пример: переименовываем файл *Copy of game.tga* в файл *game.tga*
2. Открываем папку *game\data\maps\UI* и аналогично переименовываем файл *Copy of cursor.tga* в *cursor.tga*.

Подключение не используемой модели монстра alien.ogf в сборку

1. Открываем файл *level.ltx* и находим строчку `[alien_mover_0261]`
2. Ниже находим параметр `visual` и меняем значение `alien1.ogf` на `alien.ogf`
3. На оригинальной точке спавна поворачиваемся назад и идем по лестнице вверх — там будет монстр с нашей моделью.

В составлении руководства принимали участие *DecabristM* и *Vector*

## Интересные факты

* При запуске сборки открываеся загрузочный экран в виде эротической фотографии.
* По пути *game\data\SOUNDS\track0.wav* находится песня «Земля» группы «Маша и Медведи», являющаяся вырезанным фрагментом из издания «Брат 2. Музыка к фильму».
* В сборке используются конфигурационные файлы, наследованные от игры *Alien Logic*: в файле *System.ltx* остались секции для работы меню из этой игры, а в *startup.ltx* прямо упоминается её компания-разработчик White Lynx и название одного из её проектов — *The Returning*.
* В корневой папке находится редактор двоичных файлов *HIEW.EXE* версии 6.15, предназначенный для запуска на операционных системах MS-DOS и Windows (совместим до Windows XP).

## Галерея

* Скриншоты с ECTS 2001 (5 сентября 2001 года)

* Пользовательские скриншоты
* Модель главного героя
* Jumper
* Mover
* Вход в храм
* Внутренний коридор
* Лестница
* Фрески ацтеков
* Бассейн
* Водоём

## Примечания

1. ^ Вопреки распространенному мнению, что храм принадлежит ацтекам, текстуры для локации были сделаны из фотографий древнего города майя Чичен-Ица.
2. ^ При падении с высоты и столкновении с врагами.
3. ^ Начинает двигаться в произвольно выбранном направлении, либо перестает двигаться вообще, при этом не отнимается управление камерой.
4. ^ Из за добавления недокументированной движком секции *[a]*, идущей после секции *[mobileobjects]*, отвечающей за спавн врагов.
5. ^ Текстуры прицела и шрифтов для консоли и HUD были заменены на пустые, но оригинальные текстуры остались в ресурсах.
6. ^ В конфигурационных файлах модель рельсотрона была заменена на модель аптечки из *Quake III*, отображающейся только в режиме от третьего лица.
7. ^ На уровне применяется только система порталов.

Ссылки
1. ^ News: Oblivion Lost - Action Titel von GSC — *Gameplex* (5 сентября 2001) (нем.) (архивная копия страницы).
2. ^ S.T.A.L.K.E.R.: Shadow of Chernobyl // 790 скриншотов (скрины, screenshots) на AG.ru — *AG.ru* (архивная копия страницы).
3. ^ PVS: Potentially Visible Set / Графика / Термины / Программирование игр / GameDev.ru — Разработка игр — GameDev.ru (29 марта 2007 года).
4. ^ Occlusion Culling with Hierarchical Occlusion Maps — Department of Computer Science University of North Carolina at Chapel Hill (июль 1998 года) (анг.).

Приложения
1. ^ xrPVS.cpp (*Pastebin* | текстовый файл | 3,91 Кбайт)
xrVis.cpp (*Pastebin* | текстовый файл | 6,42 Кбайт)