Ghostrider написал(а):Как бы то, что баг- это издержки реализации "Тремя топорами" игры по сети, а не некие происки русофобов, понятно и самоочевидно изначально. Но то, что они явно не будут ничего исправлять- это мега-лол. Проблема-то на самом деле решаемая(по крайней мере в плане минимализации видимых юзверем симптомов), только это ж блин работать надо.
Отредактировано Ghostrider (Сегодня 12:21:08)
Преполагалось, что этот баг - двухсторонний, однако "синими" никаких доказательств его существования на "красной" стороне не представили.
Ответ пользователя Дмитрий Кандауров, разместившему видео, Даниилу Тусееву:
Две Ваших фразы:
«При попадании по цели с ПК стреляющего уходит точная информация о всех РЕЗУЛЬТАТАХ попадания (место и тип эффекта, параметры попадания пуль, осколков и фугасного действия по каждой детали объекта, по которому попали)».
- Ключевым словом в этой фразе является "ТОЧНАЯ" и "УХОДИТ".
«…полёт снаряда на всех ПК, кроме ПК стреляющего, визуализирован со значительным расхождением относительно оригинала (оригинал - ПК стреляющего), т.к. момент выстрела и его параметры приходят по сети со значительной задержкой, а также с ограниченной точностью».
- В этой фразе ключевым словом является "ПРИХОДИТ" и "ОГРАНИЧЕННАЯ".
То есть для визуализации собственно попадания (и расчетов его последствиий), используются разные группы данных, которые так или иначе (с задержкой, или без) передаются по сети.
Итак, Вы признаете, что в игре существуют (реализованы) и передаются по сети две группы данных:
1.Данные о параметрах попадания и повреждения (координаты (и т.д), получаемые ПК поражаемого объекта, которые передаются БЫСТРО и ТОЧНО. На основании этих данных на этом ПК визуализируются эффекты поражения (анимация).
2. Данные о полете снаряда (параметры координат начальной точки, координат траектории его полета, координат точки попадания) - передаются НЕТОЧНО и СО ЗНАЧИТЕЛЬНОЙ ЗАДЕРЖКОЙ ПО ВРЕМЕНИ. На основании второй (неточной) группы данных визуализируется полет снаряда.
То есть, при передаче информации о выстреле в системе из нескольких объектов (ПК стреляющего объекта - игровой сервер - ПК поражаемого объекта, ПК других игроков) в вашем программном коде на ВТОРУЮ группу данных при их передаче накладываются временнЫе и точностные ограничения.
А также почему-то снижается точность(?!?!) этих данных.
В связи с этим, ряд вопросов:
Каким образом накладываются эти ограничения?
Почему данные ВТОРОЙ группы идут по сети «малой скоростью»? Установлен приоритет? Или программная задержка?
Почему конкретно снижается точность?
На сколько снижается?
В каком из звеньев «цепи»?
Преднамеренно, или «так само получилось»?
Еще одна Ваша фраза:
«Но полет снаряда на всех ПК, кроме ПК стреляющего - это чистая анимация, и его попадание или не попадание во что-либо не влияет на повреждения».
- Вы прекрасно понимаете, что любая анимация (чистая она, или испачканная)))) визуализируется на основании получаемых ПК (или уже имеющихся на нем) данных, а не сама по себе.
Конкретно в обсуждаемом случае:
1. Визуализация полета снаряда на всех ПК, кроме ПК стреляющего реализуется с задержкой по времени ввиду «неторопливости» передачи ВТОРОЙ группы данных, потому, что данные этой группы почему-то (кем-то, где-то и когда-то) ограничены по скорости передачи (реализована программная задержка или установлен приоритет передачи?).
2. Визуализация полета снаряда не точна, потому, что передаваемые по сети во данные ВТОРОЙ группы (координаты траектории и другие параметры) для этого процесса НЕ ТОЧНЫ. Вы сами это признаете. Но почему они неточны? И откуда-то они берутся, эти неточные данные!
Бог с ней, - задержкой по времени. В данном конкретном примере большинство объектов стоят и координаты их с течением времени не изменяются. Ну, визуализирован взрыв раньше, чем снаряд прилетел. В контексте обсуждаемой ситуации - не принципиально.
Вопрос по точности данных ВТОРОЙ группы. Например, координаты точки и время попадания снаряда УЖЕ есть в ПЕРВОЙ группе данных. Их и следует использовать для визуализации полета снаряда!
Зачем их передавать еще раз во ВТОРОЙ группе и, к тому же снижать (преднамеренно?) точность?
Кроме того, при таком подходе к формированию, передаче и конечной обработке информации визуализация процессов происходит с нарушением причинно-следственных связей (как на видео): момент попадания снаряда, взрыв, и только потом прилетает снаряд.
Это косяк, Даниил!
Допущенный или на этапе алгоритмизации процесса, или при написании кода.
Кстати, алгоритм обработки передачи информации, применяемый в Counter Strike далеко не единственный.
Вот вам вариант:
Если отнести информацию о траектории полета снаряда (в том числе – ее конечной точки) к ПЕРВОЙ группе данных?
Эта информация могла бы служить входными данными для расчета повреждений. Но, не на ПК стреляющего, а на ПК поражаемого объекта, а также для визуализации полета снарядов на всех остальных ПК.
А вот информацию, о конкретных повреждениях пораженного объекта можно отнести ко ВТОРОЙ группе. И отправлять с ПК пораженного объекта на ПК стреляющего и других пользователей «малой скоростью».
Визуализировать информацию о результатах поражения на других ПК можно с привязкой к текущему (на момент ее получения) положению поражаемого объекта, данные о котором имеются на конкретном ПК.
При этом нет необходимости передавать на все ПК абсолютно всю информацию о результатах поражения. Наиболее актуальна она для поражаемого объекта. Для всех остальных – важна «всего лишь анимация» вот данные, достаточные для ее визуализации и передавайте.
Остальное - зачем?
Возможный результат при реализации такого подхода:
1. Объемы передаваемой информации сокращаются.
2. Скорость передачи и визуализации первоочередной (по времени) информации, т.е. - полете снаряда, визуализируется практически мгновенно для всех пользователей, т.к. ее объем при таком подходе крайне незначителен.
3. Обработка и визуализация на всех ПК производится в правильной последовательности: летит снаряд, попал снаряд, танк взорвался. А не в обратном порядке, как реализовано сейчас.
Идею дарю.
Ответ Даниила Тусеева на ответ Дмитрия Кандаурова:
От фразы "Вы признаете" и далее пвши фантазии, а не нормальный анализ моего текста.
Ваши выводы ошибочны.
От себя добавлю:
(Ну, хорошо, хоть не не написал "Ваши больные фантазии".
Отредактировано BOPOH625 (10.01.2021 12:29:15)