• Из-за обновления GTA 5 (был добавлен новый патч) может временно не работать вход в RAGE Multiplayer.

    Ошибка: Ваша версия Grand Theft Auto V не поддерживается RAGE Multiplayer.
    ERROR: Your game version is not supported by RAGE Multiplayer.

    Данная ошибка говорит о том, что GTA V обновилась до новой версии (GTA Online тоже). Вам необходимо обновить саму игру в главном меню вашего приложения (Steam / Epic Games / Rockstar Games).
    Если после этого RAGE:MP все равно не работает - вам нужно дождаться выхода патча для самого мультиплеера (обычно это занимает от нескольких часов до нескольких дней).

    Новости и апдейты Rockstar Games - https://www.rockstargames.com/newswire/
    Статус всех служб для Rockstar Games Launcher и поддерживаемых игр: https://support.rockstargames.com/ru/servicestatus


    Grand Theft Auto 5 (+ GTA Online) последний раз были обновлены:

CloudV:MP Новый мультиплеер (WIP)

Кликни, чтобы узнать больше!

saint korn

Участник портала
12 Апр 2022
17
9
63
Привет!

Мы пишем свой мультиплеер для GTA V, называется CloudV:MP. Сервер авторитетный, весь мир держится на нём, клиент только рисует. Основную ставку делаем на плотность, то есть чтобы реально много народу собиралось в одном месте и синхра не рассыпалась, как на рейдже и т.д. Видео с тестов и презу с нагрузочными замерами приложил.

Сервер целиком на Rust, с нуля. Мир построен на ECS, взяли bevy_ecs. ECS это когда сущности не объекты с методами, а наборы компонентов, лежащие плотными массивами, и системы гоняют по ним пачками. За счёт этого оно кэш-френдли и нормально параллелится, обычная ООП-модель на такой плотности просто легла бы. Тысячи сущностей в одном такте тянутся спокойно.

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

Сеть своя, бинарный протокол поверх UDP, есть и QUIC (quinn). Асинхронка на tokio, на проводе сериализуем через postcard, он компактный. На сессию два канала: надёжный для важного и потоковый для позиций.

С шифрованием чуть заморочились. Ключи меняются через X25519 (ECDH), сервер подписывается Ed25519, весь трафик под AES-GCM. Хеши и MAC на BLAKE3, SHA-2, HMAC. Коннект прикрыт от спуф-флуда: stateless SYN-cookie плюс рейт-лимит по IP ещё до того, как вообще выделяется сессия и крипта, так что задёшево заддосить хендшейк не выйдет.

Вся векторная математика на glam (SIMD), с детерминированным режимом, это важно чтобы позиции и физика сходились одинаково у всех.

Про репликацию: есть Area of Interest, он же AOI (сетка релевантности, кому кого вообще видно), клапан плотности, дельты с кейфреймами.

Метрики в Prometheus, распределённый трейсинг через OpenTelemetry, краши и паники летят в Sentry/GlitchTip. В реалтайме видим частоту такта, задержки p50/p95/p99, потери пакетов, CPU и RAM, ширину канала на игрока. На этом и строятся замеры из презы.

Нагрузку тестируем не абстрактно. Гоняем флот ботов, которые дают настоящую нагрузку игрока: тот же путь ingest, авторинг, раздача, тот же трафик и стоимость такта, а не пустышки. Конкретные цифры по ёмкости, задержкам и структуре такта в презентации.

Инфра обычная, Linux, systemd, nginx. Деплой самопроверяющийся, катим целый коммит, собираем на боксе, рестарт, и сервер сам подтверждает что поднялся именно нужный билд, иначе автооткат.

Из интересного:

Интерес-менеджмент по приоритетам. Не каждой сущности в зоне видимости нужен апдейт каждый такт. Далёкая машина спокойно обновляется пару раз в секунду, а пешеход рядом идёт на полной частоте. Каждая сущность копит приоритет (важность на обратный квадрат расстояния), в такт уходят самые накопившие в рамках бюджета, остальные продолжают копить и рано или поздно тоже отправятся. Ничего не голодает и не мигает, а в тот же байтовый бюджет влезает в разы больше сущностей, чем при тупом "ближние N каждый такт".

Лаг-компенсация. Попадания считаются на сервере с перемоткой. Сервер оценивает смещение часов каждого клиента по обычному трафику и, когда игрок стреляет, откатывает мир к тому моменту, который стрелок реально видел у себя, и только тогда проверяет попадание. То есть стрельба честная и при пинге, а не "я же попал, а урона нет"

Оверлоад-ладдер. Сервер меряет, сколько занимает сборка такта (со сглаживанием), и если начинает не влезать в бюджет, мягко деградирует по ступеням: сначала режет частоту обновления дальних, потом ужимает радиус видимости, потом включает жёсткий кап на видимое. Когда нагрузка отпускает, так же ступенчато возвращается, с гистерезисом чтобы не дёргаться туда-сюда. Смысл в том, что под пиком сервер сам подстраивает качество, а не падает.

Скриптинг. Геймод пишется на C# или на JavaScript, через наш мост. То есть логику сервера можно писать на нормальных языках, а не только на условном Lua.

Видео

Жду вашего фидбека! Спасибо)
 

Вложения

  • CloudV-MP — нагрузочное тестирование.pdf
    456 KB · Просмотры: 70
Последнее редактирование:

Farko

nc -lvnp 4444
28 Окт 2025
503
114
77
Выглядит очень интересно. Когда вы планируете первый публичный бета-тест или официальный запуск проекта?
Рассматриваете ли вы возможность открытия исходного кода (open source), или проект останется полностью закрытым?
Какое максимальное количество реальных игроков вы уже одновременно тестировали на одном сервере?
 

saint korn

Участник портала
12 Апр 2022
17
9
63
Выглядит очень интересно. Когда вы планируете первый публичный бета-тест или официальный запуск проекта?
Рассматриваете ли вы возможность открытия исходного кода (open source), или проект останется полностью закрытым?
Какое максимальное количество реальных игроков вы уже одновременно тестировали на одном сервере?
По срокам точно не скажу, загадывать не буду, но стараемся как можно скорее)
Исходники открывать не планируем, проект закрытый. Но сделаем максимально удобные и комфортные условия, чтобы на нашей основе можно было пилить свои проекты.

Реальных игроков одновременно пока тестировали немного, вживую было 6 человек. Но, как отмечал в PDF, нагрузку гоняем не абстрактную: боты идут по тому же пути, что и живой игрок, дают тот же трафик и ту же стоимость такта, а не пустые заглушки. Так что цифры по нагрузке честные, просто сняты под контролируемой нагрузкой, а не на живой толпе
 
Реакции: youngBeaver

saint korn

Участник портала
12 Апр 2022
17
9
63
Если есть вопросы, то можете написать мне в личные сообщения в Discord : saintkorn
 

Farko

nc -lvnp 4444
28 Окт 2025
503
114
77
По срокам точно не скажу, загадывать не буду, но стараемся как можно скорее)
Исходники открывать не планируем, проект закрытый. Но сделаем максимально удобные и комфортные условия, чтобы на нашей основе можно было пилить свои проекты.

Реальных игроков одновременно пока тестировали немного, вживую было 6 человек. Но, как отмечал в PDF, нагрузку гоняем не абстрактную: боты идут по тому же пути, что и живой игрок, дают тот же трафик и ту же стоимость такта, а не пустые заглушки. Так что цифры по нагрузке честные, просто сняты под контролируемой нагрузкой, а не на живой толпе
Там ещё миллион вещей, которые нужно отгладить и прикрыть, возня серьёзная. Что касается тестов, хотя боты проходят через тот же процесс, что и реальные игроки, я думаю, что с большим количеством настоящих игроков производительность, скорее всего, упадёт примерно на 20 - 30%, что вполне ожидаемо. В реальных условиях всегда всплывают дополнительные моменты, которые сложно полностью предугадать и смоделировать. В любом случае, удачи в дальнейшей работе...
 

UchihaMadara

Высший разум
VIP
FrontEnd developer
27 Окт 2020
1,465
574
196
Что за скам? Почему на видосе FiveM?

Сервер авторитетный, весь мир держится на нём, клиент только рисует
Типочек с PacketLoss не может дойти до банкомата 10 часов. Смотреть без регистрации и смс.
 
  • RoflanEbalo
Реакции: Slash

saint korn

Участник портала
12 Апр 2022
17
9
63
Что за скам? Почему на видосе FiveM?


Типочек с PacketLoss не может дойти до банкомата 10 часов. Смотреть без регистрации и смс.
В каком месте файвм?)
А про человека с потерей пакетов. Ну хз, интернет наверное пора бы уже заиметь в нынешнее время...
 

youngBeaver

Гений
BackEnd developer
24 Янв 2023
1,291
491
191
Типочек с PacketLoss не может дойти до банкомата 10 часов. Смотреть без регистрации и смс.
В 90% онлайн играх пока сервер не задетектит изменение на плоскости, игрок с любыми проблемами сети будет очень долго куда-то идти. Просто поверх добавляется угадывание клиента и всё.
 

UchihaMadara

Высший разум
VIP
FrontEnd developer
27 Окт 2020
1,465
574
196

UchihaMadara

Высший разум
VIP
FrontEnd developer
27 Окт 2020
1,465
574
196
Сервер авторитетный, весь мир держится на нём, клиент только рисует.
Чисто нейроночка сгенерировала этот бред.

Физику кто будет считать? Если сервер авторитарный, то он как минимум должен просчитывать весь handling авто и коллизию. Слабо верится, что сервачок на расте всё это воспроизводит.
 
Реакции: Inoi

Inoi

owner31
Команда форума
Moderator
VIP
15 Окт 2020
5,221
2,738
208
36
а вот чо ну типа
я должен ожидать от проекта

к которому описание это фулл нейрослопный текст

не я как бы да, ну везде ии давно понятно вот это вот всё, привет клод б2б саас мейк мани ми рич фаст плиз
но бля это ж просто контрол цэ котронл вэ

а главное непонятно нахуя
просто какой то перечень библиотек а зачем
ECS отлично
rayon отлично
SIMD отлично
QUIC отлично
AES отлично
AOI отлично
лагкомпенсация отлично
оверлоад отлично
ботов отлично

заебись а нам ета информация нахуя
че мне даёт этот набор терминов

а где история
а почему заебись
а где "рассматривали хуй но в итоге отказались в пользу пизды", ну хоть что нибудь да ёб вашу мать

где написано что спижжено и откуда
ну типа

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

нейронка ещё и хуйню по классике пишет разумеется, типа
За счёт этого оно кэш-френдли и нормально параллелится, обычная ООП-модель на такой плотности просто легла бы. Тысячи сущностей в одном такте тянутся спокойно.
ыыыыыы
тысячи)))))))))))))))))))))))))

со стресс теста я вашего пацаны ваще нахуй выпал если чесна после того как педеэф открыл
сервер на эпике, репликация, раст 1800 игроков на 20 герцах
СОРОК ПЯТЬ СЕКУНД ПОСЛЕ СТАБИЛИЗАЦИИ
вы че угораете :j33r:

сарите пацаны
мы тут ла2 пишем с нуля с друзьями, так вот короче там сервер на шарпе и это
я как раз собирал стресстесты и гонял на одном из милестонов так сказать
это типа хедлесс клиенты которые симулируют прям запущенную игру, хули там тсп пакетики отправлять с л2
коннектится к логин-геймсерверу, виден как клиент прям, шлёт пакеты подключения, логина, выбора реалма и перса, ентерврлды и перемещения
движение каждые 500мс, вкл-выкл активный скилл каждые 5 сек, какие то клиенты специально медленные, какие то аварийно дропаются типа и заходят назад

ДВА БЛЯТЬ ЧАСА НОНСТОПОМ
3 ярда пакетов бит в бит

кстати та самая ооп которая легла бы :super_klass:
1000 челиков пустило и мы через 45 сек посмотрели это конечно жоский угар, пацаны
а че посмотрели то
что процесс не успел умереть? нормасик, полезно

могу много про это написать кста, ну пушо да ага, небольшое участие принимается всё таки
а это пацаны cargo.toml, который пропустили через клод а не рассказ о проекте

а и да
чатик файвема особенно гармонирует с
Геймод пишется на C# или на JavaScript, через наш мост на [...] Lua.

:super_klass:
 
  • Haha
Реакции: XDeveluxe и johndoe

Inoi

owner31
Команда форума
Moderator
VIP
15 Окт 2020
5,221
2,738
208
36
Сеть своя, бинарный протокол поверх UDP, есть и QUIC
а да и про вопросы

а попросите клод уточнить че вот это за хуйня
мне просто интересно в моменте стало

во первых на КОЙ ХУЙ выдумывать СВОЙ БИНАРНЫЙ ПРОТОКОЛ блять
а во вторых а на КОЙ ХУЙ там квик вообще
какую задачу он решает рядом с существующим юдипииии ыыыыы
 

johndoe

Мастер
BackEnd developer
10 Май 2025
433
188
65
а да и про вопросы

а попросите клод уточнить че вот это за хуйня
мне просто интересно в моменте стало

во первых на КОЙ ХУЙ выдумывать СВОЙ БИНАРНЫЙ ПРОТОКОЛ блять
а во вторых а на КОЙ ХУЙ там квик вообще
какую задачу он решает рядом с существующим юдипииии ыыыыы

АХхахахахаха, Серафим, ты на серьезе ребятишкам раскидываешь за сеть/пакеты и прочее?)))) Взяли форк файвм, губы накрасили и всем показывают ебейшую синхронизацию))))
 
  • RoflanEbalo
Реакции: XDeveluxe и Inoi

Inoi

owner31
Команда форума
Moderator
VIP
15 Окт 2020
5,221
2,738
208
36
АХхахахахаха, Серафим, ты на серьезе ребятишкам раскидываешь за сеть/пакеты и прочее?)))) Взяли форк файвм, губы накрасили и всем показывают ебейшую синхронизацию))))
так а как нахуй можно на серьёзных щщах че то затирать про ТЕХНОЛОГИИ епта если ты не бе не ме сам то ёобаны в рит в том че делаешь
да и ну не по описанию то это не 5м

вполне вероятно это типа гибрид
с кусками 5м + собственным раст-беком и экспериментами с синхрой
причем если я правильно понимаю вот это

Сервер авторитетный, весь мир держится на нём, клиент только рисует
ну это во первых либо пиздёж либо очень сильное упрощение
во вторых это видимо паппеты, вместо OneSync 5м где клиенты полностью владеют симуляцией сетевых объектов
и если че это супер поебень, это тупиковый путь
это буквально лучшее что есть в 5м, это единственно верный идеал

ну и вопросов к двум протоколам всё ещё дохуя
 
  • RoflanEbalo
Реакции: johndoe

Vermilion

Искусственный Интеллект
High developer
BackEnd developer
FrontEnd developer
29 Сен 2021
1,923
1,214
181
35
Нам не нужны ваши мультиплееры! У нас есть Farko Launcher!
 
Последнее редактирование:

Waldemor

Участник портала
4 Июн 2021
41
5
65
Мдаааа...... база cfx видно же. Ну че ребята давайте дерзайте =)
хоть от сессии отвязали?
 
Реакции: ExZeM

evelentdev

Участник портала
7 Янв 2025
143
9
55
Очередной хлам на базе 5m? - Услышал. Никогда не буду данный мультиплеер в серьез воспринимать для коммерческих целей
 
  • Durka
Реакции: adada

evelentdev

Участник портала
7 Янв 2025
143
9
55
В каком месте файвм?)
А про человека с потерей пакетов. Ну хз, интернет наверное пора бы уже заиметь в нынешнее время...
1784801717730.png

Ты пепсикольный? Ты под чем, дядя?
 

UchihaMadara

Высший разум
VIP
FrontEnd developer
27 Окт 2020
1,465
574
196
  • Durka
Реакции: saint korn

Similar threads