Экспертиза уровня ДТФ или как устроена сеть в Palworld и Helldivers 2

Совмещаю приятное с полезным. Тыкаю носом слишком самоуверенного дтфера в его короткие штаны и заодно объясняю, как работает сетевая составляющая в играх-рекордсменах.

Имена действующих лиц изменены
Имена действующих лиц изменены

Контекст

На прошлой неделе у Helldivers 2 были проблемы с серверами. Один из пользователей ДДТ отметил, что большой интерес игроков можно было предвидеть, ведь например у Palworld было 3 миллиона онлайна.

Что же не так с ответом Клуба навозных жуков, помимо того, что он написан в высокомерно-дегенератской манере ДВД? Он совершенно неверный. Но все равно умудрился собрать 80 лайков. Челы блять. Аахаххаха. Зачем позоритесь-то?

Что такое p2p и что там у покемонов?

Экспертиза уровня ДТФ или как устроена сеть в Palworld и Helldivers 2

P2P, или «peer-to-peer», это как вечеринка, где каждый приносит что-то вкусное и делится этим с другими. Нет «главного шефа» (сервера), который бы готовил и раздавал всем еду. Вместо этого каждый участник (клиент) сам занимается своим обслуживанием.

В такой сети клиентам приходится доверять друг другу. И если один из клиентов говорит, что поймал покемона, то все остальные клиенты ему верят и удаляют его на своей стороне.

P2P может быть построена через реле или представлять собой меш. Реле — это такой легковесный сервер, который передает и валидирует сообщения игроков. А в меше каждый клиент сам отвечает за передачу своих сообщений другим.

Реле и меш
Реле и меш

Среди плюсов этого подхода, действительнго, снижение расходов на инфраструтуру. Ведь если ты подключил двух игроков друг к другу, то от тебя вообще не требуется наличие сервера и каких либо вычислительных мощностей.

Поэтому у Palworld'a был такой гладкий старт? Нет. Palworld не использует P2P

UE5

Palworld написана на Unreal Engine 5, который использует клиент-серверную архитектуру. Теоретически, ничто не мешает даже на UE5 написать P2P сеть. Но а на практике — это как купить Теслу и переделать ее под бензиновый двигатель.

Для такой архитектуру действительно требуется больше серверов и мощностей. И Pocket Pair разрешила игрокам самим хостить их. Для этого в UE есть два режима: Listen Server и Dedicated Server.

В Listen Server один из клиентов (хост) выступает сервером. Он берет на себя дополнительную нагрузку: AI, физику, игровую логику. Получется, по сравнению с одиночной игрой, твой ПК начинает обслуживать не только тебя, но и твоих корешей. Зато ты в это время с кайфом играешь прямо на сервере без сетевых лагов или потерь пакетов.

На Dedicated Server локально никто не играет. Чтобы работать более эффективно такой сервер опускает просчеты графики, звука, UI и прочих ориентированных на клиент систем.

Что интересно, даже одиночные (Standalone) игры на UE написаны на схожий манер

The game is running as a server, that does not accept connections from remote clients.... It will run both server-side logic and client-side logic as appropriate for the local players.

описание Standalone из Networking Overview UE

А у Helldivers 2?

А вот Helldivers 2 как раз и использует P2P архитектуру. Это значит, что каждый клиент слепо доверяет другим клиентам, и нет одного авторитарного сервера, которому можно было верить. Поэтому-то, мы и имеем кернел-левел ёба-защиту на клиенте.

Экспертиза уровня ДТФ или как устроена сеть в Palworld и Helldivers 2

Я писал, что такой подход менее требователен, но старт у Helldivers 2 был заметно мучительней клиент-серверного Palworld. Всё из-за того, что каждая игровая сессия все равно должна общаться с серверами. В основном это матчмейкер и мастер-сервера. Они нужные для поиска и подключения к играм, социальных фич, сохранения прогресса и так далее. Так же у Helldivers 2 есть сервера на которых развернут мета-гейм — галактическая война в которой принимают участие все клиенты.

А почему мы должны верить тебе, а не Клубу навозных жуков?

Простите за флекс
Простите за флекс

Helldivers 2 написана на довольно интересном движке Stingray. Его перестали поддерживать году так в 2018. После этого студия получила все исходники и сама продолжила работу над ним. Какое сетевое решение было у него по умолчанию я не знаю. В любом случае Arrowhead не стали экспериментировать и выбрали знакомую им по работе с оригинальными Hellidvers P2P сеть.

В игре могут быть сотни сущностей: игроки, враги, NPC, гранаты, снаряды. Контроль над ними разделен между клиентами. Используется модель master-slave. Ваш клиент будет обрабатывать всё, что у него находится в массивах master. Отправлять это другим клиентам, а взамен получать пакеты для slave-сущностей.

Черт знает, что я хотел показать
Черт знает, что я хотел показать

Если вы сагрите пачку жуков, то произойдет миграция: контроль над ними перейдет вашему клиенту и вы станете их мастером. Это очень клевый и сложный момент. Такой подход сразу нивелирует пинг и разного рода рассинхроны. А сложность — это вообще один из главных недостатков P2P сетей наравне с секьюрностью.

И кстати. У HD2 уже больше 7 миллионов копий. Только тихо! Я вам этого не говорил.

Экспертиза уровня ДТФ или как устроена сеть в Palworld и Helldivers 2
373373
175 комментариев

Тыкаю носом слишком самоуверенного дтфера в его короткие штаныБесполезная работа, они все равно не читают твоих аргументов.
Их высказывания в основном направлены на то, чтоб тебе хуёво стало и жопу рвало, так то им похуй как там сетевая, они не в курсе, что хелдайверс и палмворд это реальные игры.

Им надо было тебя порвать и они успешно справились, теперь ты лонгишь под их смех

174

Зато мне было интересно почитать об устройстве онлайна в этих играх, так что уже полезно, с точки зрения контента

90

Ну не всегда именно так. Не каждый долбоёб в интернете тролль. Иногда это просто долбоёб

15

Комментарий удалён модератором

бля... Какая же жиза, большая же часть даже не прочитает полностью пост и дойдёт лишь до конца абзаца.

2

Комментарий недоступен

1

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

в итоге - тебе лайк, а клуб навозных жуков пусть сосет

50