quake3live/svdemo.txt
serge_shubin 60b50ce224 Update svdemo manual: add LZ4 compression docs
Document svdemo_compress cvar and two-level compression scheme
(delta encoding + optional LZ4).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 05:25:43 +08:00

160 lines
7 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

===========================================================================
Серверные демо-записи (SVDEMO)
Руководство пользователя
===========================================================================
ОПИСАНИЕ
--------
Система серверных демо-записей позволяет записывать полное состояние
игрового сервера (все сущности, все игроки) и воспроизводить запись
с возможностью свободного перемещения камеры или просмотра от первого
лица любого игрока.
В отличие от обычных клиентских демо (запись только того, что видит
один игрок), серверная запись содержит полную картину матча.
КОНСОЛЬНЫЕ КОМАНДЫ
------------------
svdemo_record <имя>
Начать запись серверного демо. Файл сохраняется в
svdemos/<имя>.svdm внутри игровой директории.
svdemo_play <имя>
Воспроизвести серверное демо. Загружает карту из записи,
подключает зрителя автоматически.
svdemo_stop
Остановить текущую запись или воспроизведение.
При остановке воспроизведения происходит отключение от сервера.
НАСТРОЙКИ (CVARS)
-----------------
svdemo_autorecord <0|1> (по умолчанию: 0)
Автоматическая запись демо при каждой загрузке карты.
Файлы именуются автоматически: <карта>_ГГГГММДД_ЧЧММСС.svdm
Пример: q3dm6_20260323_141530.svdm
Для включения: set svdemo_autorecord 1
Значение сохраняется в конфигурации (CVAR_ARCHIVE).
svdemo_compress <0|1> (по умолчанию: 1)
Сжатие данных демо алгоритмом LZ4. Уменьшает размер файла
при незначительных затратах на производительность.
Включено по умолчанию. Установите 0 для отключения.
Значение сохраняется в конфигурации (CVAR_ARCHIVE).
Влияет только на запись — воспроизведение автоматически
определяет, сжат файл или нет.
ЗАПИСЬ
------
1. Запустите сервер и начните игру как обычно:
devmap q3dm6
2. Начните запись:
svdemo_record mymatch
3. Играйте. Все действия всех игроков записываются.
4. Остановите запись:
svdemo_stop
Запись также автоматически останавливается при:
- Смене карты (map, devmap, nextmap по таймлимиту/фраглимиту)
- Выключении сервера
Перезапуск карты (map_restart) НЕ прерывает запись.
ВОСПРОИЗВЕДЕНИЕ
---------------
1. Запустите воспроизведение:
svdemo_play mymatch
2. Карта загрузится автоматически. Вы подключитесь как зритель
со свободной камерой (полёт по карте).
3. Управление зрителем:
- Свободная камера: перемещайтесь как обычный спектатор
- Следование за игроком: нажмите MOUSE2 (USE) для входа
в режим следования
- Переключение между игроками: MOUSE1 (ATTACK)
- Выход из следования: MOUSE2 снова
4. В режиме следования вы видите игру от первого лица выбранного
игрока с полным HUD: здоровье, броня, боеприпасы, оружие.
5. Табло (TAB) показывает счёт записанных игроков.
6. Остановка:
svdemo_stop
Также воспроизведение останавливается автоматически при
достижении конца записи.
ФОРМАТ ФАЙЛА
-------------
Расширение: .svdm
Директория: svdemos/
Файл содержит:
- Заголовок: название карты, настройки сервера, конфигстроки
(имена игроков, модели, настройки игры)
- Покадровые данные: дельта-сжатые состояния сущностей и игроков,
изменения конфигстрок
Используется двухуровневое сжатие:
1. Дельта-кодирование: записываются только изменившиеся поля
сущностей и игроков между кадрами.
2. LZ4-сжатие (опционально): дополнительно сжимает блоки данных
каждого кадра. Включено по умолчанию (svdemo_compress 1).
Типичная 10-секундная запись занимает ~50 КБ.
Одна запись = одна карта. При смене карты запись останавливается.
ОГРАНИЧЕНИЯ
-----------
- Нельзя перематывать запись вперёд или назад.
- Если в записанной игре было 64 игрока (MAX_CLIENTS), один
из них не будет виден при воспроизведении (его слот занят зрителем).
- Воспроизведение требует наличия тех же pk3-файлов (карты, модели),
что использовались при записи.
- Демо несовместимы между разными версиями движка, если изменился
формат сетевых структур.
ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ
---------------------
Автоматическая запись всех матчей:
set svdemo_autorecord 1
devmap q3dm17
(все матчи на этом сервере будут записываться автоматически)
Запись конкретного матча:
devmap q3tourney2
svdemo_record duel_finals
(играть...)
svdemo_stop
Просмотр записи:
svdemo_play duel_finals
===========================================================================