Найти в Дзене
Stronghold of gamedev

Игры изнутри : сетевой код

Более 15 лет назад у игроков наконец появилась возможность играть вместе, и не в какие-то автоматы с примитивными играми, а в полноценные технически сложные творения. Подраться в Tekken, пройти Resident Evil, погоняться в Gran Turismo на раздвоенном экране - все это не имеет никакого отношения к сетевой магии, но задало вектор развития мультиплеерной составляющей.
Первые MMORPG будоражили численностью игроков на серверах, а сейчас будоражат королевские битвы, где сервер обрабатывает данные сотни игроков с молниеносной скоростью. Заслуга сервера? Частично. За те объемы данных, что прыгают между сервером и клиентом, отвечает сетевой код. Какая информация обычно путешествует по кабелю и когда ей нужно это делать? В этой статье. Базовый набор Самым главным в мультиплеере является конечно положение, передвижение игроков и здесь можно всякого наворотить. Допустим шутер, что играет 16 игроков, нужно ли каждый тик серверу отправлять каждому из них местоположение остальных 15? Скорее всего.
А
Оглавление

Более 15 лет назад у игроков наконец появилась возможность играть вместе, и не в какие-то автоматы с примитивными играми, а в полноценные технически сложные творения.

Подраться в Tekken, пройти Resident Evil, погоняться в Gran Turismo на раздвоенном экране - все это не имеет никакого отношения к сетевой магии, но задало вектор развития мультиплеерной составляющей.
Первые MMORPG будоражили численностью игроков на серверах, а сейчас будоражат королевские битвы, где сервер обрабатывает данные сотни игроков с молниеносной скоростью.

Заслуга сервера? Частично. За те объемы данных, что прыгают между сервером и клиентом, отвечает сетевой код. Какая информация обычно путешествует по кабелю и когда ей нужно это делать? В этой статье.

Базовый набор

Самым главным в мультиплеере является конечно положение, передвижение игроков и здесь можно всякого наворотить.

Допустим шутер, что играет 16 игроков, нужно ли каждый тик серверу отправлять каждому из них местоположение остальных 15? Скорее всего.
А вот ММОРПГ, на сервере которой пару тысяч игроков? Нет.

-2

Технически мир разбит на локации и хабы и сервер посылает клиенту информацию в основном о том, что внутри или поблизости, ну и конечно особых персон - рейд или группу, местоположение которых в мире можно узнать откуда угодно.

А когда персонаж попадет в дистанцию рендера, сервер пошлет еще информации :

  • Поворот, что может быть выражен одной переменной (поворот по Y), а так же для шутеров характерен вектор взора, на основе которого клиент создает анимацию поворота тела.
  • Состояние. Состояние приседания это не только булевая переменная, это анимация и изменение высоты контроллера-коллайдера, но имеет смысл передавать лишь сам факт, триггер приседания, к которому клиент сам все пришьет.
  • Особые действа. Будь то выстрел или бафф, сервер конечно их не мониторит, они как правило тригеррят сопроцесс, абстрактно существующий от других. В нем отдельно просчитаются траектории, запустится таймер и потом выгрузятся из памяти, будто их и не было.
  • Физика. Весьма непредсказуемый аспект, который может крайне сильно нагрузить сервер в следствии обилия циферок. (Динамичное изменение векторов каждой из вершин коллайдера физически симулируемого объекта. А что если их несколько?)
    Расчеты для ragdoll-физики, например, всегда происходят на стороне клиента, как и разрушаемость зданий или составных объектов. Сервер пошлет лишь точку применения сил и их численное значение.

Как не надо

Допустим гениальный Вася из 5-Б, из найденных в интернете ассетов и обрывков кода сотворил свою MMORPG с фэнтезийным блэкджеком, грудастыми эльфийками и рейд-боссом математичкой.

Дабы пристально наблюдать за гриндящими кабанчиков одноклассниками, в центре королевства Вася воткнул замок и трон, но, увы, в "Wow killer starter pack" не нашлось анимации задумчивого восседания, пришлось делать самому.

Отныне каждый игрок сервера знал, когда Вася садится на трон, ибо каждый тик от сервера передавались положения и повороты каждой из косточек и вместо "Praise the Vasya" слышалась лишь отборная брань игроков с четырехзначным пингом.

-3

Соседние статьи с канала :
Как сломали Fallout 4
Игры изнутри : физика
Как создают волосы в играх