ПроектыФорумСобираю команду

Сетевой движок ММОРПГ (11 стр)

Страницы: 110 11 12 1320 Следующая »
#150
19:16, 22 июня 2025

Mephistopheles
> Нагрузка же растет не линейно
Как раз линейно.
Почему так: вот стоят в поле 2 армии по 50к игроков.
Каждый игрок видит скажем на Х метров вокруг (камера от 3 лица, сверху-сбоку), вот допустим игроки прям плотно стоят и на экран влезает 16х16 условных клеток куда могут встать игроки, итого на экране не влезает больше 256 игроков. Чтобы экраном шевелить, нужно подгрузить заранее чуть больше, скажем на 2 клетки в каждую сторону, это 400 игроков максимум. Вот данные про 400 игроков можно пересылать каждому игроку. Больше - не нужно, он их все равно не увидит, они далеко. И даже в таком сценарии уже глупость происходит потому что конечно таким плотным строем игроки в реальной игре ходить не будут.

Продолжаем считать трафик:
400 персонажей, у каждого 1 байт -смещение по Х от центра экрана игрока, 1 байт - по У, еще 2 - смещение цели действия, еще 1 байт - количество тиков в прошлое когда он начал действие, и 1 байт - код действия и 2 байта ид игрока. Итого 8 байт на игрока. 400*8=3200 байт - полное описание состояния, если игроки делают 60 APM то одно полное состояние в секунду и нужно слать. Выходит на игрока нужно 3200*8=25,600 бит в секунду. В 1 гигабит влезет 39062 таких игрока. Да, конечно, там заметная доля уйдет на заголовки, а гигабит недостижим и будет хорошо если 0.8 гигабита, но и игроки будут не так плотно стоять, их будет в 3-4 раза меньше на экране друг у друга, не будут они все делать 60 APM, в общем, со скрипом, но может получиться потянуть мир на 100к одновременно играющих игроков на 1 гигабитном канале.

#151
21:18, 22 июня 2025

Вий
> и 1 байт - код действия
а не маловато ли? в ммо действий тысячи, а у действий еще и параметры есть.

Вий
> и 2 байта ид игрока.
и этого тоже мало будет ты же 100000 онлайн хочешь. Не говоря что еще ид всяких нпц и активных обьектов, предметов на земле.

ну и заголовок еще пакета + версия

Вий
> смещение по Х от центра экрана игрока, 1 байт - по У
ты не учел угол поворота и высоту еще. И что это за стремная система с относительными координатами?) Звучит как бомба замедленного действия

#152
21:39, 22 июня 2025

Mephistopheles
Назови хотя бы 128 разных действий. Точка назначения в зависимости от действия может быть не точкой а параметрами.

#153
21:57, 22 июня 2025

Вий
> Вот данные про 400 игроков можно пересылать каждому игроку.
Это что за такая игра и такой ракурс, где можно увидеть только 400 игроков одновременно? А если их 40 000 на площади соберётся, то с крыши на эту толпу посмотреть никак?

#154
22:27, 22 июня 2025

гидралиск
А в какой мморпг можно? Покажешь скрины?

#155
22:40, 22 июня 2025

Вий
> Назови хотя бы 128 разных действий.
угараешь?)

открыл сорцы ла2 сервера и там в папке пакетов их 718 шт. И это в простецком ла2


Вий
> А в какой мморпг можно? Покажешь скрины?
погугли скрины с осад в ла2

#156
22:43, 22 июня 2025

Вий
> А в какой мморпг можно? Покажешь скрины?
Eve Online:
Изображение

Ещё бы мнение эксперта по вот этому видео хотелось:

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

Кто-то атакует, кто-то хилит, кто-то накладывает бафы, при этом все периодически получают урон и на всех по 5-10 бафов...

#157
10:13, 23 июня 2025

Mephistopheles
> открыл сорцы ла2 сервера и там в папке пакетов их 718 шт.
Ну забери 2 бита из смещения цели в ид действия. Будет у тебя 1024. Когда кончатся зеберешь еще 2 бита.

#158
10:14, 23 июня 2025

NicoAZ
Смотрю много игроков в сцене, и интересно сколько данных отправляются каждому игроку?

#159
10:15, 23 июня 2025

Mephistopheles
> погугли скрины с осад в ла2
То что я нашел это все те же 200-300 игроков на экране

#160
10:34, 23 июня 2025

NicoAZ
> Eve Online:
А у них такой дизайн что все квадратично до конца, поэтому в одной системе не может быть неограниченно много игроков взаимодействующих друг с другом. У них кстати и 100к игроков никогда не было, не то что на одном сервере но и вообще.

Математика у них такая же работает. Корень из 400*100000 это 6324.

Смотрим исторические данные:
maximum of 2,670 players in the B-R5RB system at one time

Очень близко.

#161
12:20, 23 июня 2025

равен
> Что касается шифрования трафика - шифрование трафика в игровых проектах не нужно
Выдал кринжа. В наше время даже отдачу статики с веб-сервера шифруют, а тут решил игровой трафик не шифровать)

Он шифруется не только для того, чтобы нельзя было выдать себя за другого игрока.
Его шифруют, чтобы сильно усложнить написание читов и прочего софта, который прослушивает трафик, ну и конечно же исключить возможность явного перехвата трафика в публичной сети и узнать информацию о действиях игрока.
Кому это нужно и зачем - другой вопрос. Но в нормальных играх трафик шифруется.


Вий
> То есть запас по производительности огромный должен быть. Меня больше беспокоят syscall-ы и вот тут вероятно поможет liburing. Ему придется отдать ядро целиком, зато остальные 3 будут свободны от сисколлов.

Сделай уже игру) Какие-то оптимизации рандомные, в реальных проектах узким местом вообще не это является.

Вий
> Почему речь о rpi4 - потому что это хоть и слабое но реальное железо, которое передаётся в полное распоряжение. Для игрового сервера это важно - так программа будет вести себя предсказуемо.

Чел, просто возьми в аренду Dedicated server в какой-нибудь Selectel (Ru), Hetzner (EU), OVH (NA) или еще у десятка других. Цена одной машинки - 30-50 баксов в месяц. И будет у тебя нормальный сервак с 8-16 ядрами и 16-64 гб памяти (тут уж как повезет с тарифами).
Это, как бы копейки и на таком железе можно сотни игроков держать, которые генерят в тысячу раз больше денег.

При сотнях и тысячах CCU проблемы будут не в железе и оптимизации, а совершенно в другой сфере...

#162
12:29, 23 июня 2025

Storm54
> Это, как бы копейки и на таком железе можно сотни игроков держать
Ха ха ха, сотни игроков

#163
13:10, 23 июня 2025

Storm54
> Это, как бы копейки и на таком железе можно сотни игроков держать, которые генерят в тысячу раз больше денег.
Поддерживаю, онлайн 70 человек, сервера 70$ со всей инфрой, приносят 1000$. Не тысячи конечно, но и продукт у нас сделанный на коленке)

Storm54
> При сотнях и тысячах CCU проблемы будут не в железе и оптимизации, а совершенно в другой сфере...
Контент, комьюнити менеджмент, баланс экономики, девопс и вот это вот всё ботлнек реальный

#164
13:48, 23 июня 2025

Вий
> Ха ха ха, сотни игроков

Понимаю, что в твоей голове ужилась мысль, что даже на каком-то Raspberry Pi можно 100к CCU держать и на этом фоне сотни или одна-две тысячи игроков кажутся чем-то примитивным.

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

Я на первых версиях держал 2000 CCU на одном ядре в легкую, даже не задумывался, сколько еще вытянет по производительности (и это на i5-3550), вот только понадобилось добавить дельта-компрессию и скажите данных, что на порядки нагрузку увеличило за счет значительного уменьшения трафика для пользователей. Пользователям понравилось, но ни о каких мифических 100000 CCU на одном 8-16 ядерном сервере больше не может идти и речи, т.к. Zstd сжатие, плюс подготовка данных для дельта-компрессии все напрочь съедает.

Не думаю, что ты изобретешь что-то принципиально новое в этом плане, чтобы дать комфорт пользователям и "не платить" за агрессивную экономию трафика.

Страницы: 110 11 12 1320 Следующая »
ПроектыФорумСобираю команду

Тема в архиве.