-
различия online и offline
Вчера по сетке на лавке сидел у мессера на хвосте и засадил ему в бензобак процентов 80 боезапаса, так ему хоть бы хны - он дальше летит, ладно - расстрелял ему двигатель, он задымил черным, двигатель сдох и друган выпрыгнул с парашютом. Я вот чего не пойму - за пять минут до игры по сетке в простом редакторе поставил графа и разобрал его потратив максимум 10 процентов, причем из того же положения. Ну думаю мало ли чего бывает, так ребята с которыми летал тоже заметили что самолеты не взрываются, пилот не убивается, крылья не отстреливаются в целом такое ощущение что на самолеты броню одели. А до патча 1.04в все было нормально у лавки пилота убивал, у мессера бак взрывал или крылья отстреливал - или это после патча нормально стало? Насчет упреждения не уверен, опять же это не только мое мнение, но похоже то же разное по сетке и в редакторе с карьерой. Может кто выскажет свои соображения по этому поводу?
-
Re: различия online и offline
Тоже впечатление что онлайн и оффлайн разные
-
Re: различия online и offline
Дело не в том... Расчет попаданий в Ил-2 производится на сервере (в отличие, например, он Варбёрдс, где это делается на пользовательском фронт-энде). Вот и прикиньте... Пинг до сервера, допустим, 300 миллисекунд. Пока данные с компа жертвы придут на сервер, сервер это обработает, пока данные с компа атакующего придут на сервер... и т.д. То есть ты видишь сааааавсем не ту картину, что видит сервер. Вот отсюда и такие веселые непонятки... Если бы все делалось как в Варбёрдс, то ты попадал бы точно туда, куда целился (поскольку обработка производится на твоем компе, то сетевого лага нет), на сервер отправлялись бы данные о месте и характере попаданий, а он бы дальше решал что делать. А так мы стреляем почти вслепую. Куда попадешь - чистая лотерея, которая зависит от качества связи.
-
Re: различия online и offline
Вот это новости!
Выходит что в зависимости от пинга я должен менять свою поправку?
От ветра знаю, от угла знаю, от скорости знаю, но чтобы от пинга.......
-
Re: различия online и offline
хороший вопрос, вот только знать бы ответ. Пинг здесь несомненно имеет место, равно как и отличия он и оф лайна. И в степени "возникающей бронированности самолетов, и уязвимости пилота. Точки поражения самолета с одной стороны не очень меняются, но непонятна возрастающая бронированность, когда из Мк108 попадаешь в крыло, и ничего, несмотря на наличие видимого подтверждения. Но в то же время подставляя свой самолет в оф- и он лайне, если комп вас просто мгновенно иничтожит, то в он лайне можно выдерживать более чем достаточно попадания. Может оно и к лучшему. Это правда не касается крупных калибров.
-
Re: различия online и offline
Цитата:
quote:
Originally posted by Freddie:
Дело не в том... Расчет попаданий в Ил-2 производится на сервере (в отличие, например, он Варбёрдс, где это делается на пользовательском фронт-энде). Вот и прикиньте... Пинг до сервера, допустим, 300 миллисекунд. Пока данные с компа жертвы придут на сервер, сервер это обработает, пока данные с компа атакующего придут на сервер... и т.д. То есть ты видишь сааааавсем не ту картину, что видит сервер. Вот отсюда и такие веселые непонятки... Если бы все делалось как в Варбёрдс, то ты попадал бы точно туда, куда целился (поскольку обработка производится на твоем компе, то сетевого лага нет), на сервер отправлялись бы данные о месте и характере попаданий, а он бы дальше решал что делать. А так мы стреляем почти вслепую. Куда попадешь - чистая лотерея, которая зависит от качества связи.
Это неверно.
Я частенько летаю с пингом около 800 - это почти секунда. С таким пингом я бы никуда не попал. Попадания анализируются на компе стреляющего. Обычно стреляешь, видишь что попал, но проходит заметный отрезок времени, прежде чем самолет противника начинает разваливаться. И обратная ситуация - когда по тебе стреляют - ты видишь, что противник мажет, трассы идут вдалеке от твоего самолета, а вдруг бац - и крыло отвалилось.
-
Re: различия online и offline
Виноват ИМЕННО пинг! Попробуйте для "смеху" уклоняться от противника "плоским скольжением". Если с ботами этот номер проходит на "ура" (с 70 метров мажут), то в он-лайне от этого меня бы-ыстро отучили...
-
Re: различия online и offline
Пинг виноват ?
Ню ню, это означает что после патча серваки стали тормозить и у всех коннект поплохел, и пинги выросли не по детски-вот поэтому никто ПК сделать и не может ? Так что ли ? :)
-
Re: различия online и offline
Цитата:
quote:
Originally posted by Freddie:
Дело не в том... Расчет попаданий в Ил-2 производится на сервере (в отличие, например, он Варбёрдс, где это делается на пользовательском фронт-энде). Вот и прикиньте... Пинг до сервера, допустим, 300 миллисекунд. Пока данные с компа жертвы придут на сервер, сервер это обработает, пока данные с компа атакующего придут на сервер... и т.д. То есть ты видишь сааааавсем не ту картину, что видит сервер. Вот отсюда и такие веселые непонятки... Если бы все делалось как в Варбёрдс, то ты попадал бы точно туда, куда целился (поскольку обработка производится на твоем компе, то сетевого лага нет), на сервер отправлялись бы данные о месте и характере попаданий, а он бы дальше решал что делать. А так мы стреляем почти вслепую. Куда попадешь - чистая лотерея, которая зависит от качества связи.
Маленькое уточнение - летали по небольшой lan и все было как обычно, сервер и все настройки, за исключением нового патча 1.04в. До него и крылья отрывались и бензобак взрывался да и чаще всего я пилота убивал который в лавке противника сидел. А сейчас весь самолет в решето и летает себе, как будто в него не из 20мм пкшек палили, а из ПМ
-
Re: различия online и offline
В онлайне сейчас сделать PK невозможно , специально пробовали на разных самолётах , один из нас шёл со скольжением - подставлял борт , а другой только из пулемётов стрелял метров с 20-30 по борту примерно с угла 3/4 , самолёт в лохмоты а пилот жив-здоров , проверяли неоднократно . Это очень сильно печалит так-как летая на Миг-3уд раньше проще всего было сбить именно сделав PK , а сейчас нас обломали .
-
Re: различия online и offline
Цитата:
quote:
Originally posted by Pavel Shirshov:
Вот это новости!
Выходит что в зависимости от пинга я должен менять свою поправку?
От ветра знаю, от угла знаю, от скорости знаю, но чтобы от пинга.......
Ну так конечно! Разумеется нужно делать поправку на пинг!
А как вы хотели - в онлайне никто не имеет 100% актуальной информации о положении самолета вашего оппонента кроме него самого. Другое дело что это не обычный шутер и самолет не может резко изменить направление своего движения как например игрок в Counter-Strike. Поэтому ваша задача как атакующего сделать поправку еще и на пинг. Другими словами нужно всегда помнить что то что вы видите перед глазами - это картинка из прошлого.
-
Re: различия online и offline
Цитата:
quote:
Originally posted by Freddie:
Дело не в том... Расчет попаданий в Ил-2 производится на сервере (в отличие, например, он Варбёрдс, где это делается на пользовательском фронт-энде). Вот и прикиньте... Пинг до сервера, допустим, 300 миллисекунд. Пока данные с компа жертвы придут на сервер, сервер это обработает, пока данные с компа атакующего придут на сервер... и т.д. То есть ты видишь сааааавсем не ту картину, что видит сервер. Вот отсюда и такие веселые непонятки... Если бы все делалось как в Варбёрдс, то ты попадал бы точно туда, куда целился (поскольку обработка производится на твоем компе, то сетевого лага нет), на сервер отправлялись бы данные о месте и характере попаданий, а он бы дальше решал что делать. А так мы стреляем почти вслепую. Куда попадешь - чистая лотерея, которая зависит от качества связи.
Не вводите человека в заблуждение - "поскольку обработка производится на твоем компе, то сетевого лага нет". Это ошибочное суждение. Лаг в этом случае тоже есть и он даже больше чем в случае когда рассчитывает сервер. Сервер как находящийся посередине между вами и вашим противником обладает более актуальной информацией.
А если вся обработка ведется на стороне клиента, то атакуемый может изменить свое положение и выйти из под обстрела за доли секунды (например, на встречных курсах), но все равно будет сбит с точки зрения вашей стороны. Получается коллизия...
Так что лучше, когда такие вещи рассчитывает сервер, поскольку в этом случае игроки (в случае если их пинг одинаков) будут примерно в равном положении).
-
Re: различия online и offline
хорошее выражение "поправка на пинг" (упреждение при стрельбе с учетом пинга). В нашей локалке, где мы тренируемся наш пинг составляет до 10мс. И практически никаких отличий в стрельбе, то же что и с компом. А вот в инете абсолютно неясная ситуёвина, можно в норме летать и стрелять, когда все имеют пинг от 200 до 350, но вот стоит появиться одному, после которого появляются надписи о мошенничестве, так начинаются чудеса. Может здесь истина:confused:?
-
Re: различия online и offline
Цитата:
quote:
Originally posted by dets:
Не вводите человека в заблуждение - "поскольку обработка производится на твоем компе, то сетевого лага нет". Это ошибочное суждение. Лаг в этом случае тоже есть и он даже больше чем в случае когда рассчитывает сервер. Сервер как находящийся посередине между вами и вашим противником обладает более актуальной информацией.
А если вся обработка ведется на стороне клиента, то атакуемый может изменить свое положение и выйти из под обстрела за доли секунды (например, на встречных курсах), но все равно будет сбит с точки зрения вашей стороны. Получается коллизия...
Так что лучше, когда такие вещи рассчитывает сервер, поскольку в этом случае игроки (в случае если их пинг одинаков) будут примерно в равном положении).
Полный бред
Можно узнать, ты сетевой программист или кто?
Что позволяет тебе делать столь глубокомысленные высказывания?
-
Re: различия online и offline
Не вижу бреда, тем более полного.
Многое, конечно, зависит от реализации и описан лишь один из вариантов.
-
Re: различия online и offline
Этот вариант реализации не подходит для "Ил-2".
Эффективная дистанция стрельбы - менее двухсот метров. Снаряд эту дистанцию преодолеет за 0.25-0.3 секунды. Ты можешь представить, что инфа о каждом выпущенном снаряде отправляется на сервер с пингом ~800, и клиент ждет, пока сервер раздуплит, есть попадание или нет?
-
Re: различия online и offline
Легко. Клиент наплодил в своем виртуальном небе кучку снарядов. Разумеется, обсчитал их полет, но не коллизии. Когда пришло время слать очередной пакет, сложил их туда и послал серверу, который уже имеет координаты врага. Сервер принял пакет, рассчитал коллизии и разослал обоим участникам как их результат, так и "правильные" координаты.
Таким образом, оба клиента (если сервер сообщает коллизию) может через 1.6 секунды (в худшем случае) нарисовать взрыв. Прикол в том, что как коллизия так и эффект будут просчитаны одновременно для обоих игроков. Если уж очень хочется сразу видеть попадания, то клиент и сам может просчитать коллизию и нарисовать взрыв, но пусть никто не удивляется, если сервер этот взрыв не подтвердит, и самолет останется целым.
-
Re: различия online и offline
Цитата:
quote:
Originally posted by deCore:
Легко. Клиент наплодил в своем виртуальном небе кучку снарядов. Разумеется, обсчитал их полет, но не коллизии.
Эт че, координаты каждого снаряда? А скорость надо передавать? Если скорость не передавать, то передавать координаты надо мгновенно. Если передавать, то зачем снаряды? Ты в онлайн играешь? Сколько ты снарядов выпускаешь и сколько реально попадают? Насколько "дешевле" в смысле трафика передавать только данные о попадании! А насколько проще в смысле вычислительных мощностей - ведь вычисления распределяются между клиентом и сервером. Если ты программист, то мне жаль твоих клиентов.
Цитата:
quote:
Originally posted by deCore:
Когда пришло время слать очередной пакет, сложил их туда и послал серверу, который уже имеет координаты врага.
:)
А клиент не имеет координаты врага? А с кем воюем собственно?
Цитата:
quote:
Originally posted by deCore:
Сервер принял пакет, рассчитал коллизии и разослал обоим участникам как их результат, так и "правильные" координаты.
Правильные координаты? Для какого отрезка времени?
Цитата:
quote:
Originally posted by deCore:
Таким образом, оба клиента (если сервер сообщает коллизию) может через 1.6 секунды (в худшем случае) нарисовать взрыв.
Так оно и есть в "Ил-2" - клиент высылает данные о попадании в бензобак, к примеру, данные попадают на сервер, тот решает, что жертва взорвалась, и рассылает всем это событие.
Цитата:
quote:
Originally posted by deCore:
Прикол в том, что как коллизия так и эффект будут просчитаны одновременно для обоих игроков.
Это почему одновременно? Не вкурил... Эт че, детская логика, что если сервер посередине, то и события он увидит одновременно с двух сторон? А если коннект разный? Ты об этом подумал?
Цитата:
quote:
Originally posted by deCore:
Если уж очень хочется сразу видеть попадания, то клиент и сам может просчитать коллизию и нарисовать взрыв, но пусть никто не удивляется, если сервер этот взрыв не подтвердит, и самолет останется целым.
Гы. Такого в "Ил-2" я еще не видел
Смотри выше. Сервер действительно рассылает всем событие о взрыве. Ты видишь только попадание, и только после того, как событие рассылается всем, в т.ч. и тебе, отрывается крыло или взрывается че-то и т.д. Ты в онлайне хоть раз был?
ЗЫ Это не ты рассуждал, что расчет графики клиент и сервер делят?
-
Re: различия online и offline
Цитата:
quote:
Originally posted by Ed:
Цитата:
quote:
Originally posted by Zerg:
Но все выдается с такой уверенностью и неприятием чужого мнения. :) "...полный бред..." :)
Если человек сказал бред, то почему бы не назвать это бредом? Форум - публичное место, и если ты в вопросе ничего не рубишь, то зачем писать? Был топик, где обсуждали, что в онлайне графика не тормозит, потому что сервер часть графики считает. Я - программиcт, и сталкивался с такими заморочками, rgreat и Marder собаку съели на он-лайновых симах... Дело они говорят.
Плохо, что Африку забанили, он бы в популярных выражениях объяснил, где и что должно считаться :)
Знаешь какая разница между "полный бред" и "извини, но ты не прав"? Желание задеть. Коль ты в данной области крут - молодец,но и не забывай - есть много областей в которых ты (да и я тоже) не совсем компетентен, но наверняка пытался высказывался :) "...Форум - публичное место..." Дык почему тогда не назвать оппонента просто козлом? Или ламером? Если так, то хорошо, что Африку забанили ИМХО. Граница "публичности" - понятие растяжимое...
З.Ы. Никого не хотел обидеть, ессно :)
-
Re: различия online и offline
Цитата:
quote:
Originally posted by Ed:
Насколько "дешевле" в смысле трафика передавать только данные о попадании! А насколько проще в смысле вычислительных мощностей - ведь вычисления распределяются между клиентом и сервером.
А теперь представь ситуацию - у тебя пинг 800, у того кого ты держишь в прицеле - 150. Ты начинаешь стрелять, но об этом еще никто не знает, поскольку информация от тебя доходит медленно из-за пинга. Одновременно с началом твоей стрельбы тот кого ты атакуешь начинает уклоняться.
Ты говоришь попадание считает клиент. Хорошо!
С точки зрения твоего компа ты попал.
С точки зрения компа атакуемого он ушел из под обстрела и тем не менее получил снаряд!
И что после этого получается?
Получается чем больше у тебя пинг - тем тебе легче!!
Да здравствует большой пинг!!
Я сделаю себе пинг 15 секунд, зайду сзади к противнику (он об этом узнает через 15 секунд, поэтому летит прямо, а может он и маневрирует, но его маневры до меня дойдут через 15 секунд, поэтому все равно с моей точки зрения он никуда не поворачивает), сбиваю его спокойно (со своей точки зрения) - и ВСЕ! Мне все равно как он там маневрировал, что он там делал, и пусть у него хоть 10 мсек пинг - я его сбил!!
P.S. Я не знаю как на самом деле это сделано в ИЛ-2.
Возможно в разных ситуациях все это происходит по разному. Я просто привел пример который показывает что считать попадания только на стороне клиента - неправильно!
Да - клиент может посчитать попадание на своей стороне, нарисовать облачко и т.д., но отрывать крыло например - НЕ МОЖЕТ, пока не получит подтверждение о том, что снаряд действительно попал в цель.
[ 03-06-2002, 09:41: Сообщение отредактировано: dets ]
-
Re: различия online и offline
Все не так просто :)
При пинге в 15 сек, ты не сможешь прицелиться во врага. Принципиально.
Реально же тому у кого большой пинг тяжело попасть во врага и соответствеено по нему самому также тяжело попасть.
Расчет на сервере позволяет приемлемо стрелять при пинге до ~200мс. Расчет на клиенте - до ~1500мс.
Плюс как лучше?:
1) Когда ты ухитрился всадить снаряды в в репу пилота цель и получил попадания
или
2) Когда ты ухитрился всадить снаряды в репу пилота и их не засчитали изза того что враг на сервере уже не там?
Или наоборот полил пустое пространство и враг взорвался ? :)
Только не говорите мне о системе обсчета в 3д шктерах, когда выстрела не происходит пока сервер не подтвердил получение пакета :)
При задержке в полсекунды самолет пролетает сотни метров а не полметра-метр как "человек с ружжом" в шутерах :)
Стабильный пинг при котором "реально" летать благодаря технологии принятой специализированых онлайн в симах - до 1000-1500 мс. а не до 300-400мс как шутерах.
Поток данных тоже на порядок меньше.
Оцените: В том же ВБ для полетов около 100 человек одновременно достаточно модема в 9600-14400.
Даже в таком классно вылизаном сетевом протоколе как в Кваке, для игры в надо минимум 28800.
А если 32 человека? соединения на 56к хватит?
Если же пинг постоянно прыгает от 50 до 1000 мс то летать гораздо сложней, хотя средний пинг и меньше.
Почему? Тонкости интерполяции положения самолета в пространстве по координатам,векторам и ускорениям его движения.
Более детально обьяснять лень :)
[ 03-06-2002, 10:40: Сообщение отредактировано: rgreat ]
-
Re: различия online и offline
Херня какая-то...
Я летаю с пингом от 780 до 1000 :)
Сбиваю нормально летающих с различными пингами - от 0 до такого же как и у меня, никаких проблем.
Меня так же сбивают без проблем. Пинги, упреждения, обсчеты на клиенте или сервере, поправки на пинг и прочая дребедень тут ни при чем, тренироваться в стрельбе надо и все тут :)
С уважением, =FPS=Ivan
ЗЫ Я поначалу тоже искал всякие причины своей косости :) :) :)
-
Re: различия online и offline
Цитата:
quote:
Originally posted by rgreat:
Все не так просто :)
При пинге в 15 сек, ты не сможешь прицелиться во врага. Принципиально.
Реально же тому у кого большой пинг тяжело попасть во врага и соответствеено по нему самому также тяжело попасть.
Почему? Тонкости интерполяции положения самолета в пространстве по координатам,векторам и ускорениям его движения.
Почему это я не смогу прицелится во врага если у меня пинг 15 секунд?
Очень даже могу. Ты замечал когда нибудь что происходит с самолетом врага когда возникает сильный лаг (или вообще отбой по связи)? Он продолжает лететь так, как он летел перед тем как связь с ним прервалась. Вот и вся интерполяция.
Я это часто наблюдаю тоже (у меня из хабаровска пинг редко ниже 600 :) ) . Я лечу за противником, долблю его, а он летит прямо, а потом внезапно начинает перемещаться боком (против всех законов физики) куда-нибудь вправо.
Что было? Да просто он давно свернул вправо, а у меня летел прямо. А потом связь пришла в норму, пришли актуальные данные о его текущем положении и моей стороне пришлось его вот так в нужное место "поместить".
Но пока был лаг, с моей точки зрения он летел - ПРЯМО!
Так вот я заметил, что пока он летел прямо из-за лага, сколько я бы в него ни стрелял и не попадал - он не упадет ни за что... Что согласуется с теорией обсчета на стороне сервера.
Нет, я не говорю что считает только сервер.
Но он подтверждает (или не подтверждает) информацию о моих попаданиях (или соответственно, непопаданиях). До этого подтверждения моя сторона не имеет права сказать что я его сбил.
Этим кстати объясняется задержка, которая всегда возникает перед тем как у противника отвалится крыло например - это мы ждем подтверждения от сервера.
То есть - я думаю так:
1) отправляется на сервер любая информация о состоянии полета, выпуске снаряда и т.д;
2) параллельно с этим клиент сам рассчитывает параметры полета снаряда, рисует трассер, если снаряд попадает во врага, то рисует облако взрыва. То есть рассчитывает сам ВСЕ, кроме критических результатов попадания - враг взорван, отвалилось крыло и т.д.
3) если результат попадания - критический, то клиент ждет подтверждения от сервера, и только после этого рисует реальный результат.
-
Re: различия online и offline
Очень даже могу. Ты замечал когда нибудь что происходит с самолетом врага когда возникает сильный лаг (или вообще отбой по связи)? Он продолжает лететь так, как он летел перед тем как связь с ним прервалась. Вот и вся интерполяция. Я это часто наблюдаю тоже (у меня из хабаровска пинг редко ниже 600 )
Не путай лаг и пинг, при великом пинге без лагов - все нормально, а лагает некоторых и с копеечным пингом. Лаг был, есть и будет, никуда от него пока не денешься, с улыбкой провожаем улетающий в космос самолет противника и быстро соображаем, где он сейчас окажется, потом заново начимаем его убивать :)
С уважением, =FPS=Ivan
-
Re: различия online и offline
Пинг 15000 это дикий ЛАГ :) = Улет за горизонт :)
тяжело целиться в цель летящую на расстоянии пары тройки километров со сверхвзуковой скоростью :)
[ 03-06-2002, 10:27: Сообщение отредактировано: rgreat ]
-
Re: различия online и offline
Вообще при разработке таких вещей приходится чем-то жертвовать - или чтобы цель корректно видела, когда в нее стреляют, или атакующий. Одновременно они это видить неспособны - ведь сигналы распространяются с конечной скоростью.
-
Re: различия online и offline
Люди не путайте безобидный лаг (если он конечно не 2 секунды :) и потерю связи...приводящую к варпам в гиперспейс :)
Кстати о лаге в 15 секунд...заманчиво конечно...но я думаю с таким пингом с сервака кикнут или просто туда не пустят...а во вторых можно просто игнорировать пакеты попаданий или возвращать их владельцу, шоб неповадно было из варпа по людям стрелять.
А расчет надо делать на клиенте !!! :)
-
Re: различия online и offline
Меня пугает всеобщая осведомленность по части обсчета координат, снарядов и прочая. ВЫ ДЕЙСТВИТЕЛЬНО ЗНАЕТЕ или только строите предположения? Если второе - тады об чем флейм? :)
-
Re: различия online и offline
Цитата:
quote:
Originally posted by Zerg:
Меня пугает всеобщая осведомленность по части обсчета координат, снарядов и прочая. ВЫ ДЕЙСТВИТЕЛЬНО ЗНАЕТЕ или только строите предположения? Если второе - тады об чем флейм? :)
У нас не флейм, а спор. :)
И разумеется точно никто не знает, можно только предполагать. А иначе чего бы было спорить - просто знали бы и все! :)
-
Re: различия online и offline
Но все выдается с такой уверенностью и неприятием чужого мнения. :) "...полный бред..." :)
-
Re: различия online и offline
Цитата:
quote:
Originally posted by dets:
И разумеется точно никто не знает, можно только предполагать. А иначе чего бы было спорить - просто знали бы и все! :)
а тогда бы спорили как нужно было сделать. было б с кем, а о чем спорить это без проблем.
-
Re: различия online и offline
Цитата:
quote:
Originally posted by Zerg:
Но все выдается с такой уверенностью и неприятием чужого мнения. :) "...полный бред..." :)
Если человек сказал бред, то почему бы не назвать это бредом? Форум - публичное место, и если ты в вопросе ничего не рубишь, то зачем писать? Был топик, где обсуждали, что в онлайне графика не тормозит, потому что сервер часть графики считает. Я - программиcт, и сталкивался с такими заморочками, rgreat и Marder собаку съели на он-лайновых симах... Дело они говорят.
Плохо, что Африку забанили, он бы в популярных выражениях объяснил, где и что должно считаться :)
-
Re: различия online и offline
Цитата:
quote:
Originally posted by Zerg:
Но все выдается с такой уверенностью и неприятием чужого мнения. :) "...полный бред..." :)
Ну мне например как программисту просто интересно как это сделано на самом деле. Поэтому я внимательно читал что написано в посте и предлагал свои идеи.
А насчет уверенности - разумеется я не знаю как это сделано в Ил-2, поскольку я не разработчик, поэтому и пишу "я думаю" и "мне кажется".
-
Re: различия online и offline
А вы пробовали летать с пингов в 3000? Сбивать конечно проще, успеваешь всадить хорошую очередь в врага до того как он начнет маневрить. Но с другой стороны, ты будешь только видеть заходящего тебе в хвост врага, хотя на самом деле ты уже обречен.
Попробуй с пингом в 3 сек пойти с кем-то в лобовую, будешь приятно удивлен результатом. После расхождения при попытке развернутся будет либо пилот убит либо самолет поломан.
-
Re: различия online и offline
Цитата:
quote:
Originally posted by Zerg:
Знаешь какая разница между "полный бред" и "извини, но ты не прав"? Желание задеть. Коль ты в данной области крут - молодец,но и не забывай - есть много областей в которых ты (да и я тоже) не совсем компетентен, но наверняка пытался высказывался :) "...Форум - публичное место..." Дык почему тогда не назвать оппонента просто козлом? Или ламером? Если так, то хорошо, что Африку забанили ИМХО. Граница "публичности" - понятие растяжимое...
З.Ы. Никого не хотел обидеть, ессно :)
В чем-то ты и прав, но сейчас народ на форуме все больше говорит, а не слушает. Зачем пустозвонство разводить, если ты не спец в этом деле?
Насчет Африки - как раз в этом топике очень интересно было бы послушать - его квалификация в этом деле лучше, чем у всех здесь высказавшихся. Ну что ж, если тебе больше по душе ламерское пустозвонство...
-
Re: различия online и offline
Цитата:
quote:
Originally posted by Ed:
Цитата:
quote:
Originally posted by Zerg:
Но все выдается с такой уверенностью и неприятием чужого мнения. :) "...полный бред..." :)
Если человек сказал бред, то почему бы не назвать это бредом?
А где,был бред ты так и не указал.
Эт че, координаты каждого снаряда? А скорость надо передавать?
Не цепляйся к мелочам. Если я про это (как и про интерполяцию /экстраполяцию и кучу других деталей) не написал, это не значит что я не подумал об этом. Просто, я рассчитывал, что у собеседника хватит мозгов самому расставить недостающие детали. И что я взял пинги условно равными- из той же серии. Не стоит считать других идиотами. Чем больше деталей я бы описал о протоколе о котором я не имею ни малейшего представления- тем меньше в этом было бы смысла.
По-этому оперирую как можно более общими понятиями, дабы не вводить никого в заблуждение.
Вообще при разработке таких вещей приходится чем-то жертвовать - или чтобы цель корректно видела, когда в нее стреляют, или атакующий. Одновременно они это видить неспособны - ведь сигналы распространяются с конечной скоростью.
Так вот. dets (точку зрения которого я пытался прояснить) говорил о третьем варианте- когда НИКТО не видит, кто куда и откуда на самом деле стреляет. И это получается более "справедливо".
А насколько проще в смысле вычислительных мощностей - ведь вычисления распределяются между клиентом и сервером. Если ты программист, то мне жаль твоих клиентов.
Во- первых, спасибо за наезд. Настолько же безосновательный, как и на dets. Меня (и Zergа тоже) еще твое умозаключение относительно dets'а несколько удивило. Ты думаешь, один здесь программист, а все остальные- недоумки? (остальным- просьба не воспринимать это как мнение, близкое к моему)
В смысле вычислительных мощностей проще было бы при первом выстреле рассылать всем сообщения, что все убиты. А как трафик экономится!
А ты подумал о том, что жертве нужно не только сообщить о том, что она убита, а еще и трассеры нарисовать, а если их нет- то звук просвистеть?
Нет, я бы до разжевывания такой ерунды не опустился, но раз уж не понимают, то приходится.
А клиент не имеет координаты врага? А с кем воюем собственно?
quote:Originally posted by deCore:
Сервер принял пакет, рассчитал коллизии и разослал обоим участникам как их результат, так и "правильные" координаты.
Правильные координаты? Для какого отрезка времени?
Я что-то не понимаю, ЭТО нужно тоже пояснять?
Это почему одновременно? Не вкурил... Эт че, детская логика, что если сервер посередине, то и события он увидит одновременно с двух сторон? А если коннект разный? Ты об этом подумал?
Вот я-то, как раз, подумал не только об этом. Ну ладно. Сервер ничего не "увидит". Он объявит это одновременно, исходя из своих собственных данных (процесс их получения опускаю, он может быть сколь угодно сложным, но он присутствует- специально для Ed).
Конечно, данные, полученные клиентами будут уже не актуальны. Я опять не касаюсь того момента, что в протокол могут быть включены некие способы предсказывания актуальных координат и полностью опускаю вопросы синхронизации. Опять удивлен, что мне приходится это делать, но тем не менее, скажу, что под координатами я подразумеваю нечто большее, чем "x, y", и даже большее, чем "x, y, z".
[b]Так оно и есть в "Ил-2" - клиент высылает данные о попадании в бензобак, к примеру, данные попадают на сервер, тот решает, что жертва взорвалась, и рассылает всем это событие.[b]
Очень хорошо. Я не утверждал, что ил2 работает по моей схеме. И даже не говорил, что он должен так работать. Даже не говорил что так будет правильно. Я просто сказал, что данная схема не только имеет право на жизнь, но и имеет преимущества по сравнению со схемой, когда попадания обсчитываются на клиенте стрелка.
Сервер действительно рассылает всем событие о взрыве.
А теперь вопрос- на кой хрен серверу посылать клиенту стрелка сообщение о взрыве, когда клиент сам может не только рассчитать коллизию, но и дамадж, и послать серверу (для последующей пересылки остальным) именно эту информацию. Кто там говорил о распределении вычислений?
(Кстати, сам я на этот вопрос ответить могу)
Ты в онлайне хоть раз был?
Нет. Я что-то написал про Ил2?
Это не ты рассуждал, что расчет графики клиент и сервер делят?
Нет. И честно, говоря твои наезды меня несколько достали. Большая просьба указать конкретно на то, что именно в моих словах заставляет подозревать во мне идиота. Тебе Zerg недоходчиво намекнул о твоем поведении? Перечитай, пожалуйста, мои сообщения (их всего два).
-
Re: различия online и offline
Ну блин, достали. Не хочу спорить. Как об стенку.
Я не говорил, что ты идиот. Найди такое в моем посте. Я допускаю, что ты в жизни очень приятный и умный человек, но врядли ты обладаешь достаточной квалификацией, чтобы рассуждать о сетевом алгоритме "Ил-2". Ты даже в он-лайне не бывал. Но ты споришь. Я ничего не знаю о сетевых алгоритмах шутеров, я об этом и не рассуждаю.
Насчет снарядов - есть очень простое решение - передавать не координаты снарядов, а нажатие кнопки игроком. И вместо посылки сотен снарядов с координатами посылается флаг "кнопка 1 нажата". Или "кнопка 1 отпущена". Все. Какой алгоритм лучше?
Насчет dets'а я ни слова не говорил.
Дальнейшее продолжение спора я считаю бесполезным. Я бы с удовольствием поспорил с тем же Африкой, чтобы он убедил меня в преимуществе того или другого алгоритма. Но не с людьми, которые говорят о третьем варианте, в котором "НИКТО не видит, кто куда и откуда на самом деле стреляет. И это получается более "справедливо"."
-
Re: различия online и offline
Цитата:
quote:
Originally posted by Ed:
Насчет снарядов - есть очень простое решение - передавать не координаты снарядов, а нажатие кнопки игроком. И вместо посылки сотен снарядов с координатами посылается флаг "кнопка 1 нажата". Или "кнопка 1 отпущена". Все.
Хех. А кто на предыдущей странице постил такое:
Цитата:
quote:
Я частенько летаю с пингом около 800 - это почти секунда. С таким пингом я бы никуда не попал. Попадания анализируются на компе стреляющего.
Ы?
Т.е. анализ попаданий - это посылка флажка нажатия кнопки? :) И кто-то что-то говорил про бред? :)
-
Re: различия online и offline
Ты сам, блин, достал.
Это- именно тебе как об стенку! Или ты не читаешь чужие посты вообще? Если да- говори по делу. Или не говори вообще.
Я еще не сталкивался на форуме с тем, чтобы кто-нибудь об*срал чье-то мнение ("полная *йня, ты вааще кто такой??!"), вполне сдраво выглядещее, не удосужевшись привести аргумент. Как только я указал на это, некто заявл, что я г*но а не программист, перейдя таким образом на личности.
Пусть фразы звучали и не так в точности, или даже совсем не так :) , но поверь мне на слово, выглядят они именно так, и не только для меня, ибо, ИМХО, форма- вторична (во всем кроме искусства).
Таким образом, пока не прозвучат аргументы, по которым мои профессиональные навыки ставятся под сомнение (с чем я, ксати, совершенно не согласен, и до этого момента никто на них не жаловался), твои высказывания будут восприняты исключительно как личное оскорбление. Если же такие аргументы прозвучат, и окажутся убедительными, а не личной интерпретацией собственных бессознательных реакций, то я не буду иметь никаких претензий и извенюсь перед всеми за то, что заставил читать свою ерунду.
[ 03-06-2002, 16:44: Сообщение отредактировано: deCore ]
-
Re: различия online и offline
Цитата:
quote:
Originally posted by Arankhalla:
Т.е. анализ попаданий - это посылка флажка нажатия кнопки? :) И кто-то что-то говорил про бред? :)
Блин, устал уже. Если не понял сути, то так и скажи, что не понял, а не говори о бреде.
Если попадания анализируются на компе стреляющего, то снаряды никуда посылать не надо! Посылается флаг, что стреляет пушка, на компах других игроков это не более чем фейерверк, ведь надо же как-то показать, что противники стреляют, трассы, звуки. А попадания просчитываются на компе стреляющего и потом отсылаются серверу. А зачем на серваке это все дело синхронизировать? Да потому что летит один самолет, а после повреждения их может быть несколько, тьфу, обломки всякие полетят, а с этими обломками кто-то может столкнуться и т.п.
Еще есть вопросы?
-
Re: различия online и offline
ТИХА! :)
Я скажу. Мы все молодцы. Каждый - профессионал на своем месте. Дык и будем на этом самом месте и сидеть. В предмете спора из высказавшихся не парит никто (судя по флейму) :) .
Ed, все пучком, не разошлись в лобовой, с кем не бывало :) Почитайте вон лучше про дятлов :)
З.Ы."Зачем ругаться - у нас есть пушки" :)
-
Re: различия online и offline
deCore
Если есть желание - распиши свой алгоритм от и до - где что считается, что передается, что не передается, а потом я распишу свой и сравним, что лучше и для чего. А то за эмоциями я в твоем посте рациональных зерен выловить не могу.
-
Re: различия online и offline
Ed
Именно такой вопрос я и предвидел :) . Ладно, вариант с обработкой на сервере я опишу (правда уже не знаю в какой подробности) дабы ты имел основания как-то оценить мои профессиональные навыки. Но твое умозаключение было получено без этой информации, по-этому я и попросил описать КАК ты пришел к таким выводам. Хотя сам факт запроса дополнительной информации уже говорит о том, что они были сделаны безосновательно, не правда ли? :)
-
Re: различия online и offline
deCore
Давай посчитаем.
Возьмем крайний случай - ШКАС. Ты предлагаешь передавать координаты каждого снаряда на сервер
Клиент наплодил в своем виртуальном небе кучку снарядов. Разумеется, обсчитал их полет, но не коллизии. Когда пришло время слать очередной пакет, сложил их туда и послал серверу, который уже имеет координаты врага.
Мне немножко непонятно, что ты имел в виду под словом "обсчитал". Просто координаты? Или со скоростью? Лана, будем считать, что посылает начальные координаты и направление - вектор полета снаряда, будем считать что скорость сервер знает из типа снаряда. Примем, что в "Ил-2" точность координат - 2 знака после запятой - это видно в файле миссий. Т.е. это соответствует типу Long - 4 байта для описания одной координаты. Итого вектор для каждого снаряда будет иметь 6 координат по 4 байта - итого 24байта один снаряд. Таких снарядов один ШКАС выпускает 1600 в секунду. Итого только для одного ШКАСа надо иметь пропускную способность 38400байт/с (кошмар интернетчика). На одном сервере может играть 32 игрока. На какой линии должен стоять сервер?
Дальше продолжать? Если я че-то не так понял, поправь меня.
-
Re: различия online и offline
Честно говоря, я предполагал слать очередь снарядов в 10, по-этому не считал принципиальным как именно они будут уложены в пакет. Да и со скорострельностью ты что-то напутал, ИМХО.
В данном же случае я имел в виду сообщение вида "с момента времени t1 до момента времени t2 было выпущено n снарядов". Слать координаты каждого я не предлагал (хотя, признаюсь, мог бы предложить, ибо принципиальным этот вопрос не считал, да и о ТАКОЙ скорострельности не подумал; по моим прикидкам- 512 байтного пакета хватило бы на все 500мс). Это не я говорил о распределенных вычислениях. Я, как раз, говорил об их дублировании.
ЗЫ: Написал только что драфт. Я всегда ОЧЕНЬ медленно пишу дизайн и доки. Посмотрел- куча очевидной дряни. Слать?
-
Re: различия online и offline
Да я в принципе понял, что ты имел в виду.
Со скорострельностью я не напутал, да и неважно это, главное - порядок цифр.
Конечно, можно оптимизировать этот пакет раз эдак в 100, но такое сжатие получится только с потерей части данных, т.е. мы вернулись к тому, с чего начали - точных координат каждого снаряда на сервере не будет, серверу придется включать какие-то случайные данные чтобы восстановить полный пакет и просчитать попадания. Овчинка не стоит выделки.
Для компенсации пинга, чтобы жертва более корректно видела стрелка у себя на хвосте, можно использовать экстраполяцию, но это тоже палка о двух концах. В случае энергичного маневрирования самолет противника будет экстраполироваться неправильно, он на компах соперников будет перемещаться хаотичными рывками, так что попасть в него будет очень проблематично.
-
Re: различия online и offline
1. Случайних данных не потребуется. Скорострельность и координаты пушек известны. ramdom seed тоже синхронизован. Так что, зная момент начала и окончания стрельбы можно однознчно восстановить очередь. Все-таки я зашлю этот драфт.
2. А без рывков сделать и не получится. Если, конечно клиент не будет ждать от сервера подтверждения, что его руль направления, таки, повернулся.
Собственно, драфт.
1. Все объекты, все расчеты дублируются на сервере (С) и всех клиентах (К).
Траффик- важнее.
2. На С (и на К) подаются все события (поворот элеронов, стрельба) в виде:
{событие, время события}. События объединяются в пакеты, так чтобы событие
1, наступившее в момент Т1 пришло раньше события 2, наступившего в момент Т2 тогда и только тогда, когда Т1 меньше (предшествует) Т2. Предполагаем, что способ формирования пакетов событий- оптимальный (максимум информации/минимальный
размер).
3. Некоторые события инициируются (генерииуются) на сервере, некоторые-
на клиенте, в зависимости от области ответственности. Клиент генерирует
события касающиеся поведения собственного крафта и отданных под его
ответственность ИИ объектов (для прикола, каждому клиенту можно дать "под
опеку" несколько зениток, чтобы разгрузить сервер).
4. Область ответственности С- это ИИ обьекты и критические события (появление/
удаление объектов и коллизии). А такжа рассылка полученных от К событий
другим К.
5. Как только К или С получает событие (или сам генерирует его), он
производит соответствующие модификации в своем пространстве.
6. Т.к. события приходят с запозданием, К и С приходится делать грубые правки
в своем пространстве объектов (например, когда К узнает, что такой-то крафт
выравнял элероны Хмс назад, и перестал делать бочку он перерассчитывает
положение этого крафта и крафт рывоком прыгает в это положение). Но, т.к.
пилот имеет право менять только вторую производную, то очень уж резких
рывков не должно быть. Для сглаживания этих скачков К может применять
интерполяцию или даже экстраполяцию с учетом пинга, но можно позволять
клиенту выбирать самому: хочет ли он видеть рывки или предпочитает видеть
почти всегда недостоверную информацию :) .
7. Тот факт, что К1 прекратил огонь, К2 узнает тоже с запазданием в Хмс. Он
может убрать лишние снаряды, которые успел наплодить за эти Хмс, а может и
не убирать, чтобы они не исчезали "неожиданно". Ничего страшного, кроме
лишних нервов у жертвы (К2) это не вызовет, т.к. повреждения все равно
будут рассчитаны согласно только подтверженным сервером попаданиям.
8. Все коллизии рассчитываются сервером с запаздыванием, по времени последнего
пакета от участников. Например:
Сервер обработал все события вплоть до момента Т0.
В момент времени Т(на С) (Т больше Т0) К1(стрелок) сообщает, что в момент времени
Т1 (Т больше Т1 больше Т0) он прекратил стрельбу. Таким образом, С вычислит, сколько
снарядов (какой именно и когда) было выпущено крафтом К1 в промежутке
(Т0;Т1), как и положение крафта К1 на интервале (Т0;Т1).
К2 (жертва) в момент Т2 (Т2 больше Т1 больше Т0) присылает на сервер некое событие (хоть
idle - пустое). Следовательно, С знает (может рассчитать) достоверно
положение крафта К2 в любой момент времени на интервале (Т0;Т2).
Теперь С может просчитать коллизии для крафта К2 произошедшие в промежутке
(Т0;Т1), как и для крафта К1, произошедшие в том же промежутке.
Если других крафтов нет, то теперь просчитаны все события вплоть до Т1.
Для полученных коллизий, С рассчитывает дэмэдж и рассылает события всем К.
9. Т.к. клиенты могут рассчитать коллизии самостоятельно, то они могут и сами
нарисовать взрыв, который будет не более чем субъективной индикацией
попадания.
-
Re: различия online и offline
для прикола, каждому клиенту можно дать "под
опеку" несколько зениток, чтобы разгрузить сервер.
если у меня (клиента) будет пинг 2000 как эффективно будут работать зенитки?
На мой взгляд никакой ответственности кроме как отображения происходящего и обсчета фм собственного самолета у клиента быть не может.
Клиент должен передать серверу примерно следующее:
XYZWS, и в случае открытия огня то чем и сколько выстелил, ну и по необходимости мелочи всякее типа шасси и прочее. Клиент не передает серваку положение рулей и элеронов именно по этому мы их не видим.
Все остальные расчеты лежат на сервере, который в свою очередь должен передать клиенту координаты и идентификаторы самолетов находящихся в области видимости, стрельбу, и изменения в состоянии самолетов(повреждения), состояние каждого самолета в игре клиент может хранить в памяти и вносить изменения.
Клиент не может отрисовать ни попадание ни столкновение пока не получит подтверждение этому от сервера. Все видели ситуацию когда самолет виражит на малой высоте и часть его крыла буквально погружена в землю.....
Не много ли расчетов для сервера? Нет не много, игроков всего 32, а в офлайне он и больше ботов считает.
Насчет разницы в пинге так я не вижу проблемы, сервер имеет информацию о положении каждого на конкретную единицу времени и решает попал или не попал, если если у тебя пинг меньший то соответственно ты можешь чаще обновлять информацию о своем пололжении в пространстве, ну а если пинг большой то ясен пень можешь не успеть передать изменения (а мы уже передали XYZWS на основании которых все тебя и отбражают) и получить уже инфу о том что ты труп :)
Стабильность пинга дает возможность принорвиться к задержке и стрелять более эффетивно.
Все это лишь мои предположения и ничего больше. :)
-
Re: различия online и offline
viczz
Все это лишь мои предположения и ничего больше.
Ну, разумеется. Тут все флеймят впустую. :)
А я так, вообще, безотносительно реализации в Ил2, ибо даже не видел его в онлайне ни разу.
Кстати, стоит пояснить- это мнение как оно в Иле, или как оно должно быть? А то тут все всё по-разному понимают... :)
если у меня (клиента) будет пинг 2000 как эффективно будут работать зенитки?
Также, как и игрок- по пустому месту, разумеется. Правда, если это твои зенитки и работают они по тебе, тогда они точно знают куда бьют. А если зенитки обсчитывет сервер- они тоже работают по пустому месту. В любом случае, это ерунда, я же написал: "для прикола".
-
Re: различия online и offline
Насчет того как сделано или как должно быть, так я написал о том что видно в самой игре и предположил как это сделано из соображений того как бы это реализовал я сам (блин масло масляное)
С знитками точно так не выйдет, потому как они стрелять и попадать должны по всем, а если вдруг клиент сообщит серверу что мол на его стороне зенитки перебили всех клиентов, в тот момент когда другой клиент сообщает что сбили только половину :)
А трафика зенитки много не слопают, тут передать надо тока ID зенитки и вектор выстела.
Чем больше расчетов на сервере тем меньше возможность чита :)