Форумы Серверы Суспільство
Игры Серверы VBIOS General Soft & Hard Увлечения А поговорить... Культура Полезная информация Межигір'я Чат

  1 из 2 Все12
Пользователь Сообщение: И опять про устранение лагов :)        (Тема#18450)
Iks 
майор
Iks
Возраст: 30
С нами с 25.04.07
Посты: 1159
29.12.07 18:16 Ukraine #351735
Тема уже конечно убсуждалась, но вот столкулся я с такой фигней, что при пинге 5-15, я уже второй день наблюдаю как мои телепезы просто напросто пролетают насквозь...

Вспомнил что батла настроена под пинг 100, думаю нада бы поднастроить под свой пинг, чтобы вернуть на место хитбоксы. Но тут возник один вопрос... usersettings.con, отсутствует вообще. Да я пробывал прописывать команды через консоль, но нужного эфекта я так и не добился, я вообще подумал что до задницы все что я меняю, если записать то мои изменения некуда.
Iks 
майор
Iks
Возраст: 30
С нами с 25.04.07
Посты: 1159
29.12.07 18:30 [Re: Iks] Ukraine #351737
Почитав пару статеек по поводу клиент-серверного общения в играх могу высказать своё мнение о этих настройках.

Чтобы не было читеров и подмены информации о попаданиях и повреждениях вся инфа подобного рода и весь игровой мир обсчитывает сервак. Из-за того что между ним и клиентом существует задержка в передачи инфы используют 3 основных механизма коректировки. Компенсация задержки, интерполяция и экстраполяция.

GSDefaultLatencyCompensat ion 0.100000

Вы посылаете пакет на сервак о том что выстрелили челу бегущему за угол прямо перед самым углом в хэд. Сервак получил от этого чела (бегущего за угол) инфу о его положении раньше вашей тк допустим у него лучше пинг. Однако благодаря компенсации "лагов" сервак берёт из текущего положения спрятвшегося за углом чела вычитает время компенсации и определяет где он был в прошлом в момент вашего выстрела. таким образом сервак откатывает реальное положение бедалаги за углом и засчитывает уме хиты. Те чел с плохим пингом при правильной настройки компенсации получается попадает в того у кого пинг лучше. это вызывает парадокс для чувака с хорошим пингом который спрятался за угол и он в шоке от того что его убили а для чела с плохим пингом всё вроде бы и в норме - он убил гопника ещё до угла. Отсюда вывод - это значение должно быть равно вашему пингу.
Работу этого параметра явно видно из ролика где чуваки бегущие параллельно среляюют друг в друга слегка ссзади и убивают. Это значит что он снимали этот ролик на серваке где имеют пинг меньший 100 а это значит что исходя из дефолтного конфига сервак делает откат модели игрока в прошлое на 100мс но! в реале надо было сделать откат не так сильно а допустим на 60мс (при пинге 60) - вот и получается что чел стрелять должен чуть назад.

GSExtrapolateFrame 0
значение либо 0 либо 1. 1 значит включить учёт экстраполяции а 0 значит забить на неё.

GSExtrapolationTime 1200
это метод борьбы с потерями пакетов. допустим вы при игре лаганули и ваш комп недополучил пакетик с координатами врагов и их моделями на карте. чтоже тогда врубается механизм экстраполяции и ваш клиент (ваша тачка) пытается достроить положение врага методом предсказания его перемещений основываясь на последних пакетах полученных с сервака (координаты, скорость , вектор движения и тд). думаю многие замечали как при зависании коннекта в игре машинка к приеру вылетает за область дороги и взлетает в небеса. когда те или иные объекты основываясь примерно на своём предыдущем движении начинают двигаться по той траектории куда они двигались раньше и клиент при этом даже не додумывает что танк не может летать =). значение данного параметра говорит о том в течении какого периода времени в мс ваша машина будет предсказывать будущее положение объектов на карте. ставить много это равносильно тому что ваш компрьютер в итоге при больших лагах в конекте предскажет вам что ваш враг улете на танке в облака. маленькое значение не вызовет таких глюков но тогда будут лаги связанные с потерей пакетов и картинка на вашей машине уже будет обновлятся только после получения инфы с сервака те рывками.

GSInterpolationTime 100
компы как правило держат фпс на высоком уровне ( к примеру 50фпс что соответствует 50 обновлениям в секунду) и канал инета не поспевает за этим. получается что для фпс 50 надо иметь пинг в 50 обнослений в секунду те 20мс. а если у меня видео легко держит 100фпс то пинг равен 1мс =). отсюда следует применение интерполяции, те предсказание положения врагов для сглаживания картинки. те получается что прежде чем вам видюха отрендерит модель игрока ваш комп 2 раза обратится к серваку и потом ваш проц просчитает промежуточное положение модели между двумя обращениями которое ваша видюха собственно и отрендерит. те получается что реально вы получили все данные о игроке в моент времени Х потом получили данные в момент времени Х + дельта равная времени задержки через которое пришёл второй пакет. потом основываясь на этих данных ваш проц предсказывает плавную траекторию модели игроков врага на серваке и их движение. те этот параметр должен быть как минимум равен вашему пингу или меньше той планки до которой может ваш пинг упасть. ставить параметр ещё ниже не смысла тк ваш пинг не даст вам возможность сократить время между двумя пакетами (время интреполяции) менее чем время на прохождение физичски пакетов. в идеале должно совпадать с вашим пингом и с DefaultLatencyCompensatio n. если пакет всё же теряется то врубается компенсация данных потерянных а именно механизм экстраполяции - предсказания содержимого потерянного пакета. после получения очередного пакета ошибки предсказания будут устранены сервером. наверно замечали как вроде бы вы прошли вперёд как вдруг при лагах вас сервак возвращает почти в ту же позици где вы и были. всё это происходит при резком подскоке пинга и сопровождается лагами и дёрганьями (каждый раз ваш клиент основываясь на корректировках серваком ваших неверных предсказаний правит положение моделей). Ещё думаю видел как вас удивают из промежуточного положения (чел ещё не лежит но уже и не стоит) хотя это как бы и не возможно.

всё это тока моё имхо и мои догадки так что на истину не претендует. особенно мне не понятно почему при дефолтном GSExtrapolateFrame 0
всё равно есть экстраполяция - те неверные предсказания объектов на карте при проблеме с коннектом. возможно либо существуют ещё и другие скрытые механизмы в бф2 отвечающие за это либо я не верно понял смысл этого параметра. второе что меня смущает это почему при подскоке пинга и лагах идёт корректировка именно вашей модели тоже и вы видете лаги и дёрганья - мне казалось что экстраполируются все модели кроме ваших тк о вашей модели сервак узнаёт от вас и ваших командах отданых ему. возможно это связанно с тем что сервак просто не может так резко переместить вашу модель вперёд ( крпимеру вы шли вперёд в моент подскока пинга) и основываясь на последних данных от вас и новых данных коректирует ваше положение в промежуточное между тем что было до подскока пинга и тем что вы видели на вашей стороне клинета.

(c) http://redthreat.clan.su/forum/6-18-1
Spaceman 
Правдоборец
Spaceman
С нами с 31.01.07
Посты: 6704
29.12.07 18:58 [Re: Iks] Ukraine #351744
Вот тут он:
Battlefield 2\mods\bf2\Settings
Battle 
генерал
С нами с 21.03.07
Посты: 8227
29.12.07 18:59 [Re: Iks] Russian Federation #351746
Всегда делаю так:
GSDefaultLatencyCompensat ion 0.025000
SettingsManager.boolSet GSExtrapolateFrame 1
SettingsManager.U32Set GSExtrapolationTime 100
SettingsManager.U32Set GSInterpolationTime 100

Вроде норм, не жалуюсь...
Iks 
майор
Iks
Возраст: 30
С нами с 25.04.07
Посты: 1159
29.12.07 19:04 [Re: Silbervogel] Ukraine #351750
  • Spaceman Сказано:
Вот тут он:
Battlefield 2\mods\bf2\Settings



Хочешь прикол ? У меня его там нету... его ВООБЩЕ НЕТУ

Перебил батлу, не помогло, его сеовно как небыло так и нету. Скиньте мне его плиз...

Отредактировано !kS1k.sun 29.12.07 19:07. Причина редактирования: Причина не указана.
Spaceman 
Правдоборец
Spaceman
С нами с 31.01.07
Посты: 6704
29.12.07 19:10 [Re: Iks] Ukraine #351753
rem
rem Settingsfile automatically saved by bf2
rem
SettingsManager.boolSet GSClPunkBuster 1
SettingsManager.floatSet GSDefaultLatencyCompensat ion 0.100000
SettingsManager.boolSet GSExtrapolateFrame 0
SettingsManager.U32Set GSExtrapolationTime 1200
SettingsManager.U32Set GSInterpolationTime 100
SettingsManager.U32Set GSPerfLogAtPlayerCount 30
SettingsManager.stringSet GSPlayerName "приставка ник"
SettingsManager.boolSet GSShowNetGraph 0
SettingsManager.boolSet GSUseObjectCache 1
Battle 
генерал
С нами с 21.03.07
Посты: 8227
29.12.07 19:15 [Re: Iks] Russian Federation #351759
  • !kS1k.sun Сказано:
Скиньте мне его плиз...


на, ток инфу свою вставь...
powerp 
упырь с мелом
С нами с 20.06.07
Посты: 828
29.12.07 20:31 [Re: Battle] Ukraine #351790
Категории расставлены в зависимости от влияния на хитбокс.
1.GSDefaultLatencyCompensat ion
тут уже все рассказали.

2.интерполяция - "сглаживание" заметно при большой скорости перемещения объекта. Никогда нельзя ставить на 0 так как бегущие пехотинцы будут буквально телепортироваться. Поискав в нете и поэкспериментировав несколько недель понял что значение 30-50 - самое оно. Тут я должен заметить что эти настройки актуальны только для низкого пинга, если же у вас высокий пинг(70+) лучше оставить все как есть. Еще важно заметить что для частой интерполяции важен хороший проц.

3.экстраполяция - влияет на хитбокс только при плохом инете. Но тут поможет смена провайдера а не экстраполяция
У меня по-какойто причине включений этой фигни приводило к лагам в игре и дисконнектам, но если кто-то захочет попробовать, то смело ставим GSExtrapolateFrame на 1 а GSExtrapolationTime пробуйте ставить по формуле (GSInterpolationTime х 12).

Всем советую поменять хотя бы первые две переменные и переучиваться стрелять в "то что видишь" а не в пустоту.

Все это я нарыл на tweakguides.com, bf2s.com

ЗЫ GSPerfLogAtPlayerCount 30 - народ с bf2s.com рекомендовал изменить на максимальное число игроков которые могут находиться на сервере на котором вы играете (т.е. для 1bf2 - это 64)
Iks 
майор
Iks
Возраст: 30
С нами с 25.04.07
Посты: 1159
29.12.07 20:57 [Re: powerp] Ukraine #351800
Ну что ... может что-то само номализовалось, может и нет, но после того какя вставил заранее настроенный юзерконфиг.кон на положенное ему место, первые 3 телепуза были 2 мишки в районе кабины и самолет Так что я надеюсь все так и осатнется.


Бока все еще наблюдаються ... но вроде не такие сильные. Будем играться дальше...


По моему я ничего не изменил, ведь если я меняю какой-то из параметров через консоль он должен поменяться в юзерконфиге... а он этого не делает.

Отредактировано !kS1k.sun 29.12.07 21:32. Причина редактирования: Причина не указана.
ZverPunk 
майор
ZverPunk
Возраст: 31
: Харьков
С нами с 27.10.07
Посты: 1493
29.12.07 22:36 [Re: Iks] Ukraine #351852
ребят, если честно не понял ничего. Но с лагами боротся хочется. если можно скинте в личку по-подробней мануальчик.
зы пинг 120((
Iks 
майор
Iks
Возраст: 30
С нами с 25.04.07
Посты: 1159
29.12.07 23:05 [Re: ZverPunk] Ukraine #351862
прочитай 2 пост поймешь все.
Krabat 
капитан
Krabat
Возраст: 44
: Украина, Луганск
С нами с 28.06.07
Посты: 647
30.12.07 21:29 [Re: Iks] Ukraine #352127
Прикольно, но тоже не было файла... попробую поставить.
KillingSpree 
капитан
KillingSpree
Возраст: 112
: ОАЭ
С нами с 11.07.07
Посты: 581
30.12.07 21:35 [Re: Krabat] Ukraine #352131
И у меня его нет, а если его нет, то БФ к нему не обращается т.к. если б обращался и его небыло - были б проблемы. Скорее всего с новым патчем эти функции вшиты в какой-то другой файлик, к примеру Video.con (но это лишь догадка). Икс, эта статья по какой версии БФа?

п.с. И на мой взгляд, те у кого файлик этот существет, играли или заходили на свой акк в старом (1.3) БФе.


Отредактировано KillingSpree 30.12.07 21:35. Причина редактирования: Причина не указана.
Battle 
генерал
С нами с 21.03.07
Посты: 8227
30.12.07 21:42 [Re: KillingSpree] Russian Federation #352136
  • KillingSpree Сказано:
И у меня его нет


o_O В какой папке вы всё таки смотрите? Можно скрин?
  • KillingSpree Сказано:
на мой взгляд, те у кого файлик этот существет, играли или заходили на свой акк в старом (1.3) БФе.



Нет, не играли
KillingSpree 
капитан
KillingSpree
Возраст: 112
: ОАЭ
С нами с 11.07.07
Посты: 581
30.12.07 21:46 [Re: Battle] Ukraine #352139
мля, и действительно
Я просто смотерл в папке в МоихДокументах, извиняюсь. Всё есть
KillMachine UA 
генералиссимус
KillMachine UA
Возраст: 39
: Київ
С нами с 10.12.07
Посты: 25376
10.06.08 17:39 [Re: KillingSpree] Ukraine #420260
up )
UAGs invisible 
подполковник
UAGs invisible
Возраст: 41
: Ukraine, Odessa
С нами с 30.05.07
Посты: 3950
10.06.08 18:15 [Re: KillMachine UA] Ukraine #420284
  • KillMachine UA Сказано:
up )


What’s up, Doc?
KillMachine UA 
генералиссимус
KillMachine UA
Возраст: 39
: Київ
С нами с 10.12.07
Посты: 25376
10.06.08 18:17 [Re: UAGs invisible] Ukraine #420287
Закопали такую тему душевную
UAGs invisible 
подполковник
UAGs invisible
Возраст: 41
: Ukraine, Odessa
С нами с 30.05.07
Посты: 3950
10.06.08 18:45 [Re: KillMachine UA] Ukraine #420333
  • KillMachine UA Сказано:
Закопали такую тему душевную


вот это нужно было откапывать:
http://forums.vbios.com/showflat.php?Cat=0&Boar...
Karsonito 
старшина
С нами с 26.02.07
Посты: 212
10.06.08 23:17 [Re: UAGs invisible] Ukraine #420499
все это интересно и замечательно, но почему нельзя было автоматически определять величину пинга, усреднять?
ну да ладно, маемо тэ, що маемо.
а статейка хорошая
  1 из 2 Все12
Icon Legend Права Настройки темы
Распечатать тему


7531 Просмотры
Реклама
83 сейчас в онлайне
6 пользователей (Silent Dude, Hac9lJlbHuKe, CybeReХ, CJlOH, drc-dimmon) и 2 скрытых, а также 75 гостей сейчас онлайн.
     
VBIOS Version 3.0 FINAL | ©1999-2020
Execution time: 0.214 seconds.   Total Queries: 79   Zlib сжатие вкл.
All times are (GMT+3). Current time is 10:17
Top