Comments 47
Оу… Как-то оно немного сумбурно. Но интересно почитать было.
Когда-то давно, когда играл в Ил-2 интересовался алгоритмом который там лежал в основе. Он позволял где-то 200-300 миллисекунд от пинга компенсировать по положению (модель движения самолёта легко рассчитать). А вот стрельба никак не компенсировалась. И это очень неплохо чувствовалось. При большом пинге все рефлексы сходили сума…
Когда-то давно, когда играл в Ил-2 интересовался алгоритмом который там лежал в основе. Он позволял где-то 200-300 миллисекунд от пинга компенсировать по положению (модель движения самолёта легко рассчитать). А вот стрельба никак не компенсировалась. И это очень неплохо чувствовалось. При большом пинге все рефлексы сходили сума…
Спасибо.
В версии 1.60, если я верно понял, это всё уже есть.
Ещё б они самолёты починили…
В версии 1.60, если я верно понял, это всё уже есть.
Ещё б они самолёты починили…
Да, в 1.60 добавили это для сингл- и мультиплеера. А что с самолётами?
В 1.60 перепилили их физическую модель: добавили экранный эффект и ещё что-то (как написано в чейнджлоге). Но Су-25, например, всё равно требуется полтора километра разбега для отрыва (вместо реальных 500-700 метров).
Статья интересная, а перевод не понравился. Я на половине не выдержал и ушел читать оригинал.
Ох, играл я в этот бэтлфилд 3, если пули и настоящие, то я так понял, что точка попадания просчитывается в момент выстрела, но попадает она с задержкой, часто бывает, что уже забежал за укрытие и через пару секунд умираешь. Имхо на бумаге разработчики сказали одно, в реальности реализовали совсем другое.
Даже если учесть пинг в 100мс, пусть коллизия составит двойное время, 0.2 секунды, это время никак я бы заметить не смог, а на то что убивают уже за стенкой ругаются все с кем играл.
Даже если учесть пинг в 100мс, пусть коллизия составит двойное время, 0.2 секунды, это время никак я бы заметить не смог, а на то что убивают уже за стенкой ругаются все с кем играл.
Ниразу не попадал в такую ситуацию когда играл на ps3. В CoD:MW3, да, выстрелил всю обоиму, а киллкам показала, что ты вообще не стрелял, а любовался небом. В BF3 задержка видна только ну при очень больших проблемах с сетью (персонаж «прыгает» с места на место во время бега.
В BF3 система попадание обсчитывается на клиенте — из-за этого система попаданий очень сильно страдает. Можно убить человека выстрелив перед ним, или напротив — позади него. Зачастую умираешь когда уже повернул за угол относительно стреляющего.
DICE уже устали читать треды на форуме по этой проблеме
DICE уже устали читать треды на форуме по этой проблеме
Не замечал подобного, обычно наоборот — получается ускакать за угол и отсидеться, восстанавливая здоровье.
поиграйте на hc серверах) Или на европейских серверах(пинг 50-60)
www.youtube.com/watch?v=ADGJxFObiLM
На battlelog'e море тем по поводу убого неткода и системы попаданий.
www.youtube.com/watch?v=ADGJxFObiLM
На battlelog'e море тем по поводу убого неткода и системы попаданий.
Еще что часто бывает — из-за разницы в задержке у игроков — открывает огонь по врагу одновременно с ним(или даже раньше него на мгновение) — он тебя убивает, скажем у него вышел хэдшот. Тебе показывают кто тебя убил — и ты видишь что у него 100% hp, хотя ты в него пол обоимы всадил с 5 метров)
Так точно: выстрелил, забежал за угол, умер :) Бывает довольно часто, особенно при интенсивной стрельбе по тебе)
Вы когда играли?
Сейчас после патчей, появилась такая вот фича как — «лагокомпенсация» в настройках игры на сервере.
Выставляем на полную — и вауля — то, что вы описали, будет видно только на серверах с пингом 200+.
Нормальные люди стараются играть при пинге
Сейчас после патчей, появилась такая вот фича как — «лагокомпенсация» в настройках игры на сервере.
Выставляем на полную — и вауля — то, что вы описали, будет видно только на серверах с пингом 200+.
Нормальные люди стараются играть при пинге
Лагокомпенсация помогает временами, но слабо. Да и как описано официально, это увеличивает трафик, можно сделать некоторый вывод, что при увеличении размера пакетов, да и вообще объема данных, пинг может подрасти, что опять же приведет к лагам. У меня все зависит от маршрута, на каких то серваках стало лучше, на других ничего не изменилось.
Пересчет на клиенте — это прекрасно.
Профессиональные игроки в BF это не те, кто научился всем финтам и прелестям игры, а те, кто научился использовать систему попаданий. Сколько наблюдал за профи все используют свою систему.
Обычный пример: посадите интернет игрока BF поиграть в локальной сети и увидите очень интересную картину, он будет очень косым.
Поэтому игроки предпочитают изменять конфиги клиента(или использовать сторонние проги) чтобы не использовать систему попаданий, иначе они потом будут косыми.
Профессиональные игроки в BF это не те, кто научился всем финтам и прелестям игры, а те, кто научился использовать систему попаданий. Сколько наблюдал за профи все используют свою систему.
Обычный пример: посадите интернет игрока BF поиграть в локальной сети и увидите очень интересную картину, он будет очень косым.
Поэтому игроки предпочитают изменять конфиги клиента(или использовать сторонние проги) чтобы не использовать систему попаданий, иначе они потом будут косыми.
Не знаю про bf3. Но могу сказать, что в battlefield 2 для компенсации пинга применяет экстраполяцию. Причем самую простую, когда все объекты продолжают свое движение без изменения скорости и направления. Поэтому при лагах из-за этого случаются казусы.
Конечно (в общем) время отклика сильно уменьшилось за последнее время, однако мы сейчас уже подбираемся к чисто физическим ограничениям, а проблема все еще никуда не делась. Ведь сейчас мы взаимодействуем с людьми по всему миру, несмотря на то, что раньше сообщества не были так раздроблены.
Думаю автор имел ввиду, что сейчас я играю на Немецких серверах с пингом 50-60, а раньше для таких показателей нужны было искать серверы в Украине, а еще лучше в своей сети.
Получить пинги с Германией ниже этого значения невозможно чисто теоретически.
Думаю автор имел ввиду, что сейчас я играю на Немецких серверах с пингом 50-60, а раньше для таких показателей нужны было искать серверы в Украине, а еще лучше в своей сети.
Получить пинги с Германией ниже этого значения невозможно чисто теоретически.
Спасибо автору и переводчику!
Интересная статья получилась. С удовольствием прочел бы продолжение с чуть большим углублением в конкретные алгоритмы!
Я правильно понял из последних абзацев, что определение столкновений точно вычисляется на стороне клиента, а на сервера проверяется это столкновение с большей погрешностью?
Интересная статья получилась. С удовольствием прочел бы продолжение с чуть большим углублением в конкретные алгоритмы!
Я правильно понял из последних абзацев, что определение столкновений точно вычисляется на стороне клиента, а на сервера проверяется это столкновение с большей погрешностью?
>>Время жизни каждой пули около 1,5 секунд, а для пули, выпущенной из снайперской винтовки, – целых пять секунд.
А чего так много-то?
А чего так много-то?
Чтобы стрелять через всю карту, на дальность, например, 1-1.5км
Ну, через всю карту — это даже больше чем 1,5км :D Потому у снайперок время жизни еще выше.
Тогда не каждой, в только некоторых. Или перестрелка на дальности 1 км — это нормально для БФ?
Есть такое понятие — TTL. Именно о нем тут и идет речь. Расшифровывается и переводится оно как «время жизни», часто применяется в контексте пакетов. ТТЛ пули в 1,5 секунды означает, что пуля, если она сама собой не уберется о препятствие в виде стены/игрока/конца карты, будет убрана местным сборщиком мусора ровно через полторы секунды после генерации (выстрела).
И в статье как раз и говорится о том, что средняя штурмовая винтовка делает порядка 700 выстрелов в минуту, большая часть из которых идет в молоко (это связано с особенностями эксплуатации штурмовых винтовок большим количеством игроков), а значит повисает лишним движущимся объектом на поле на целые полторы секунды.
Т.е. перестрелка-то может проходить и на расстоянии 10 метров. Речь, в основном, про пули, выпущенные мимо цели.
И в статье как раз и говорится о том, что средняя штурмовая винтовка делает порядка 700 выстрелов в минуту, большая часть из которых идет в молоко (это связано с особенностями эксплуатации штурмовых винтовок большим количеством игроков), а значит повисает лишним движущимся объектом на поле на целые полторы секунды.
Т.е. перестрелка-то может проходить и на расстоянии 10 метров. Речь, в основном, про пули, выпущенные мимо цели.
> Вообще-то я не могу вспомнить ни одной игры кроме Bad Company 2 и Battlefield, которые делали бы это, но это, очень может быть, просто сказывается недостаток моих знаний в этой области
В WWII Online: Battleground Europe www.battlegroundeurope.com/ это было уже в 2003 году.
В WWII Online: Battleground Europe www.battlegroundeurope.com/ это было уже в 2003 году.
Ссылка на оригинал статьи (который был перепечатан на котаку): immersedcode.org/2011/12/16/how-a-shooter-shoots/
Великолепная статья, спасибо за перевод.
Когда попадания считаются на сервере — страдают игроки с большим пингом (не попадешь, нужно делать упреждение). Когда на клиенте — с большим (сложнее уворачиваться).
Мне кажется что первое — понятнее и честнее. А следовательно — спортивнее.
Мне кажется что первое — понятнее и честнее. А следовательно — спортивнее.
World of Tanks, похоже, тоже применяет различные степени приоритетов для всех передаваемых по сети объектов. Там в игре тоже отображаются пути снарядов выпущенных не тобой.
Больше всего раздражает, когда включается killcam и тебе показывают, что у убийцы «осталось» 0%. Хотя конечно, когда у тебя остаётся 0% и ты жив — это немного радует.
Вроде это означает, что он был убит за те 3-5 сек, что прошли от убийства до включения кил кама, не?
Попробуйте как-нибудь поиграть в Team Fortress 2 с медицинской пушкой, на далеком-далеком сервере с большим пингом. Посмотрим, как у вас будет получаться =).
В Team Fortress 2 медицинская пушка не стреляет, а лечит, стреляет шприцомёт :)
Кстати, движок Source интересен тем, что при замедленном просмотре видно, что снаряды (projectiles) двигаются не плавно, а рывками. Интересно было бы понять, почему так.
Да, и момент, не относящийся напрямую к теме статьи. В том же движке Source на выпущенные снаряды не влияет вектор движения игрока, в результате чего, например, при синхронном падении двух игроков бой между ними выигрывает тот, кто знает об этой особенности движка и стреляет с упреждением, а не тот, который слушал физику в школе и стреляет прямо по тушке противника. Интересно, это связано с какими-то принципиальными ограничениями, или Valve просто не хочет поднимать бурю негодования среди армии не желающих переучиваться задротов?
Вот небольшая подборочка багов с телеуправляемой ракетой (серия роликов показывающих проблему в замедлении) — www.youtube.com/watch?v=oZ73eQptp14&feature=share&list=PLvVNfFEGbYo_PZ8HbDDUqko1yXUpEcrAc
Хорошо иллюстрирует проблемы с синхронизацией хитбокса и модельки на клиенте/сервере. Все записано на пинге 1-3. Кроме «пролетов насквозь» в БФ3 часто случаются «нереги», т.е. когда анимация попадания есть (звук, взрыв и т.д.), а цель едет/летит/бежит дальше.
Хорошо иллюстрирует проблемы с синхронизацией хитбокса и модельки на клиенте/сервере. Все записано на пинге 1-3. Кроме «пролетов насквозь» в БФ3 часто случаются «нереги», т.е. когда анимация попадания есть (звук, взрыв и т.д.), а цель едет/летит/бежит дальше.
Sign up to leave a comment.
Как стреляет шутер