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

Q2PRO-X: первые беты

29 марта — середина апреля 2026 · Q2PRO-X 0.95–Q2PRO-X 0.99

В ночь на 29 марта 2026 года началась разработка Q2PRO-X. Основа уже была — Q2PRO с его многолетней поддержкой сетевой игры. Теперь хотелось вовремя видеть собственный выстрел, удобнее находить настройки и переходить с другого клиента без неприятных сюрпризов в управлении. При этом победу в матче по-прежнему должен был определять сервер. Если программа рисует более быстрый выстрел, это ещё не даёт ей права раньше нанести урон.

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

Меню Weapon Predicts в Q2PRO-X: локальное предсказание включается отдельно для разных видов оружия. На снимке — позднее оформление системы, работа над которой началась в первых бетах.
Меню Weapon Predicts в Q2PRO-X: локальное предсказание включается отдельно для разных видов оружия. На снимке — позднее оформление системы, работа над которой началась в первых бетах.

Q2PRO-X 0.95 и Q2PRO-X 0.95-a

Бета Q2PRO-X 0.95 стала первым сохранившимся публичным выпуском. В пакет вошли исполняемый файл, библиотеки, меню, справка и русские руководства. Его добавляли к своей установке: карты, модели и конфиг оставались у владельца. Это оказалось хорошей проверкой совместимости. В подготовленной папке клиента всё могло работать, а в принесённом игроком конфиге находилась настройка, меняющая поведение оружия или окна.

Вслед за первыми отзывами появилась Q2PRO-X 0.95-a. У бластера разошлось поведение одиночного выстрела и удерживаемой очереди. Скрытая модель оружия нарушала предсказание, хотя её видимость вообще не должна была влиять на стрельбу. Вместе с этими исправлениями уточнили выбор графического пути и поведение Alt+F4. Небольшой добавочный выпуск собирался из очень конкретных неприятностей, замеченных людьми в игре.

Q2PRO-X 0.96: привычные разрешения на новом экране

В Q2PRO-X 0.96 занялись режимами изображения. Сетевые игроки нередко сохраняли формат 4:3 и невысокое разрешение на широком мониторе. Им дали выбор частоты, полноэкранный рабочий стол с боковыми полосами и отдельный переход в видеорежим. Различия между вариантами проявлялись при сворачивании и восстановлении, поэтому одной проверки картинки не хватало. Нашлась и ошибка мыши: боковые полосы, на которых игры уже не было, всё ещё участвовали в обработке ввода.

Q2PRO-X 0.97: гипербластер, лифты и защита OLED

В Q2PRO-X 0.97 проверяли гипербластер: вспышка, анимация и снаряд должны относиться к одному выстрелу, а отпускание кнопки — останавливать очередь. Показания Laghax помогали искать источник задержки. На лифтах исправляли дрожание, возникавшее при совместной работе сглаживания ступеней и движения платформы. Появилась и защита OLED: в расчёт брали простой клиента и чёрные боковые полосы. Короткий список изменений объединял ошибки, которые встречались в совершенно разных обстоятельствах, поэтому одного пробного запуска для него не хватало.

Q2PRO-X 0.98: Alt+Enter и скрытое оружие

В Q2PRO-X 0.98 отделили обычное окно от полноэкранных вариантов. Проверяли Alt+Enter, сохранение разрешения, приглушение звука в неактивном окне и защиту экрана. С оружием опять вмешивались настройки показа: боковая модель, центральная, полностью скрытая. Затем меняли наблюдаемого игрока. В одной установке выстрел выглядел нормально, а на другом клиенте появлялось лишнее действие или пропадало настоящее — проверку снова проводили с двух сторон соединения.

Q2PRO-X 0.99: последний патрон

13 апреля занялись бетой Q2PRO-X 0.99. В ней разбирали, среди прочего, выстрел из пустого оружия: патроны уже кончились, а клиент ещё успевал показать вспышку. Свериться с числом в HUD было недостаточно — сервер пока не сообщил о расходе, который клиент уже предсказал. Из остатка стали вычитать неподтверждённые выстрелы и проверять цену следующего. У супершотгана это два патрона, у чейнгана расход меняется с раскруткой. Последний патрон заставил аккуратно пересчитать все предыдущие.

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

Супершотган расходует два патрона за выстрел. Именно такие различия пришлось учитывать при проверке последнего патрона.
Супершотган расходует два патрона за выстрел. Именно такие различия пришлось учитывать при проверке последнего патрона.

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