7 years ago
Дело в игре или у меня?
Всем привет! Не играю уже наверное неделю по одной не понятной мне причине! Раньше было всё, чётко - фпс плавность и игры.(отыграл 300 часов и не жаловался) Сейчас же фпс нормальный, а вот плавнос...
@myc0nflictпроблема не в системе, не в конфигах, проблема в коннекте на сервера. Для понимания проблемы надо сначала сообразить как работает игра. Любое ваше действие отправляется пакетами на сервер, механизм синхронизации на сервере обрабатывает эти данные, так как пинги и системы у всех разные, и все видят немного разные картинки в один и тот же момент времени, то серверу надо всех синхронизировать. Включается предиктивный механизм, который, как бы пытается заглянуть вперед в будущее, чтобы уравнять всех хайпингеров с лоупингерами. По этому поводу лучше найдите в интернете статьи по работе игровых движков.
Главное, что стоит отсюда вынести, что максимальныя плавность игры будет зависеть от движка игры и будет только при нескольких условиях:
1. на сервере все играют с одинаковыми пингами (что большая редкость)
2.у всех короткие маршруты до сервера (количество хопов)
3. в маршрутах нет тупых магистральных маршрутизаторов, которые добавляют джиттер (неравномерность пинга со временем)
4. ваш роутер не тупит и так же не добавляет джиттер с ростом нагрузки на него (в том числе все ваши iptv и wi-fi для родственников, при загрузке центрального процессора роутера начинается потеря пакетов и рост джиттера даже при достаточной ширине канала, или нехватка ширины канала может приводить к тому же)
Теперь эксперимент, подключаюсь на сервер "Бельгия" пишет игра пинг 37. Реальный коннект показывает пинг 50 (проверяю по маршрутизатору), но важно, что количество хопов более 20 с приличным джиттером и сигнал идет через Англию. Теперь вспоминаем о чем я писал вначале. Допустим вы бежите, стреляете подкатываетесь и т.п., пакеты с вашими действиями уже из-за одного сильного джиттера приходят на сервер в разные промежутки времени. Механизм синхронизации на серваке создает свою реальность для вас (это элемент предиктивного механизма), с которой сравнивает ваши действия, если что-то не совпадает по времени, вас откатывает до реальности СЕРВЕРА, таким образом из-за джиттера вы никогда не получите плавную игру (и оттуда же телепорты некоторых игроков в игре). Еще стоит упомянуть, что из-за высокого пинга, если ваш пакет приходит слишком поздно на сервер и информация в нем не укладывается в модель игры на сервере, он движком просто отбрасывается. Оттуда же и телепорты и отсутствие регистрации попаданий (в этом случае даже не будет информации о потери пакета в соединении). В игре ощущение будто тебя кто-то постоянно держит за ремень сзади, иногда ускоряешься даже при беге, короче плавности 0. Далее выхожу, подключаюсь на германию, пинг игра пишет 30. В коннекте примерно под 40 в реальности, но количество хопов около 7 с низким джиттером. И происходит чудо, игра становится значительно плавнее.
Как вариант - выбрать лучший для вас сервер, но проблема усугубляется тем, что маршрутизация до сервера меняется порой несколько раз на день и меню игры при выборе сервака вообще слабо отражает реальность. (посмотреть можно тут https://answers.ea.com/t5/Tehnicheskie-voprosy/Korotko-o-pinge-v-AREHE/m-p/8673308#M15147)
@myc0nflictпроблема не в системе, не в конфигах, проблема в коннекте на сервера. Для понимания проблемы надо сначала сообразить как работает игра. Любое ваше действие отправляется пакетами на сервер, механизм синхронизации на сервере обрабатывает эти данные, так как пинги и системы у всех разные, и все видят немного разные картинки в один и тот же момент времени, то серверу надо всех синхронизировать. Включается предиктивный механизм, который, как бы пытается заглянуть вперед в будущее, чтобы уравнять всех хайпингеров с лоупингерами. По этому поводу лучше найдите в интернете статьи по работе игровых движков.
Главное, что стоит отсюда вынести, что максимальныя плавность игры будет зависеть от движка игры и будет только при нескольких условиях:
1. на сервере все играют с одинаковыми пингами (что большая редкость)
2.у всех короткие маршруты до сервера (количество хопов)
3. в маршрутах нет тупых магистральных маршрутизаторов, которые добавляют джиттер (неравномерность пинга со временем)
4. ваш роутер не тупит и так же не добавляет джиттер с ростом нагрузки на него (в том числе все ваши iptv и wi-fi для родственников, при загрузке центрального процессора роутера начинается потеря пакетов и рост джиттера даже при достаточной ширине канала, или нехватка ширины канала может приводить к тому же)
Теперь эксперимент, подключаюсь на сервер "Бельгия" пишет игра пинг 37. Реальный коннект показывает пинг 50 (проверяю по маршрутизатору), но важно, что количество хопов более 20 с приличным джиттером и сигнал идет через Англию. Теперь вспоминаем о чем я писал вначале. Допустим вы бежите, стреляете подкатываетесь и т.п., пакеты с вашими действиями уже из-за одного сильного джиттера приходят на сервер в разные промежутки времени. Механизм синхронизации на серваке создает свою реальность для вас (это элемент предиктивного механизма), с которой сравнивает ваши действия, если что-то не совпадает по времени, вас откатывает до реальности СЕРВЕРА, таким образом из-за джиттера вы никогда не получите плавную игру (и оттуда же телепорты некоторых игроков в игре). Еще стоит упомянуть, что из-за высокого пинга, если ваш пакет приходит слишком поздно на сервер и информация в нем не укладывается в модель игры на сервере, он движком просто отбрасывается. Оттуда же и телепорты и отсутствие регистрации попаданий (в этом случае даже не будет информации о потери пакета в соединении). В игре на бельгии ощущение будто тебя кто-то постоянно держит за ремень сзади, иногда пробивает и ты ускоряешься даже при беге, короче плавности 0. Далее выхожу, подключаюсь на германию, пинг игра пишет 30. В коннекте примерно под 40 в реальности, но количество хопов около 7 с низким джиттером. И происходит чудо, игра становится значительно плавнее.
Как вариант - выбрать лучший для вас сервер, но проблема усугубляется тем, что маршрутизация до сервера меняется порой несколько раз на день и меню игры при выборе сервака вообще слабо отражает реальность. (посмотреть можно тут https://answers.ea.com/t5/Tehnicheskie-voprosy/Korotko-o-pinge-v-AREHE/m-p/8673308#M15147)
@Palxoxo13связан механизмом работы компенсации лага в сетевом коде движка игры.
Рекомендую ознакомиться, прежде чем искать проблемы:
https://goodgame.ru/news/26291/
Человек дело говорит) случайно попал на эту тему, но такая же проблема как в этой теме, но только мой пк 9900k, 2080 super, оперативка на 4000mhz и монитор 240 гц... казалось бы идеально плавная игра должна быть, но я из сибири и мой минимальный пинг по лобби если смотреть 85-88, какой он в реальности я вообще боюсь представить) наиграл в эту игру более 800 часов страданий) причем в других играх такой дерганной картинки из за неткода я не замечал.
@SanHasBadAim есть ли способ сгладить это?(помимо отключения tcp_nodelay)
или может какой то сервер определенный оптимальный ты нашел?)
@not_l0v3lyк огромному сожалению способов не найдено, кроме локальных, но больше в области плацебо, чем реально действенных. По наблюдениям, а я мониторю коннекты при каждой игре, если выбираешь сервер, скажем германию, и пишет пинг 27-30, то реальный коннект в лучшем случае был с пингом 37. А так пинг скачет от 37 до 180. При этом с каждой новой каткой создается новое соединение с новым маршрутом и новым IP адресом в конце. Т.е. судя по всему есть множество физических серверов, оканчивая матч на одном, тебя кидает на другой, пока этот перезагружает свое состояние перед новым матчем. Маршруты могут тоже меняться от 8 до 30 хопов, что конечно же сказывается на качестве геймплея. Более того, недавно они что-то накрутили с коннектом. Раньше игра открывала у тебя локальный порт 37005 (UDP) не зависимо от того куда ты подключаешься (как это происходит в, скажем, bf4 с портом 3659), но с некоторого момента, относительно недавно, каждый сервер открывает новый порт, хоть они и лежат в определенном диапазоне : 37005-38515 (зы, последняя цифра всегда кратна 5) (так примерно происходит и в PUBG). Заметил это, ибо создаю правила в своем фаерволе на роутере для "плацебо", о котором я говорил ранее.
PS. Как должно помогать tcp_nodelay, если игровые пакеты идут по протоколу udp?
К сожалению тоже столкнулся с потерей плавности картинки. Вчера было замечательно,но начал дико тормозить ориджин и пришлось его переустановить,потому что оверлей не выключался (была какая-то тема создана,что из-за включенного оверлея просидает визуальный фпс и словно игра идёт рывками). Так и не удалось отключить оврлей. Единственное решение которое нашёл,чтобы снова появилась плавность - врубить вертикальную синхронизацию ..неприятно сжирает ресурсы и не совсем удобно играть. Очень надеюсь,что есть какой-то способ тоже вернуть плавность ,потому что фпс от 80 до 120 ,а по ощущениям 30-40 (особенно во время прыжков)
@SanHasBadAim я не совсем разобрался в теме про nodelay, но видел много видео и сообщений на реддите, которые советуют отключение "Nagle algorithm" конечно ничего особого после этого не заметил. так же как и открытие портов тоже видимых результатов тоже не дало.
А если использовать vpn (к примеру wtfast) и он сможет выстроить маршрут лучше и в теории будет ли коннект стабильнее? или это не так работает?)
@SanHasBadAim придется видимо дальше играть с дерганной картинкой (+еще проблемы с картинкой когда фпс выше 190, в 4м сезоне получше с этим конечно и пока не могу понять лочить ли на 190 фпс или нет)
поиграл немного с этим впн и пока не могу понять, вроде плавнее стало, но тоже от игры к игре. либо мне кажется, либо я действительно стал чувствовать меньше задержки перед другими игроками. но скорее всего это тоже плацебо
Замечал что ФПС мин. при высадке падает, когда сервер хреновый.
Теперь вначале игры сразу вижу нормальный сервер или нет, если фпс ниже чем обычно, значит не повезло - катка не удалась (урон не проходит, фризит и т.д.)
@KissOfNevermore написал (-а):
@SanHasBadAimНашёл немного другой способ . По ощущениям гораздо стало лучше. Зашёл в настройки нвидиа,выставил "вертикальный синхроинпульс на значение - быстро" ,и ограничил количество кадров с помощью той же нвидиа до значения 70 (в моём случае)
Мои настройки
Как ты меняешь такие параметры и где это вообще найти?
Панель правления Нвидиа.