maksimov писал(а):Пропускная способность может быть у канала. Метрики скриптов - это цикломатическая сложность, топологическая мера Чена, информационная прочность, читабельность,...
И снова... Латентность - это время, требуемое пакету данных для прохождения от одной точки сети к другой. Она зависит от взаимоместорасположения клиента и сервера, интернет провайдаре и т.д. Photon тут абсолютно никаким боком.
maksimov писал(а):60 обновлений чего?
maksimov писал(а):Вы снова путаете понятия. 60 FPS - это фреймрейт (необходимый, например для плавной анимации).
Вы собрались пытаться гонять байты через всю планету по разнородной сети, с той же скоростью, с какой может гонять байты компьютер по своей материнке?
maksimov писал(а):Фотоновский лимит: 500 сообщений в секунду на каждую комнату. И это более чем впечатляющий задел с гигантским запасом, который вы вряд ли когда-нибудь сможете полезно исчерпать даже на четверть.
maksimov писал(а):Да. По умолчанию отправка производится с определённой периодичностью (которую можно изменить в настройках клиента). При этом скопом отправляются все пакеты, накопившиеся с момента предыдущей отправки. И это очень здорово с точки зрения оптимизации.
Но если возникает необходимость немедленной отправки пакета, достаточно вызвать функцию PhotonNetwork.SendOutgoingCommands();.
maksimov писал(а):Вам нужно искать способы "как отправлять данные как можно реже и как можно меньше", а не наоборот. =)
Вы конечно же можете отправлять хоть по тридцать пакетов каждый кадр (но не больше 500 в секунду). А ещё вы может сделать каждый пакет размером с мегабайт. Если цель - забить канал бесполезным информационным шумом - можно придумать массу подобных вещей.
Но к эффективной коммуникации это не имеет никакого отношения.
maksimov писал(а):Да.
Они живут с представления сервиса (Photon Cloud) и продажи лицензии (Photon On Premise).
Им всё равно, где вы будете использовать купленное приложение - в интернете или интранете.
ArmoredElite писал(а):Изучай uNet... Фотон обычно используются в играх сделанные на скорую руку, а на uNet можно сляпать выделенный сервер. Клиент просто будет отправлять нажатия клавиш а на сервере будет вся симуляция игры, сервер же будет рассылать инфу всем клиентам об изменениях в симуляции...
Ert Donuell писал(а):Покадрово передавать положение игроков? Это что, чтобы с интерполяцией/экстраполяцией не мучиться? Кстати, если бы хотелось, можно было бы по те самые 500 раз в секунду передавать положения всех игроков разом Только успевайте пакеты собирать. А если серьёзно, под свои 100м/с техники используйте интерполяцию и не извращайтесь. Прогоните тесты и посмотрите, при какой частоте передачи данных при наличии интерполяции разница перестаёт быть существенной
Ert Donuell писал(а):Не путайте интерполяцию с экстраполяцией. И если уж Вы экстраполируете, то погрешность через две минуты игры говорит лишь о том, что по пришествии актуальных данных, Вы не осуществляете коррекцию. Ещё бы у Вас не росла погрешность. Экстраполяция даёт предсказать, а потом предсказание корректируется под реально пришедшие данные
Ert Donuell писал(а):Пример лерпа (видно и три сервера, и клиент, всё самописное). Никакой нарастающей рассинхронизации:
Nubila писал(а):Несколько месяцев сам терзал себя этим вопросом, и результат таков:
Если вы новичок и деньги == проблема , то сразу забудьте о Photon'е. Не важно сервер или клауд(последнее вообще трэш для такого вида игр). Про UNet вообще упоминать не хочется, так как по максимальному тарифу вы получите общий онлайн игры == 200 человек, что катастрофически мало(если только шутер не онли для локальной сети, тогда можно и его, так как ограничений нет и API приятный + примеров от самих Unity множество).
А от себя посоветовать могу старую систему - через Master Server + Network View. Нужно только хостинг оплачивать(на который зальёте мастера), и логику для клиентов написать(весь API в документации юнити в Legacy топике).
Плюсы:
1)Никаких ограничений, просто запустили консольный .cpp самого мастер сервера на машине(она обязана иметь белый IP), коннектитесь к нему через клиентов(опять же всё поймёте при разборе API), и Мастер сервер будет создавать комнаты для игроков. 2) Логику для комнат писать очень легко, так как API для Network View не очень большой. 3) На хостинг заливается просто .cpp мастер сервера с парой папок, и как результат это не весит ровным счётом ничего(так же этот плюс можно отнести и к тому, что на некоторых VDS запрещены установки целых серверов). 4) Master Server так же имеет Facilitator, который сможет(или хотя бы сделает попытку) пробиться через Брандмауэр благодаря NAT Poungh Touch.
Минус метода - кто то в комнате будет хостом(но не будет знать об этом), и если он решит ливнуть(или же его провайдер так решит), то и сама комната дропнется(можно сделать костыль - заранее законнектить свои клиенты на комнаты, и игроки будут уже подключаться к ним). Ограничение онлайна прописываете в самом .cpp Мастер сервера(имеется ввиду общего онлайна, ограничение для комнат уже при написании логики клиента зададите).
Оптимальный ли метод? - Не знаю, но это хотя бы бесплатно) Если вопрос не в деньгах, то тогда можете уже и на Photon Server глядеть.
Filosov писал(а):Ert Donuell писал(а):Пример лерпа (видно и три сервера, и клиент, всё самописное). Никакой нарастающей рассинхронизации:
Не очень понимаю, как выводится на одну сцену, но я в принципе не очень интересовался пиринговой сетью. Она мне не подходит. Что до синхронизации, то тут мне нужен код, чтобы её проверить. Не могу судить по ролику, но разрывы кажется были, а у меня камера игрока на объекте.
Filosov писал(а):Ert Donuell писал(а):Пример лерпа (видно и три сервера, и клиент, всё самописное). Никакой нарастающей рассинхронизации:
Не очень понимаю, как выводится на одну сцену, но я в принципе не очень интересовался пиринговой сетью. Она мне не подходит. Что до синхронизации, то тут мне нужен код, чтобы её проверить. Не могу судить по ролику, но разрывы кажется были, а у меня камера игрока на объекте.
У меня был пример хорошей синхронизации, которая хорошо работала с условной контрой, но в моем проекте, где объекты не останавливаются и быстро движутся выдавала потерю точности.Nubila писал(а):Несколько месяцев сам терзал себя этим вопросом, и результат таков:
Если вы новичок и деньги == проблема , то сразу забудьте о Photon'е. Не важно сервер или клауд(последнее вообще трэш для такого вида игр). Про UNet вообще упоминать не хочется, так как по максимальному тарифу вы получите общий онлайн игры == 200 человек, что катастрофически мало(если только шутер не онли для локальной сети, тогда можно и его, так как ограничений нет и API приятный + примеров от самих Unity множество).
А от себя посоветовать могу старую систему - через Master Server + Network View. Нужно только хостинг оплачивать(на который зальёте мастера), и логику для клиентов написать(весь API в документации юнити в Legacy топике).
Плюсы:
1)Никаких ограничений, просто запустили консольный .cpp самого мастер сервера на машине(она обязана иметь белый IP), коннектитесь к нему через клиентов(опять же всё поймёте при разборе API), и Мастер сервер будет создавать комнаты для игроков. 2) Логику для комнат писать очень легко, так как API для Network View не очень большой. 3) На хостинг заливается просто .cpp мастер сервера с парой папок, и как результат это не весит ровным счётом ничего(так же этот плюс можно отнести и к тому, что на некоторых VDS запрещены установки целых серверов). 4) Master Server так же имеет Facilitator, который сможет(или хотя бы сделает попытку) пробиться через Брандмауэр благодаря NAT Poungh Touch.
Минус метода - кто то в комнате будет хостом(но не будет знать об этом), и если он решит ливнуть(или же его провайдер так решит), то и сама комната дропнется(можно сделать костыль - заранее законнектить свои клиенты на комнаты, и игроки будут уже подключаться к ним). Ограничение онлайна прописываете в самом .cpp Мастер сервера(имеется ввиду общего онлайна, ограничение для комнат уже при написании логики клиента зададите).
Оптимальный ли метод? - Не знаю, но это хотя бы бесплатно) Если вопрос не в деньгах, то тогда можете уже и на Photon Server глядеть.
Но ведь сделать выделенный сервер и платить только за хостинг можно уже сейчас на Unet-e. У меня именно так. Есть в ассетсторе МастерСервер и с ним вполне создаются комнаты. Хостится на арендуемом сервере. Впрочем у него есть свои "фичи" и поведение у него несколько отличается от теста с прямым подключением по IP.
Не понимаю, зачем вам старый нетворк.
Не припомню, чтоб он нат пробивал. Просто хостится на белом IP и через него идет траффик или запускается сервер с игровой логикой.
Ert Donuell писал(а):Это не пиринговая сеть. Это три авторитарных сервера и один клиент, который прыгает с одного сервера на другой. И в тут нет прерываний, всё идёт абсолютно бесшовно. Смотрите на клиента (внизу)
Nubila писал(а):Но а как же CCU ограничения от Unet'a?
Я не знаю за какой вы МастерСервер в ассетсторе, я про этот https://docs.unity3d.com/Manual/net-MasterServer.html
Старый , так как новый требует оплату за более чем 20 человек онлайна.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3