Раздел
Мультиплеер
Как несколько игроков живут в одном мире: задержка и потери, сервер и клиенты, репликация, предсказание, откат, сессии и читы.
Основы
Как устроен мультиплеер: пакеты, задержка и потерискороЧто происходит, когда игроки далеко друг от друга: сообщения идут десятки миллисекунд, теряются и приходят не по порядку. Почему мультиплеер — это всегда спор о том, что случилось на самом деле.Сеть: хост, клиент и кто правскороКто решает, что произошло в мультиплеере, и почему клиент видит мир чуть в прошлом.Сервер, хост или все равныскороКак соединяют игроков: выделенный сервер, один из игроков как хост, все со всеми — и чем платят за удобство: читами, задержкой, ценой серверов и уходом хоста.Первая сетевая игра в UnrealскороПо шагам: запуск нескольких игроков в редакторе, что реплицируется само, здоровье по сети, выстрел через сервер и проверка с искусственной задержкой.
Синхронизация
Репликация в Unreal: свойства, вызовы и ролискороКак сервер рассказывает клиентам о мире: какие акторы и свойства отправляются, вызовы с клиента на сервер и обратно, роли и владелец, кому что видно и что важно.Предсказание: почему у тебя нет задержкискороКак клиент двигает героя сразу, не дожидаясь сервера, а потом сверяется: предсказание, исправление расхождения, повтор ввода. Почему героя иногда дёргает назад.Интерполяция и компенсация лагаскороПочему чужие игроки двигаются плавно, хотя данные приходят рывками, и как сервер решает, попал ли выстрел в того, кого ты видел в прошлом: буфер интерполяции и перемотка времени.Трафик: что слать и как частоскороКак уместить мир в узкий канал: частота обновлений, важность и дальность, сжатие чисел, отправка только изменений — и почему сто игроков дороже десяти не в десять раз.Откат: неткод файтинговскороКак файтинги прячут задержку: каждый играет со своим вводом сразу, а при расхождении игра откатывается и пересчитывает кадры. Детерминизм, сохранение состояния и почему это трудно для больших миров.
Сервис
Сессии и подбор игроковскороКак игроки находят друг друга: сессии, лобби, приглашения друзей, подбор по уровню и региону, сервисы платформ вроде Steam и Epic Online Services и проход сквозь домашние роутеры.Выделенные серверы: запуск и хостингскороКак собрать и запустить сервер игры без экрана: сборка, порты, запуск в облаке по требованию, обновления, логи и сколько стоит держать серверы.Читы: почему клиенту нельзя веритьскороКак жульничают в сетевых играх — скорость, стрельба сквозь стены, подмена пакетов — и как защищаются: сервер проверяет всё важное, клиент знает только нужное, античит-системы.
Разборы
Overwatch: архитектура и неткодскороКак Blizzard устроила игровой код из сущностей и систем и как предсказание и перемотка времени делают стрельбу честной для всех. По докладу Тима Форда «Overwatch Gameplay Architecture and Netcode» (GDC 2017).Rocket League: физика машин по сетискороКак Psyonix сделала физику машин и мяча, которая у всех игроков ощущается мгновенной: свой физический шаг, предсказание и откат для машин и мяча. По докладу GDC 2018 «It IS Rocket Science!».