Перейти к публикации

Рекомендованные сообщения

Опубликовано: (изменено)

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

А то так прочтет кто и разрабам в лицо статью: я кароче статью прачитал на хабре, пишет мульт делать как два пальца против ветра, а у вас лаги и рассинхрон, игра ниачем, разрабы пилят миллиардами мае бабло и нихатят сделать нармальный мультиплеер  :lol:

Изменено пользователем vasmann
  • Поддерживаю! 1
Опубликовано: (изменено)

не понял от ФПС игрока зависит общий результат?

p2p где 2 это сервер

игрокам с низким фпс будет проще скрываться от игроков с высоким фпс?

 

(ну понятно что при 10фпс играть невозможно, но при 30 это уже терпимо)

Изменено пользователем ROSS_Pups
Опубликовано:

не понял от ФПС игрока зависит общий результат? p2p где 2 это сервер

 

(ну понятно что при 10фпс играть невозможно, но при 30 это уже терпимо)

p2p это сокращение от Peer To(2) Peer. От ФПС зависит косвенно, ФПС это по сути кол-во данных которые твоя машина способна обработать в секунду и вывести на экран, тоесть не только рендер. Ну грубо говоря. Соответственно чем больше твой ФПС тем больше ты можешь молотить, пусть даже в холостую, зато надежней. 

Опубликовано:

p2p это сокращение от Peer To(2) Peer. От ФПС зависит косвенно, ФПС это по сути кол-во данных которые твоя машина способна обработать в секунду и вывести на экран, тоесть не только рендер. Ну грубо говоря. Соответственно чем больше твой ФПС тем больше ты можешь молотить, пусть даже в холостую, зато надежней. 

спасибо

p2p это сокращение от Peer To(2) Peer- это я знаю, просто для себя пояснение.

Опубликовано:

А то так прочтет кто и разрабам в лицо статью: я кароче статью прачитал на хабре, пишет мульт делать как два пальца против ветра, а у вас лаги и рассинхрон, игра ниачем, разрабы пилят миллиардами мае бабло и нихатят сделать нармальный мультиплеер  :lol:

Хм... По-моему там выводы совсем другие. В частности понятно, почему возможна стрельба без угла (в статье стрельба за угол).

А учитывая, что для самолетов вв2 характерны скорости порядка 100 м/с, то все вроде как более-менее норм.

Опубликовано:

На эту же тему есть видео от разработчиков Overwatch (на английском, но есть русские субтитры). Тамошние форумные эксперты дети залили весь форум слезами о кривом неткоде. Здесь у нас вообще спокойно, по сравнению).

 

  • Поддерживаю! 3
Опубликовано: (изменено)

Замечательное видео, но оно не про БзС

В оверватче это выглядело бы примерно так:

Игрок получает демедж, потом видит взрыв, а через пару секунд Фара стреляет в его сторону из ракетника и промахивается

 

на 10:45 интересный момент, например

и на 13:00

Изменено пользователем 154_Mag1c
  • 3 недели спустя...
Опубликовано: (изменено)

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

 

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

 

Счас напишу, к чему может привести подобное мышление, если оно, например, по привычке переносится в бытовую жизнь:

 

Вопрос: Чем отличается автомобиль от таракана?

Ответ: Таракана легче водить.

 

Вопрос: Что такое автомобиль?

Ответ: Не понял вопроса.

 

Логика! :)

 

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

Изменено пользователем -=StF=-Take-oFF
Опубликовано:

Замечательное видео, но оно не про БзС

В оверватче это выглядело бы примерно так:

Игрок получает демедж, потом видит взрыв, а через пару секунд Фара стреляет в его сторону из ракетника и промахивается

 

на 10:45 интересный момент, например

и на 13:00

Я с титрами смотрел к сожалению инглишь но ин май харт))....но из того что понял перенес мысли на вв2 авиа сим:

Допустим я атакую бядолагу который у меня на пк в прошлом, информация о разнице (не лагобаг,а стабильная сумма значений пингов участников эпизода) времени N есть на сервере. Они обсуждают возможность отменить попадания на основе обработки данных полученных спустя время N. Логику я понял целиком и полностью. Но почти уверен , что написание такого сетевого отката под силу не абы кому. Да и случай когда время отката истечет ,а на пк стреляющего где картина уже с оторванным крылом противника уже обрисовывалась придет откат будет очень смешной)))

зы игрок БФ4 поворачивает торс на 180 гр быстрее чем изменяет угол самолет,но цель-самолет летящий перпендикулярным вектором к атакующему вектору тоже довольно быстро меняет позицию, это роковой момент. У всех свои проблемы. Мало верится в возможность идеального выхода при обработке на своих пк. Интересно-как у Мадекс гейм вышло что было лучше? Количество передаваемых данных тут не имею значения 100%.

Опубликовано:

С другой стороны, немного почитав ссылки ТС и еще подумав все же метод отката для авиасимулятора видится более песпктвиным из за очень предсказуемых и меняющихся всегда не быстро  векторов полета и скорости. При хорошем пинге мы тут уже считали, что имеем метров 100 ошибки положения самолета по его курсу полета. Если учитывая цифру N(сумму пингов персонажей события) и скорость полета оппонента не меняя вектора можно подтянуть его вперед на 80-90% от стандартной погрешности (у нас рассмотрено 100м) . Да это не абсолютный результат (я так понимаю он не достижим в принципе),но при ошибке 100 метров такая компенсация радикально улучшит картину.

Опубликовано:

 

 

Интересно-как у Мадекс гейм вышло что было лучше?

Ну вроде ж обсуждали, что проблема не в пинге.
Проблема в том, что есть связка физика<=>видео, которая считается в разных процессах и отдельно от этого стоит передача инфы по сети. (где <=>  это синхронизация процессов)
Для синхронизации двух потоков в винде есть ограничение снизу, что-то порядка 5 миллисекунд (ограничение ОС windows). Сверху - зависит от самого приложения. В старике всё шло тупо в одном процессе, из которого нужная инфа отправлялась в сеть практически мгновенно, сводя все возможные  рассинхроны к задержке сетевых пакетов. В новом Иле, если представлять наглядно, выглядит так:
физика игрока №1<=>видео игрока №1  >>>>> физика игрока №2<=>видео игрока №2

Таким образом, видеоизображение у игрока №2 формируется так:
игрок №1 тянет ручку,  БзС считает физику (например, Х миллисекунд), потом, после окончания такта, синхронизирует ее с видеопроцессом (ещё Y мс). С полученных синхронизированных данных берется инфа для отправки второму игроку и отправляется пакет. Пусть этот пакет доходит с вполне адекватным пингом в Z мс, однако нюанс: ввести данные из полученного пакета в обсчёт физики нельзя до конца такта синхронизации. Поэтому на компе игрока №2 БзС считает физику по старым данным (и ждать такт синхронизации можно до X мс, потом синхронизация + Y мс). после этого данные таки поступают в обсчёт, считаются ещё один такт (+Х мс) и наконец игрок №2 видит (+Y) результат.

Таким образом, задержка на синхронизацию максимально составляет Z+3(Х+Y).
Если пинг 10 мс, такт - 10 мс, а синхронизация 5 мс, то минимальный лаг будет 55 мс.

Если же синхронизация происходит раз в 50 мс, то даже при пинге 2 (как, например у меня) - синхронизация будет происходить раз в 167 мс.

Какова реальная длительность такта синхронизации? Это вопрос к разработчикам. Как понимаю, это можно оценить из рассинхрона звука попаданий по противнику: именно из-за того, что произведение скорости самолета на утроенное время такта достаточно велико - мы всегда лучше слышим попадания по врагу.
По моим личным оценочным наблюдениям, максимальная громкость попаданий обычно наблюдается на скорости 350 км/ч (97 м/с) при дистанции около 50 метров. То есть, 3(X+Y)=50 / 97= 0,5 сек (примерно).

Я не являюсь специалистом в теме, поэтому буду рад, если кто-нибудь уточнит или исправит результаты моих умозаключений.

Опубликовано:

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

 Другое дело когда идет мясной рубняк и даже пк тупо тормозят и дурят....вот тут возможно проблема усиливается предполагаемым асинхронном работы "физика-графика" . Но это лично для меня пока просто версия. Ответ к стати точно есть у мамы и папы БЗС))) .

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

Опубликовано:

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

 

Пример по танчикам от ТС показателен. Но увы только схематично, потому что у нас скорость средняя 350 км ч против 20 км ч у танка. То есть 10 метров проблемы танков это почти 180!!!! метров у нас . А вот отсутствие резкого тормоза\старта и разворота в движении открывает для авиасимулятора возможность показывать клиенту проекцию врага вперед во времени по формуле:

скорость полета метров в секунду * сумма пингов в секундах

Опубликовано:

Леонид, резюмируя, правильно я понимаю, что если у игрока слабое железо, то независимо от сети, он будет отображаться у всех с задержкой?

Опубликовано:

Леонид, резюмируя, правильно я понимаю, что если у игрока слабое железо, то независимо от сети, он будет отображаться у всех с задержкой?

 

В процессе написания поста эта мысль тоже приходила мне в голову, но решил не усугублять )

 

Я бы сказал мягче: проблема (необходимость дополнительного времени из-за недостатка ресурсов) с обсчётом одного из компонентов (физики либо видео) при обязательной синхронизации потоков должна приводить к негативным эффектам, например тиким, как "замедление времени" в игре. Поскольку такие явления наблюдались некоторое время назад, а затем были успешно нейтрализованы разработчиками - похоже, что мы не так далеки от истины, как хотелось бы.

 

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
×
×
  • Создать...