Перейти к публикации
View in the app

A better way to browse. Learn more.

VimeWorld - Форум

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

ученые открыли способ стать топ пвпэшером за 23 минуты без читов и днсэов (дедов метод)

Featured Replies

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

Итак, эту тему мне вероятно следовало создавать в Тех. разделе, но тут ее увидят больше людей.

 

Все мы знаем про баг, когда одни игроки отлетают на 5 - 6 блоков, а другие с трудом на 0.5 - 1.5.

В данной теме я просто приведу свой перевод отрывка из одного комментария, объясняющего баг с отдачей (оригинальный текст).

То, что представляет из себя само предложение, находится после перевода.

 

 

Прошу заметить, что в данном переводе скорость означает velocity (векторная величина), а не speed (скалярная величина).

 

 


Игрок, подключившийся первым, получает правильную отдачу. Последний подключившийся получает меньше отдачи, если его бьет ранее подключившийся.
Это происходит потому, что сервер применяет "трение" к игроку каждый раз, когда получает movement-пакет от него. 
Пакеты игроков, подключившихся позднее, на сервере обрабатываются в промежутке между ударом ранее подключившегося игрока и отправкой пакетов синхронизации скорости клиенту, которые уже будут отличаться к концу тика.
Таким образом, каждый movement-пакет игрока, подключившегося позднее, в очереди сделает силу отдачи меньше, перед тем как отправить сам пакет отдачи клиенту.
Если каждый из этих пакетов говорит, что игрок касается земли, то будет применено трение с землей, которое уменьшит отдачу примерно в половину каждый тик; т.е. потребуется несколько movement-пакетов в очереди, чтобы сделать отдачу близкой к нулю.
 
Для игроков А и Б, подключившихся в том же порядке (Б после А), последовательность событий выглядит примерно так (на каждый тик):
 
сервер обрабатывает входящие пакеты от всех игроков в том порядке, в котором они подключились
сервер обрабатывает входящий пакет от А, который говорит атаковать Б, что изменяет скорость игрока Б на сервере (но еще не синхронизируется с клиентом)
сервер обрабатывает все пакеты от Б, сколько их ни было бы, включая те, что говорят, что игрок стоит на земле, и приминяет трение к скорости игрока Б после каждого такого пакета
сервер выполняет локальное обновление всех игроков (метод tick) (там использование предметов, сон, горение игрока - правка переводчика)
сервер видит, что скорость игрока Б изменилась, и отправляет пакет синхронизации.
 
А вот пакеты от Б при атаке игрока А обрабатываются после movement-пакетов игрока А, т.е. сила отдачи НЕ уменьшается перед тем, как быть отправленной клиенту в конце тика (и А получает всю отдачу).

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

Изменено пользователем mr_box

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

 

Итак, эту тему мне вероятно следовало создавать в разделе Тех. разделе, но тут ее увидят больше людей.

 

 

Все мы знаем про баг, когда одни игроки отлетают на 5 - 6 блоков, а другие с трудом на 0.5 - 1.5.

В данной теме я просто приведу перевод отрывка из одного комментария, объясняющего баг с отдачей (оригинальный текст).

 

 

Прошу заметить, что в данном переводе скорость означает velocity (векторная величина), а не speed (скалярная величина).

 


Игрок, подключившийся первым, получает правильную отдачу. Последний подключившийся получает меньше отдачи, если его бьет ранее подключившийся.
Это происходит потому, что сервер применяет "трение" к игроку каждый раз, когда получает movement-пакет от него. 
Пакеты игроков, подключившихся позднее, на сервере обрабатываются в промежутке между ударом ранее подключившегося игрока и отправкой пакетов синхронизации скорости клиенту, которые уже будут отличаться к концу тика.
Таким образом, каждый movement-пакет игрока, подключившегося позднее, в очереди сделает силу отдачи меньше, перед тем как отправить сам пакет отдачи клиенту.
Если каждый из этих пакетов говорит, что игрок касается земли, то будет применено трение с землей, которое уменьшит отдачу примерно в половину каждый тик; т.е. потребуется несколько movement-пакетов в очереди, чтобы сделать отдачу близкой к нулю.
 
Для игроков А и Б, подключившихся в том же порядке (Б после А), последовательность событий выглядит примерно так (на каждый тик):
 
сервер обрабатывает входящие пакеты от всех игроков в том порядке, в котором они подключились
сервер обрабатывает входящий пакет от А, который говорит атаковать Б, что изменяет скорость игрока Б на сервере (но еще не синхронизируется с клиентом)
сервер обрабатывает все пакеты от Б, сколько их ни было бы, включая те, что говорят, что игрок стоит на земле, и приминяет трение к скорости игрока Б после каждого такого пакета
сервер выполняет локальное обновление всех игроков (метод tick) (там использование предметов, сон, горение игрока - правка переводчика)
сервер видит, что скорость игрока Б изменилась, и отправляет пакет синхронизации.
 
А вот пакеты от Б при атаке игрока А обрабатываются после movement-пакетов игрока А, т.е. сила отдачи НЕ уменьшается перед тем, как быть отправленной клиенту в конце тика (и А получает всю отдачу).

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

 

Довольно актуально. Как вышел ClashPoint то меня все как-то очень странно откидывали, а я их с трудом с мостика в 1 блок шириной скидывал. Долго не мог ничего с этим сделать, хотя на других мини играх все было нормально. Я долго искал способ решить эту проблему, и нашел - это ДНС сервера. Конечно же есть и такие ДНС сервера что дают почти нулевую отдачу, но тот что установил я, стабилизировал все и теперь я откидываюсь нормально, на блоков 3-4 и откидываю тоже нормально, так же на 3-4 блока.

Опубликовано:
  • Автор

...

Прошу, когда цитируешь, в случае большой цитаты (очень часто, когда это первое сообщение темы), заменяй её многоточием.

 

Насчет актуальности могу отметить, что оригинал опубликован в 2014 году.

ДНС не решают проблему, они просто влияют на задержку; в основном отдача зависит от кол-ва пакетов, отправляемых клиентами и порядком их подключения, - пинг второстепенен.

Изменено пользователем mr_box

Опубликовано:
  • Автор

Спасибо!

эм. Суть тему не в том, чтобы все сразу начали этим пользоваться, а чтобы француз фиксанул это.

 

То, что представляет из себя само предложение, находится после перевода.

...

 

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

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

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу.

Account

Navigation

Поиск

Поиск

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.