Q2PRO-XНа сайт Q2PRO-XСодержаниеRUEN
II. Развитие клиента

Одиночная игра с новыми правилами

Май — август 2026 · эксперименты к Q2PRO-X 1.5

На знакомой арене легко услышать выстрел раньше, чем увидеть того, кто стреляет. Но если из-за поворота вместо другого игрока выйдет строгг, привычка уже не подскажет всего. У него другое оружие, другой темп атаки; проход, удобный для дуэли, превращается в ловушку при встрече с несколькими монстрами. В мае, вслед за выпуском Q2PRO-X 1.3, начались эксперименты с такой одиночной игрой. К выходу Q2PRO-X 1.5 они составили самостоятельную часть клиента — со своими правилами, настройками и игровой библиотекой.

Зачем понадобилась собственная game DLL

До этого многие изменения можно было показать, не вмешиваясь в решение сервера: нарисовать снег, осветить стену, иначе обработать звук. Однако картинка не может решить, сколько урона наносит лава и где появится новый монстр. В Quake II этим ведает игровая библиотека, game DLL. Q2PRO-X получил собственную её версию в отдельной папке. Обычная библиотека baseq2 оставалась на месте, а новые правила включались для локальной одиночной игры. Они не переходили на чужой сервер вместе с подключившимся клиентом.

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

Случайность тоже можно было сохранить. Нулевое зерно давало новую раскладку при загрузке, а заданное число позволяло повторить её. Это было полезно и для игры, и при поиске ошибки: неудачный случай переставал исчезать при следующем запуске. При этом замена обязана была учитывать сам уровень. Водный монстр, оказавшийся на сухой площадке, не делал кампанию интереснее — он только выдавал промах программы.

Монстры на deathmatch-картах

У сетевой карты уже есть места появления участников, оружие, броня и коридоры, рассчитанные на бой. Режим тренировки использовал эту основу: на подходящих DM-картах появлялись монстры, хотя игра запускалась в одиночку. Можно было выбрать их число и сложность, разрешить возвращение после смерти и задать задержку. Новое существо размещалось на свободной точке; соседство вплотную к игроку или другому живому монстру не считалось подходящим местом.

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

При желании включался раунд со счётом. Убийства приносили очки, полученный урон отнимал их; достижение выбранной суммы означало победу, смерть игрока — поражение. Так у прогулки с монстрами появлялась измеримая цель. Это отдельная ветвь одиночной игры, а не ранняя версия дуэльных ботов OpenTDM-X: строгги и обучаемый соперник решают разные задачи и подчиняются разной логике.

Вода, в которую больше нельзя прыгать

Ещё сильнее память игрока проверяла замена жидкостей. В обычной карте он без раздумий срезал бы путь через воду; после подмены там находилась настоящая лава. Менялся не только цвет: игровая библиотека применяла урон и физику новой жидкости, а изображение и контакты AVFX следовали той же замене. Обратный вариант превращал лаву в воду. Можно было включить оба направления сразу: каждый исходный водоём менялся независимо, без бесконечного превращения туда и обратно.

Здесь особенно легко было получить красивую, но неверную сцену. Если вода уже обжигала, а снег и дождь продолжали реагировать на неё как на прохладную поверхность, игрок видел две несовместимые версии происходящего. Поэтому материал, урон и эффекты контакта пришлось связать. Такие эксперименты ограничили одиночной игрой; в сетевом матче клиент не вправе самостоятельно превращать безопасный бассейн в опасный.

Знакомые стены и незнакомые силуэты

Другой набор экспериментов менял видимую форму уровня: поверхности получали наклон и неровности, подходящие острые углы — скругление. AVFX мог следовать обновлённой видимой поверхности, чтобы лужа или снежный след не повисали отдельно от пола. Это было изменение изображения, а не перестройка карты для движения: столкновения сохраняли исходную геометрию. Разница существенная, и её нельзя смешивать ни с настоящей заменой жидкости, ни с аппаратной тесселяцией, которая появилась в развитии рендера.

Повторяющихся монстров тоже делали различимыми. Масштаб, оттенок, пропорции и асимметрия менялись, но хитбокс, урон и поведение оставались прежними; ноги должны были удерживаться на полу. В отдельных локальных настройках, напротив, AVFX действительно получал игровое действие: метеор мог повредить монстра или взорвать бочку, молния — задеть разрушаемый объект. По умолчанию такие воздействия выключались. Красивое небо не должно было самовольно менять сложность прохождения.

Позднее к этим занятиям добавился «Свободный мир» и возможность наблюдать за живностью. Но важный поворот произошёл раньше: Q2PRO-X перестал быть только другим способом смотреть на Quake II. В пределах собственной одиночной игры он позволил менять сам опыт прохождения, сохраняя привычный вариант рядом, доступным без этих экспериментов.

В одиночном эксперименте меняется действующая жидкость: её вид, урон, физика и контакты AVFX. Схема двух независимых направлений подмены.
В одиночном эксперименте меняется действующая жидкость: её вид, урон, физика и контакты AVFX. Схема двух независимых направлений подмены.

Скачать книгу в PDF