Skip to content

Multiplayer RU

Yahasi edited this page Jul 6, 2026 · 2 revisions

🌐 English · Русский

← Главная · Управление →

Мультиплеер

В Nova есть клиент-серверный сетевой слой с общей сценой и встроенным чатом. Он работает на двух транспортах на одном и том же порту: надёжный TCP для всего структурного и ненадёжный UDP fast-path для двух высокочастотных потоков (трансформы игроков и физика). К одному серверу могут подключаться несколько клиентов, и каждый игрок видит остальных как небольшой подвижный аватар.

Настройка

Выберите сессию в мастере настройки:

  1. Режим сессиионлайн.
  2. Сетевая роль → поднять Server или подключиться как Client.
  3. Мир → сервер Создаёт или Загружает мир; клиент просто подключается.
  4. Сеть → порт прослушивания сервера, или IP + порт сервера на клиенте.

Клиент, подключившийся к серверу, скачивает мир хоста автоматически.

Сервер — это владелец мира (authority)

  • Сервер отправляет полный мир подключающимся клиентам — большие меши режутся на чанки для надёжной передачи — а затем транслирует живые дельты правок, изменения настроек графики и обновления физики.
  • Клиенты могут летать и осматривать, но изменять общий мир может только authority. Подключённый клиент может открыть редактор, чтобы выбирать и осматривать, но его изменения не затрагивают общий мир.

Что синхронизируется

  • Мир и правки (TCP) — полный мир при подключении, затем пер-правочные дельты (спавн / перемещение / удаление / изменения свойств) и тумблеры графики F2/F3/F4/F6.
  • Физика (UDP fast-path) — каждое сдвинутое authority тело передаёт полное состояние (позиция, ориентация и скорость) на ~20 Гц; клиенты экстраполируют и плавно подводят к нему, поэтому объекты падают, катятся и кувыркаются синхронно (а не заморожены между обновлениями). Гравитация самого игрока считается локально у каждого пира. См. Физика.
  • Текстуры (TCP)байты PNG текстурированного объекта передаются пирам, поэтому клиент без файла всё равно видит её (и при синхронизации мира, и при живой правке/спавне). См. Текстуры.
  • Игроки (UDP fast-path) — позиция и направление каждого пира (аватар) передаются каждый кадр; сообщения чата едут по TCP.

Транспорт (надёжный TCP + UDP fast-path)

Сеть работает на двух транспортах на одном и том же порту:

  • Надёжный TCP несёт всё, что должно прийти целиком и по порядку: синхронизацию мира при подключении, чанки мешей и текстур, чат, правки мира, спавны, настройки графики / мира и хэндшейк подключения.
  • Ненадёжный UDP несёт два высокочастотных потока, где важнее свежесть, а не каждое значение: трансформы игроков (каждый кадр) и батчи синхронизации физики (~20 Гц).

UDP-путь — best-effort, с предохранителями, чтобы ничего критичного не терялось:

  • Latest-wins фильтр последовательности per-(отправитель, тип-пакета) (монотонно неубывающий) отбрасывает переупорядоченную более старую датаграмму, поэтому устаревший кадр никогда не перезаписывает более новый.
  • Сервер узнаёт UDP-эндпоинт каждого клиента из его входящих датаграмм; пока не узнал (примерно один кадр после подключения), UDP-отправки этому пиру автоматически откатываются на TCP, так что подключение не теряется. UDP также полностью откатывается на TCP, если не смог забиндиться.
  • Большой батч физики режется на MTU-безопасные чанки (каждая датаграмма < ~1200 Б, поэтому IP её не фрагментирует). Все чанки одного flush'а делят один номер последовательности, поэтому невосприимчивы к переупорядочиванию внутри flush'а; потеря чанка или целого flush'а поглощается пер-объектным применением + экстраполяцией — следующий батч всё исправит.

Чат

Нажмите T, чтобы открыть чат (только онлайн). Это обособлённое окно с переносом строк и прокруткой, которое никогда не наезжает на HUD: Enter отправляет, Esc отменяет, PgUp/PgDn или ↑/↓ прокручивают историю. См. Управление.

Clone this wiki locally