Сори если вопрос покажется тупым, но запрос такой - сделать 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 понятно что есть много разных фишек как и сетевой технологии, но я в целом хочу понять каким путем лучше пойти.
Лайф-хак: не привязывай fps к пингу и скорости сервера. И всё будет хорошо!
Noocrat
анрил не бери, там ограничение в 100 чел, правда это у самих эпиков, скажем Mordhau довольствуется 80-ю
юнити тоже не бери, там сети нет совсем
Noocrat
> они гордятся тем что создали решение имеющее лимит в 200 peers per room.
Не задумывался почему?
мы группа инженеров, хотим сделать автомобиль, который всех порвет в Формуле 1, но еще и с сертификацией для езды по ДОП. посоветуйте, какую машину брать в качестве донора? субару говорят не едут, а у ниссан КПП слабая.
Очень рад вашему сарказму, но можно ближе к теме, если бы я сам мог ответить на этот вопрос, наверное я бы его не задавал. Если у меня ошибочное восприятие фундаментальных каких-то вещей, укажите пожалуйста конкретнее. У меня по большому счету опыт создания браузерных игр только и там близко нет таких проблем с FPS или CCU.
Noocrat
// сделал максимально серьезное лицо
ожидать от коробочного функционала достижения cutting-edge метрик - странно. если чего-то подобного вы достигнете - это будет лютый кастом.
навскидку, стоимость достижения обозначенных характеристик как минимум на порядки превышает стоимость разработки прототипов на кубах на всех популярных движках и многократного перевода этого прототипа с одного на другой стек. вероятно, имеет смысл как раз с такого прототипа и начать, выбрав движок с потолка.
Noocrat
Осознаешь, что тут не в инструменте проблема, а в мироустройстве?
Каждому надо непрерывно получать информацию обо всех в комнате, а это нагрузка на сеть как квадрат от числа участников. Какая бы производительная сеть ни была, она загнется. Надо какие-то фокусы придумывать.
Noocrat
> В общем вопрос такой уважаемые — какие варианты идеального стека для реализации
> максимального CCU, PPR и FPS
на юнити если поколдовать можно прилепить php и он будет работать на юнити.
на юнити вы пишете клиент
на php вы пишете сервер.
php считается одним из лучших для написания сервера. хотя считают типа php это не язык а для тру-программистов зашквар.
FPS-экономить на моделях. типа герой это не 5тысяч полигонов а 4тысячи полигонов.
В бою 500 на 500 будет 1GB трафика на 1 состояние мира.
В вашем случае движек вообще вторичен. Важен только сервер, и сколько денег в месяц готовы на него тратить.
Встроенные в движки решения скорее всего вам не подойдут, поэтому клиент на любом движке а сервак на чем хотите, с прицелом на затраты.
Это если реально масштабно делать.
Клиент лишь графику рисует, а все правила и мир без графики со всеми предрасчетами лежат на серваке.
Предрасчеты важнейшая для вас вещь, т.к. без него большого онлайна и быстрого сервера быть не может.
Zab
> Каждому надо непрерывно получать информацию обо всех в комнате, а это нагрузка
> на сеть как квадрат от числа участников.
Если чё, получать инфу достаточно только о ближайшем окружении. А не о всём мире. А обмен инфой о друг друге можно делать напрямую между игроками, а не через сервер. Тогда не будет такой нагрузки на сервер.
563
> Предрасчеты важнейшая для вас вещь
Нет. Предрассчёты не важны в сети.
lookid
> В бою 500 на 500 будет 1GB трафика на 1 состояние мира.
игрок перваку отправляет (8 байт на сообщение в среднем)*500*(10 действий игрока в секунду)=40'000 байт в секунду
(8 байт на сообщение для каждого игрока)*500*500*(10 действий игрока в секунду)=20'000'000 байт в секунду
А не гигабайт в секунду.
Rikk
> php считается одним из лучших для написания сервера.
хорошая шутка, я аж хрюкнул.
samrrr
> игрок перваку отправляет
дык проблема не передать данные, а распарсить их и применить эффекты. Если от первого у тебя в бою 500х500 процу поплохеет, но если чудом не помрет, то попытка воспроизвести все эффекты в соответсвии с пришедшими данными точно его добьет.
Если еще учесть что есть стримеры которые твою игру еще транслировать будут, так это тоже не малое кол-во трафика и нагрузки на кодирование видео.
И добавь туда еще желающих померятся уроном, ну там собрать статистику по бою и тд. Это тоже будет жрать проц.
Ну и вот такой стример с записью комбат лога(или вообще с агрегацией его в рантайме) в бою 500 на 500 сделает тебе такую антирекламу изза производительности что игра твоя погибнет.
Тема в архиве.