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