===========================================================================
                    Серверные демо-записи (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


===========================================================================
