Форматы демок Quake III

С выходом в свет новой, на тот момент, версии 1.25 у quake-community возникла новая проблема, связанная с её несовместимостью со старыми версиями демонстрационных записей игр. Она была обусловлена внедрением в сетевой код движка новой версии (n48) протокола соединения. Названия демок новой версии в расширении имели приставку “_48”, дающую понять, с использованием какой версии протокола они были записаны. Многих игроков это вводило и продолжает, по сей день вводить в заблуждение.
Для борьбы с проблемой совместимости писались программы-конвертеры вроде Quake 3 Demo Converter (автор - Alan 'Strider' Kivlin). Последующие патчи показали, что ID намерена и дальше совершенствовать сетевой код, а значит, что вновь появляется проблема совместимости. Выходом являлось дальнейшее развитие программ-конвертеров, это лишь один из нескольких возможных вариантов. Я же сейчас расскажу вам о том, которым пользуюсь я.
Второй способ состоит в подмене исполняемого файла. Архитектура всей трилогии QUAKE крайне проста и состоит из трех основных частей:

  • основные ресурсы игры (файл *.PAK или *.PK3)
  • файл настройки (config.cfg или q3config.cfg)
  • исполняемый файл (quake.exe)

В перовой части QUAKE исполняемый файл являлся лишь хранилищем скриптов. Зная исходный код, любой программист мог без особых трудов модифицировать исполняемый файл и добиться изменений в некоторых технологических ньюансах (GLquake и Tenebrae) или портировать игру под другую операционную систему (Winquake, Quake for MacOS). Это доказывает, что исполняемые файлы в “QUAKE ENGINE” являлись как бы посредником между конечным пользователем и игрой, а значит, любые эксперименты с ним не повлияют на саму игру в целом. Следуя принципу преемственности, этот же подход использовался и в QUAKE 2/3. Таким образом, получается, что исполняемые файлы разных версий QUAKE3 вполне уживаются друг с другом, даже находясь в одной папке. Следовательно, сложив в корневой каталог QUAKE3 исполняемые файлы от необходимых версий можно получить возможность просмотра демонстраций без конвертирования. То есть для просмотра какой-либо демки достаточно запустить версию, поддерживающую ее формат. Что и требовалось доказать.

Связь между версией игры и расширением демки устанавливает следующая таблица:

Расширение
Версия
DM3
1.11 - 1.17
DM_48
1.25 - 1.27g
DM_66
1.29f - 1.30
DM_67
1.31
DM_68
1.32

Замечание:
2. Бывает, что версии QUAKE3 вышедшие до 20.08.01 (то есть до Релиза №1.30) выкидывают сообщение об ошибке сразу же после запуска. Лечится это изъятием из папки "BASEQ3" PK3-файлов не соответствующих запускаемой версии. Например, если вы запустили Final Release 1.0, то в папке "BASEQ3" должен быть только "PAK0.PK3", других файлов ресурсов (естественно кроме дополнений вроде карт и пр.) там быть не должно, их можно переместить в какую-нибудь временную папку или переименовать. Полный список PK3-файлов используемых данной версией можно узнать в её файле-описании в строке "ИЗМЕНЕНИЯ" ("CHANGES").

Всем большое спасибо, аплодисменты не нужны!

Urfin
19 сентября 2003 года 

Всего комментариев: 1