Войти
ПрограммированиеФорумСеть

Серверная часть для масштабной MMORPG

Страницы: 1 2 317 18 Следующая »
#0
19:22, 28 июля 2022

Сори если вопрос покажется тупым, но запрос такой - сделать 3D MMOARPG (т.е. боевка будет достаточна активная нонтаргет, по типу Альбиона) и такую в которой fps и network отклик будет во время боев например "осады замков" 200х200 или 500х500 играбельный (в идеале 120+ fps). Как я вижу самое слабое место подобных проектов это именно массивные бои в одном месте. И вот исследуя то, как это сейчас можно реализовать у нас на выбор UE5 с С++ и Unity с С#. По дефолту разумеется С# уступает производительности C++, но все же рассмотрел из-за простоты Unity. И самое популярное network решение что там присутствует сейчас это Photon Fusion (до этого PUN), и они гордятся тем что создали решение имеющее лимит в 200 peers per room.

В общем вопрос такой уважаемые — какие варианты идеального стека для реализации максимального CCU, PPR и FPS в игре которая рассчитана на большое столкновение игроков одном месте (по типу осад).

P.S. По поводу уменьшения fps понятно что есть много разных фишек как и сетевой технологии, но я в целом хочу понять каким путем лучше пойти.

#1
21:22, 28 июля 2022

Лайф-хак: не привязывай fps к пингу и скорости сервера. И всё будет хорошо!

#2
22:38, 28 июля 2022

Noocrat
анрил не бери, там ограничение в 100 чел, правда это у самих эпиков, скажем Mordhau довольствуется 80-ю

юнити тоже не бери, там сети нет совсем

#3
23:51, 28 июля 2022

Noocrat
> они гордятся тем что создали решение имеющее лимит в 200 peers per room.
Не задумывался почему?

#4
0:07, 29 июля 2022

мы группа инженеров, хотим сделать автомобиль, который всех порвет в Формуле 1, но еще и с сертификацией для езды по ДОП. посоветуйте, какую машину брать в качестве донора? субару говорят не едут, а у ниссан КПП слабая.

#5
(Правка: 1:24) 1:22, 29 июля 2022

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

#6
(Правка: 2:04) 2:00, 29 июля 2022

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

#7
7:00, 29 июля 2022

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

#8
8:38, 29 июля 2022

Noocrat
> В общем вопрос такой уважаемые — какие варианты идеального стека для реализации
> максимального CCU, PPR и FPS
на юнити если поколдовать можно прилепить php и он будет работать на юнити.
на юнити вы пишете клиент
на php вы пишете сервер.
php считается одним из лучших для написания сервера. хотя считают типа php это не язык а для тру-программистов зашквар.
FPS-экономить на моделях. типа герой это не 5тысяч полигонов а 4тысячи полигонов.

#9
10:36, 29 июля 2022

В бою 500 на 500 будет 1GB трафика на 1 состояние мира.

#10
(Правка: 11:20) 11:18, 29 июля 2022

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

Клиент лишь графику рисует, а все правила и мир без графики со всеми предрасчетами лежат на серваке.
Предрасчеты важнейшая для вас вещь, т.к. без него большого онлайна и быстрого сервера быть не может.

#11
16:19, 29 июля 2022

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

#12
16:21, 29 июля 2022

563
> Предрасчеты важнейшая для вас вещь
Нет. Предрассчёты не важны в сети.

#13
16:28, 29 июля 2022

lookid
> В бою 500 на 500 будет 1GB трафика на 1 состояние мира.
игрок перваку отправляет (8 байт на сообщение в среднем)*500*(10 действий игрока в секунду)=40'000 байт в секунду
(8 байт на сообщение для каждого игрока)*500*500*(10 действий игрока в секунду)=20'000'000 байт в секунду

А не гигабайт в секунду.

#14
(Правка: 17:36) 17:16, 29 июля 2022

Rikk
> php считается одним из лучших для написания сервера.
хорошая шутка, я аж хрюкнул.

samrrr
> игрок перваку отправляет
дык проблема не передать данные, а распарсить их и применить эффекты. Если от первого у тебя в бою 500х500 процу поплохеет, но если чудом не помрет, то попытка воспроизвести все эффекты в соответсвии с пришедшими данными точно его добьет.

Если еще учесть что есть стримеры которые твою игру еще транслировать будут, так это тоже не малое кол-во трафика и нагрузки на кодирование видео.

И добавь туда еще желающих померятся уроном, ну там собрать статистику по бою и тд. Это тоже будет жрать проц.

Ну и вот такой стример с записью комбат лога(или вообще с агрегацией его в рантайме) в бою 500 на 500 сделает тебе такую антирекламу изза производительности что игра твоя погибнет.

Страницы: 1 2 317 18 Следующая »
ПрограммированиеФорумСеть