Странно, но зенитку, убиенную тобою в миссии, сервер не зарегистрировал :)Цитата:
Сообщение от Stalevar
Вид для печати
Странно, но зенитку, убиенную тобою в миссии, сервер не зарегистрировал :)Цитата:
Сообщение от Stalevar
Мне вобще сильно интересно, как объём сетевого траффика кореллируется с задержками в обсчёте картинки? Тем более, как на это влияет ширина канала? Ну просто как? Или сетеваой протокол в игре настолько сильно защищён, что для его дешифрации требуется львиная часть процессорного времени?Цитата:
Сообщение от Sexton
Ну, вообразим, что у меня канал 9,6 кбит/с. Давай, развей мысль дальше, в каком месте мой компьютер должен тормозить?Цитата:
Сообщение от Sexton
У меня проблема с фризами-лагами решилась зарезанием графики. На перфекте меня не фризило, но лагало окружающих почему-то. И еще - после 2-часов полетов почему-то резко упал ФПС, помогла перезагрузка компа - ИМХО у ПХ какие-то неизлеченные проблемы с памятью. Думаю это все притрется.
P.S. Спасибо GT за сервер в общем и Николаю (7IAP_Flogger) за великолепные карты и атмосферные брифинги. После долгого перерыва стало интересно "правильно" летать. Потому-что атмосфера правильная: море, злые зеры (коты), посадка на эскортники, отсутствие тупых вулчеров (прилетел за 10 км, убил крафт на взлете, сам сдох во флаках).
P.P.S. Просьба правильных вулчеров не обижаться:D. Мы вас любим и помним:D.
Кстати - у меня модем 33,6 - пинг 300. После зарезания графики лагать почти перестало. Т.ч. дело ИМХО не в канале.
ага..а так все кричали про перфект.....писец......все опять банально гробят...иметь интернет 2МБ и компутер примерно равный по стоимости внешнему долгу Танзании и не иметь возможности нормально летать....Вчера раз 3 пытался зайти на А20...то фриз..то он в лаг...как следствие слита высота, куча времени на поиск ...т.е потерян сам смысл вылета...и это было не на перфекту (куда уж млин до него..)....даже не на идеале....а так..на средних настройках ландшафта и количестве игроков всего лишь??? чел 20........Цитата:
Сообщение от 7IAP_Walter
Я конечно не большой специалист, но у ПХ сейчас какие-то проблемы с памятью нерешенные (может только в онлайне). Сам начинал матерится - после некоторого времени на средних настройках - AVG:13 ФПС . Перегрузился - переконнектился - меньше 40 не опускается... Имхо - память или фрагментируется сильно или еще какая беда. Видимо ты на такого с 10 фпсами и наскочил.Цитата:
Сообщение от Tartilla
я не очень во всех этих железных делах понимаю...может и так...но от этого не легче....вообще то это был третий А20 которого я пытался атаковать....первого между фризами успел грохнуть (прости Пух :) ), второй в каких т немыслимых лагах, фризах, подтормаживаний ушел куда то из прицела в космос и не вернулся.....а вот третьего я уже психанув решил добить....дурдом полный-ситуевина я пытаюсь предугадать полет человека и атаковать, он то боком, то прямо хер поймешь когда он нормально летит, по тебе метелят стрелки, все рывками ..а сзади еще подходит некто 7ИАП_Вальтер (помнишь над островом Зеро сбил? :) ) и отстреливает тебе крылья....Цитата:
Сообщение от 7IAP_Walter
ЗЫ И при этом средний ФПС весь вылет около 100......и пинг 22.....
Мои предположения основывались на двух высказываниях ОМ в личной переписке.
"При определенном рубеже может случиться так (для
СООР), что онлайн будет медленнее, чем сингл. Это зависти от качествя связи и количества предаваемой в канал информации."
"Значит его "лагает", то есть торможение происходит из-за плохой передачи
данных в сети. FPS считется средним за промежуток времени. Если в этом
промежутке зытыки из-за лага в онлайне, то и FPS счетчик показывает с учетом
этих торможений."
Чем больше игроков на сервере, тем больше данных сервер пересылает игроку (возможно он отсылает их каждому игроку в отдельности, т.е. надо умножить на кол-во игроков) и тем больше времени занимает процесс отправки данных. Чем больше времени уходит на отправку, тем реже сервер отправляет эти данные.Цитата:
Сообщение от pakman
Т.е. при игре 1х1 ты будешь получать данные 10 раз в секунду, при игре 40 игроков 1 раз в секунду (все цифры гипотетические).
В первом варианте противник будет везти себя предсказуемо и плавно, во втором его будет у тебя лагать.
Чем тоньше у тебя канал тем дольше и реже ты получаешь данные с сервера.Цитата:
Сообщение от pakman
Пока твой комп ждет данных от сервера он обсчитывает положение самолетов противника исходя из информации, которая имелась у него на последний момент. Но вот твой комп получил данные с сервера и оказалось, что пока он ждал этих данных Вася Пупкин не летел все время прямо, а пошел в вираж. И самолет Васи Пупника прыгает у тебя на экране из того места, где он находился по мнению твоего компа, на то место, где он находится в реальности - лаг.
Все это мое ИМХО.
Действительно после ПХ пошли новые проблемы с онлайном. Даже на маленьких картах у меня (при том что памяти и всего другого в достаке) очень часто трещит винт, лагает и фпс скачет от 5 до 70.
Как не зарегистрировал? Чего ты так решил? Вот ровно одна пушка, 5 зениток и 124 грузовичка.Цитата:
Сообщение от Adler
http://www.gennadich.com/g2/sortie/511/1594/index.html
А ещё есть одна фигня - сижу в лобби, в ТС, ждём вылета в беллум. Решил ботов наземку погонять пока оффлайн. Запускаю Смоленск, ил - лечу. Фризит. Так же как в онлайне. Злюсь. Нажимаю кнопочку питания на модеме - о, полёт стабилизировался, фризы сгинули как и не было. Т.е. работа сети даёт фризы в иле... с чем это связано, я не знаю.
Гы! :DЦитата:
Сообщение от Revizorro
Но при чем тут фриз??? Пусть бы его лагала, но почему это должно тормозить МОЮ систему?Цитата:
Сообщение от Sexton
А Гипперлобби закрывал, когда ботов гонял? Тормозит не сетка, а лобби, когда серваки пингует и мессаги в чате получает. Сделай логгофф и наслаждайся жизнью.Цитата:
Сообщение от 23AG_Oves
Да хоть бы и один раз в пять минут. Почему из-за этого у меня вся, ВСЯ!, картинка отрисовывается рывками? Или положение земли относительно моего самолёта тоже шлётся мне сервером? Я кстати, уже готов в это верить.Цитата:
Сообщение от Sexton
Чёрт с ним, пусть бы самолётики летали треугольником у меня на экране, лишь бы сама картинка отрисовывалась плавно. Если картинка стелится без рывков, то даже в летящий боком самолёт можно попасть. На худой конец, можно занятся штурмовкой, не опасаясь выйти из пикирования ниже уровня ландшафтных текстур. Благо наземка не разбегается при виде атакующего штурмовика.
А вот про фризы у меня никаких догадок нету.Цитата:
Сообщение от Buka
Вот этот ответ ОМ был на вопрос почему у человека в оффлайне ФПС в несколько раз выше чем в онлайне.Цитата:
Сообщение от pakman
"Значит его "лагает", то есть торможение происходит из-за плохой передачи
данных в сети. FPS считется средним за промежуток времени. Если в этом
промежутке зытыки из-за лага в онлайне, то и FPS счетчик показывает с учетом
этих торможений."
Видимо есть связь между качеством связи и ФПС, а что там происходит я не знаю.
У меня есть предположение про фризы, варпы и сетевые лаги.
Разобьем прохождение сигнала от удаленного игрока до локального игрока на два плеча.
Первое плечо - это прохождение сигнала от удаленного игрока до сервера. Если в этом плече происходит замирание сигнала (потеря пакетов), то мы наблюдаем варп.
Второе плечо - это прохождение сигнала от сервера до локального игрока. Если в этом плече происходит замирание сигнала (потеря пакетов), то мы наблюдаем фриз. Это искусственное торможение картинки при отсутствии сигнала от сервера. Это как бы защита от читеров, не уверен, что оправданная.
Сетевой лаг, он же сетевая задержка, есть всегда. "Лагать" начинает, когда сетевая задержка сильно изменяется, перестает быть относительно стабильной. Например, часто можно наблюдать картинку, когда чужой самолет начинает как-то неестественно "плыть", а потом на огромной скорости по криволинейной траектории перемещается в некую заранее непредсказуемую точку пространства. Эта ситуация означает, что пакеты где-то притормозились, собрались в кучу, а потом пришли одной пачкой.
Повторяю, все это только мои предположения. Я не знаю точно природу этих явлений.
Давай рассуждать логически.Цитата:
Сообщение от Sexton
Что есть плохая передача данных в сети? Скорее всего, это отсутствие возможности передать необходимый объём информации за единицу времени. Т.е. это означает уменьшение принимаемой игрой информации. Следовательно на обработку принятой урезанной информации уходит меньше процессорного времени. Значит, увеличивается доля процессорного времени для обсчёта графики. Процессор вместо обработки недополученной сетевой информации может обсчитать лишнюю пару-тройку кадров. В результате, ФПС должен вырасти :D.
Я популярно излагаю?
Вопрос: в какое место моего безупречного :D логического построения должна быть внесена поправка, что бы результат был извращён на противоположный?
Это был бы оголтелый мутантизм. Не смею даже заподозрить уважаемых разработчиков любимой игры в таких делах.Цитата:
Сообщение от tugarin
Цитата:
Сообщение от pakman
Сейчас подумаем и как-нибудь извратим :)))
Возможно игра не рисует следующий кадр пока не получит информации от сервера? Тогда чем дольше ты ждешь получения данных, тем дольше задержка между кадрами.
Но с другой стороны частенько бывает что связь с сервером потерялась, а ты как летел так и летишь и никаких фризов не происходит.
Так что фиг его знает.
Возможно природа фризов загадка для самих разработчиков.
Кстати не плохо бы набрать статистику по фризам.
Типа "что мы знаем о фризах?".
Что знаю я:
1. Фриз происходит не на сервере, а на локальной машине (подтверждение: у меня фриз, у напарника все в порядке).
2. Во время фриза опрос устройств управления продолжается (подтвеждение: когда меня фризит во время пикирования я всегда беру ручку на себя, уже после фриза, и по завершении фриза я не обнаруживаю себя в земле).
Знаешь что, тебя щас забанят. Потому что ты открытым текстом сказал, что Ил2 Штурмовик - это на самом деле всего лишь навороченный скин к Windous Media Player. А траффик идущий от сервера - это закачиваемый wmv-файл. Интересно ожидал ли Билли Гатес такой подставы от Олега Медокса? :DЦитата:
Сообщение от Sexton
Как ни странно, но похоже именно так все и происходит :) Пойду в баню с Секстоном, правда имя для бани у него страшное :D:D:DЦитата:
Сообщение от pakman
А разве это не так? :D :DЦитата:
Сообщение от pakman
Как еще объяснить такие фризы???
К слову говоря, по крайней мере в версии 3.03 игра нормально обсчитывает физику и реакцию на движение джоем даже в моменты коротких фризов. Меня такие недолгие (полсекунды, редко больше) фризы теперь посещают весьма часто, бывает такое и на посадке, как раз в момент, когда надо перед касанием полосы погасить остатки вертикальной скорости и мягко плюхаться на три точки. Но я, несмотря на застывшую картинку, привычно машу джойстиком, как и в обычном полете, и самолет после фриза оказывается в правильном положении, часто уже непосредственно на полосе, целый и невредимый, и даже не скачет после этого, что указывает, что игра верно поняла мои манипуляции, причем в нужный момент, т. е. в середине фриза. Как все это понимать - я не знаю...Цитата:
Сообщение от pakman
Вообще статистика по fps веселит - типа max fps = 150, average = 45, min = 1. И от этого не избавиться в принципе, хоть ставь самые-самые минимальные настройки графики - после пары часов игры все равно будет момент, когда у тебя в статистике FPS появится min fps = 1...
Смелее, дружище! Я уверен, что замирание картинки производится искусственно. В Ил-2 Штурмовик никаких фризов не было. Там были другие грабли. При отсутствии информации с сервера картинка не замирала, самолет нормально управлялся (кстати, он и сейчас нормально управляется во время фриза, только кратинка замирает). Это приводило к таким ситуациям, что некоторые самолеты противника просто зависали в воздухе. Можно было легко подойти к противнику и расстрелять его зависшего. Я однажды на Геннадиче таким образом расстрелял самолет Лофта. :) Он тогда еще очень удивился и спросил: "Как ты меня сбил?" Не помню, что я ему ответил, но эта "победа" никакого удовольствия мне не доставила, даже стало немного стыдно. :)Цитата:
Сообщение от pakman
Лучше бы разработчики вместо замораживания картинки сделали, чтобы на время отсутствия данных от сервера все окружающие самолеты становились невидимыми.
Прямой связи между фризом и примемом данных с сервера не вижу пока. Часто бывает что связи нет, но и фриза тоже нет.
Может кто-нибудь набереться смелости и напишет письмо разработчикам с простым вопросом "Объясните природу фризов"?
- Ты суслика видишь?Цитата:
Сообщение от Sexton
- Нет.
- И я - нет, а он есть!
Суслик объясняет многое, но не всё :D
Кстати, поведение игры очень похоже на поведение Эксплорера. Это хорощо заметно на плохой линии на мопеде. При открытии страницы, если происходит ретрейн, картинка как бы замирает, а потом либо резко прорисовывается, либо выскакивает "Невозможно отобразить страницу" и мы слышим звук набираемого номера.
Бука, гигант! Бросить им в лицо, мол продукт ваш - это те же "Форточки", тока под углом 90°. Это смелый и решительный поступок. Не даром ты у нас в ШАДе курсантский хлеб ел :D. Подам ходатайство на награждение орденом... мм... себя.Цитата:
Сообщение от Buka
Заедешь, обмоем :)
Попробую высказать свой взгляд на причину фризов :)Цитата:
Сообщение от Buka
Это, конечно, можно объяснить, но только при знании архитектуры программы. Могу предположить, что отрисовка картинки синхронизирована с обработкой сообщений от сервера, поскольку информация, которая приходит с сервера, может повлиять на содержание сцены. Так что, если изменения в сцене значительные, например массовые взрывы наземки ( не по твоей вине :) ) или одновременное открытие огня зенитной артилерией нескольких кораблей, то ничего не будет рисоваться у тебя до тех пор, пока изменения не будут внесены в сцену. С другой стороны, намного выгоднее пересылать одним пакетом (сетевым) как можно больше таких изменений в цену, дабы уменьшить накладные расходы на доставку. Учитывая сказанное выше получается, что если пакет большой, то пока он не будет принят и сцена не будет изменена, отрисовок на экране не будет,Вот вам и фриз :)
Пример.
Допустим, есть набор команд от сервера, который меняет сцену. Каждая из этих команд имеет свой время выполнения (которое от текущей сложности сцены тоже, кстати, зависит).
Теперь, если приходит пакет в котором n изменений сцены, то можно это обрабатывать двумя способами:
Первый. приостановить отрисовку, сделать все изменения в сцене (или данных на базе которых она генерится) и разрешить отрисовку. С точки зрения общей производительности это выгодный способ, но в этом случае страдает плавность отрисовки. т.е. мы в за счет "наглядности" :) сцены добиваемся высокой актуальности внутренних данных.
Второй. приостанавливать отрисовку только для внесения изменений относящихся к одиночной команды из пакета. Это лучше с точки зрения "плавности" отрисовок, но в этом случае мы получаем обратный эффект - мы за счет плавности отрисовки замедляем обработку сетевого пакета и уменьшаем скорость внесения изменений присланных сервером.
Судя по наблюдениям, в Иле отдаётся предпочтение первому способу. И, возможно, что "пакетная обработка изменений" позволили поддерживать 128 человек на сервере одновременно.
Прояснить ситуацию может только разработчик, но думаю, что это не может обсуждаться здесь, поскольку имплементация сетевой и "отрисовочной" частей и их взаимодействия есть секретная штука, и о таком не рассказывают разработчики.
P.S. Разработчиков, знающих как там всё по настоящему, просьба не смеяться над моим дилетантским мнением :)
По сути ты расширил мой пост на 4 сообщения выше.
ЗЫ Для игры это ИМХО не приемлимо.
Вот.
Trabla высказал вполне правдоподобную мысль.
Примерно тоже хотел и я сказать.
В развитие мыли Trabla.
Возможно данные в игре передаются блоками и есть "тэги" открывающий блок и закрывающий. И если игра не получила "закрывающий тэг" то остается в режиме ожидания получения данных. И в тоже время если она не получала "открывающего тэга", то продолжает рисовать кртинку как обычно.
Тогда это может объяснить разное поведение игры при разрыве связи с севером.
Конечно :) , но там компромисс надо искать, поскольку и плавность отрисовки и скорость обработки данных, пришедших с сервера, есть критические части для онлайна.Цитата:
Сообщение от Buka
Тогда это не архитектура программы, а ляп в архитектуре программы, т.к. все более или менее грамотные разработчики сетевых приложений знают, что сетевой обмен нужно отделять от основной логики программы. Это делается путем выноса логики сетевого обмена в отдельный поток управления (thread). Подобные ляпы допускают только совсем зеленые новички в области создания сетевых приложений. Уверен, что разработчики ПХЗСАВН такого ляпа не допустили. Предположить такое еще хуже, чем то, что боится предположить pakman. :) Предположить такое - это все равно, что нанести программисту оскорбление. :)Цитата:
Сообщение от trabla
Почему это именно ляп?Цитата:
Сообщение от tugarin
Если произошло одновременно много изменений в сцене, то логично дождаться получения всех изменений, а потом уже отрисовывать сцену. Иначе события, которые в игре произошли одновременно, у тебя на компе будут разнесены во времени, что не есть хорошо.
Если я все правильно понимаю.
thread это хорошо, и он там наверняка есть. Но доступ к данным сцены должен быть синхронизирован и тут хоть 100 threads запускай, всё равно только один данные сцены будет апдейтить и при этом thread рендерера не сможет их использовать до окончания апдейта. Я не говорю о приёме пакетов из сети, я говорил об их обработке.Цитата:
Сообщение от tugarin
Я не говорил о том что там что-то неправильно, а тем более никого не обвинял в том, что он чего-то незнает или не умеет :) . Просто, я описал предполагаемую причину фризов. Причём, я указал, что решение не может быть абсолютным и может являться только компромиссом.
Подчеркиваю, это предполагаемая причина, а там всё может быть и по другому
Потому что в каждой профессиональной области есть свои собственные незыблемые вещи. Это такой же ляп, как строительстао на мягком грунте многоэтажного дома без фундамента.Цитата:
Сообщение от Sexton
Я имел в виду не выделение в отдельный поток отправку и получение данных, а принцип отрисовки сцены.Цитата:
Сообщение от tugarin
Я думаю про потоки МГ все же знают, не такие уж они незнайки.
Да, создание архитектуры многопоточной программы - это искусство. :)Цитата:
Сообщение от trabla
И хорошо владеют этим искусством немногие. :)
А ошибки синхронизации потоков управления являются одними из самых трудных для отлавливания. :)
Ты ерунду пишешь. Каждый разработчик сетевого приложения ОБЯЗАН предполагать, что данные по сети могут прийти с какой угодно задержкой или не прийти вовсе. В данном случае откладывание отрисовки и ожидание прихода полного набора некоторых данных без приемлемого таймаута есть ГЛУПОСТЬ!Цитата:
Сообщение от Sexton
ИМХО, это не ЛЯП в архитектуре и не ОШИБКА синхронизации :) . Это просто расстановка приоритетов доступа к ресурсу (данные для рендера). Всё равно их надо изменять с одной стороны и использовать для отрисовки, с другой. Сие, ИМХО, данность и ничего тут не поделаешьЦитата:
Сообщение от tugarin
Не факт.Цитата:
Сообщение от tugarin
Надо идти на компромисс между правдивостью отрисовки сцены и частотой ее отрисовки.
Как этот вопрос решили разработчики мы не знаем. Мы только пытаемся понять откуда берутся фризы, а идея ожидания получения полного блока данных ее хоть как-то объясняет.
Побойся бога трабла! Нет в этом никакой данности. Одно дело, если расшифровка сетевого протокола занимает столько процессорного времени, что ФПС падает. Но когда становятся заметными глазу замирания картинки - это совершенно явная ОШИБКА.Цитата:
Сообщение от trabla
Вы немного не поняли о чём я хотел сказать :)Цитата:
Сообщение от Sexton
Не ожидание "прихода пакета", а ожидание "внесения изменений в сцену" (добавление удаление объектов, подгрузка текстур и т.д). В случае оффлайн, это можно оптимально сделать, поскольку все данные находятся (рассчитываются) на одном компутере. В случае же онлайн часть данных является непредсказуемой и не поддающейся оптимизации, поскольку невозможно предвидеть ни появления ни исчезновения объектов.
Проблема в том, что это объяснение одновременно ставит по сомнение компетентность разработчиков, а ведь мы этого всячески избегаем, не так ли? :)Цитата:
Сообщение от Sexton
А заодно эта идея низводит разработчиков до уровня недоразвитых ламеров. Так что давай отбросим её.Цитата:
Сообщение от Sexton
Ожидать опаздавший пакет, что бы верно отобразить опаздавшее событие - абсурд.
Но фризы есть. Пойти чтоли застрелиться?