Форматы демок 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 года