С удовольствием подискутировал бы на тему сетевой синхронизации т.к. сам сейчас занимаюсь реализацией и изучением. Если в кратце то у меня получилась следующая схема и решенные проблемы: 1) Сервер авторитарен, т.е. все игровые события происходят только с его разрешения. 2) Тикрейт сервера и клиента отличается. 3) Часть команд сервера и клиента на каждой стороне буфферезируется. Исходя из важности команды на геймплей. 4) Все важные события(стрельба, юзы предметов) валидируется сервером. Т.е. клиент шлет серверу "я стрельнул" на тике N, сервер принимает команду и складывает в буфер, на своем тике последовательно мержатся все команды от всех игроков, доходит до команды стрельбы, сервер откатывает мир на тик N, проверяет куда стрельнул игрок и если попал то шлет подтверждение игроку а остальным что такойто стрельнул там то и попал тудато. Такая схема полностью избавляет от проблемы приведенной в ролике выше с дисконнектом но может родить другую проблему когда игрок видит у себя что попал но оно не засчитывается. Визуально такую проблему можно увидеть в overwatch и как по мне это решение более удачное. Так же это решает проблему читов которые телепортят игрока на клиенте к цели и делают выстрел, такой чит очень популярен в сорс движке, там проверка происходит только первой команды и проканывает такая схема: игрок шлет команду "я пошел с координаты 0-0 на 1000-0" и следующий пакет "я стрельнул в координате 1000-0 в координату 1001-0 ", в итоге сервер шлет ответ игроку "ты не мог сделать шаг в 1000-0 поэтому стой на 1-0, т.е. пшел нафиг читер" и получает следующий пакет о выстреле на что "хм ты попал с 1000-0 в координату 1001-0 , игрок убит". В конечном счете читер не смог телепортнуться далеко но смог сделать выстрел с того места куда хотел телепортироваться. 5) Сервер может снижать или повышать тикрейт подсистем физики\логики\сети исходя из затраченного времени на обработку каждой системы индивидуально. Т.е. к примеру если двиг физики вдруг начал жрать много времени на цикл то число его циклов насильно снижается и интерполируется. Да это может дать баги интерполяции но зато игроки не ощутят лагов сети. Кстати схожий принцип также есть в overwatch и заметен в жарких боях с кучей разрушений когда некоторые объекты начинают вести себя неадекватно, к примеру труп героя при смерте с космической скоростью улетает через карту, это какраз случай когда в момент начала работы физики тело получило импульс и сервер резко снизил тикрейт физики начав интерполяцию на N кадров и естественно она линейна а значит вместо гашения импульса он держит линейную скорость на основе коэф. трения который по всей видимости константен для всех тел . Точно также физика отрабатывает и на клиенте т.к. тики физики могут начать интерполироваться чтобы не упал фпс. 6) Физика существует 2х видов, серверная и клиентская. Серверная считается на нем и тупо синхронизирует координаты и ускорение для клиентов, клиенты просто применяют полученные координаты. Клиентская только не важные для геймплея объекты. Кстати на заметку, в overwatch регдолл игрока рассинхронизирован и сам регдол считается только у клиента но при этом на сервере также идет упрощенная физика типа кубика. Это видно мерсей т.к. рэгдол трупа и его "душа" очень часто разлетаются в разные стороны или с разной силой. По тестам удалось добиться примерно схожей работы сети как в overwatch при 20 тиках сервера и 60 клиента. Ощущается все как в overwatch. Проблем все же еще много, самая главная это предсказания при дропах пакетов и интерполяция этого дропа между предыдщим и будущим пакетом.
1. если сервак может себе это позволить, то почему бы и нет 2. в пубжике так же. Клиент спамит примерно с тикрейтом 100. 3. ну тут фиг знает как в пубже сделано 4. в пубжике в прицнипе тоже валидируются пикапы, перелезания через окна, выпрыгивания/запрыгивания в транспорт. Особенно удобно чекать с lagswitch'ем. 5. это очень круто ваще если все это удалось сделать, то нереально круто.
2) Тут главное лимитировать число команд от клиента на серверной стороне иначе сервер можно положить. Хотя на практике я остановился на том что лучше буферезировать. Т.е. накапливаем команды, к примеру 60 за секунду и шлем серверу, сервер у себя все 60 команд мержит в мире\энтии. Таким образом точность приемлемая в угоду свободности и разгузке сетевой подсистемы клиента и особенно сервера а также можно даже заюзать TCP. Такой подход кстати очень хорошо работает в ММО с огромным числом игроков. 3) Судя по багам в видео, буфферезаций нет т.к. в случае буфера клиент без дропов увидел бы как игрок в дисконнекте выглянул и стрельнул. Т.е. у клиента с лагами команды бы накопились в буфер и при конекте отправились на сервер. Хотя тут возможно так и есть но у них странно работает система рассчета устаревших данных. 4) Понятно что валидируются но все же странно это происходит т.к. есть читы на прострелы через всю карту. Хотя возможно выстрелы рассчитываются только на клиенте из разряда: клиент "я попал в М", сервер "ок скажу М что он убит не проверяя могли ты попасть". 5) Достаточно легко кстати сделать, просто считать время цикла каждой системы и если времени ушло больше нормы то выполнить упрощенный рассчет самой медленной системы или вообще дропнуть на столько то тактов а вместо них посчитать сколько итераций было пропущено и потом пересчитать их все когда появится больше ресурсов и другие системы их освободят. Т.е. -шеф у нас проблема, система физики жрет слишком много времени и другие подсистемы не успевают отработать вовремя, -ок сэр, снижаем число тиков другим системам и обсчитываем физику а когда время цикла нормируется возвращаем все обратно -но шеф тут разгар боя и важнее подсистема логики -ок, отставить снижение тиков других систем, дропаем кадры физики т.к. она менее важная и начинаем считать ее по упрощенной схеме с помощью интерполяции. -теперь все отлично. Схему конечно придется адаптировать для конкретного геймплея и его скорости.
>Серверная считается на нем и тупо синхронизирует координаты и ускорение для клиентов, клиенты просто применяют полученные координаты. Я не копался, но имея достаточный опыт написания синхронного детерминированного мультиплеера для пары игр и зная косяки PUBG, могу сказать, что там скорее всего сделано очень примитивно и на откуп клиенту оставлено почти всё, поэтому возможно такое дикое количество читов с телепортами и т.п. От этого и баги-читы (например X-Box пользователи сообщали что если здания и двери графически не подгрузились, но противник виден, то попадания в него засчитываются). Pubg использует идеологию trust client, причём там нет даже примитивнейших проверок на валидность позиции, так как читеры могут телепортироваться. Соответсвенно сервер имеет у себя просто примитивную модель мира, с позицией и другими параметрами, всё принимает от клиентов и пересылает другим клиентам. Возможно, в целях оптимизации рассылка позиций происходит только в неком радиусе (поэтому аналогично формируется и реплей).
Могу добавить, что судя по таймингам, которые посчитал ув. автор в предыдущем видео, сетевая модель PUBG зело криволапа. 500-700 мс, это очень плохо и не должно быть таких задержек, особенно в ФПС. Особенно, если там сервер ничего не считает, не верифицирует. Там что-то явно сдохло и работает на паре граблей. От этого оно играется немного странно, тот же Фортнайт по отклику как день и ночь. Фортнайт писали матёрые дядьки. Сеть и код, наверное, писали поляки из PeopleCanFly с опытом Painkiller.
>в пубжике в прицнипе тоже валидируются пикапы, Судя по схожим видео про читы в ПУБГ валидации пикапа нет. Китайцы с читами сразу на старте лутаются из ниоткуда.
Вопросы на которые видео отвечает не напрямую: Почему PUBG имеет адаптивный тикрейт? (потому что бэтка, оптимизация и кол-во балбесов); Антипод - а я хз. Почему client-side reg {или обрыв связи для победы - lagswitch}? (потому что эта изи закодить и ваще мы вас забаним, а вы еще копию купите); Антипод - R6: Siege. Главная = web страница. Ой бля, сколько херни можно было себе поставить зайдя на неправильный серв в контре. А тут, если ещё можно было скомпрометировать дата-центр, то можно такую подлянку устроить коннектящимся... P.S. Видео получилось информативным и, после проверки у одного зарубежного ютюбера задержки передвижений и действий, весьма дополняющим.
Есть такое понятие как QA-готовность игры и готовность к релизу. И если они были готовы к релизу, это не значит что они завершили стадию беты с точки зрения QA. Справка: QA = quality assurance (quality control). Когда игру ломают не то, чтобы полностью, а пробуют почти что дезинтегрировать с точки зрения нагрузки и багов. Если оно ещё живое после теста - го 2 раунд и так далее, пока тестируемая версия не может считаться "условно стабильным" (готовым к релизу). P.S. И да, я люблю лопухи как растение, но "растение" в этой ветке - ты.
Евгений Трехлеб, судя по наполнению контента игра в бэте, а по оптимизации и сетевому коду игра в поздней альфе и каким боком кол-во игроков говорит о качестве продукта?
Если передача данных между серваком и клиентом вообще никак не зашифрована, как сказал IT-шник, то для mitm атаки нужно знать только ip'шки подключенных клиентов
Интересного контента привносящего что то действительно новое и интересное на просторах сети становится все меньше. Приятно видеть исключение из правил.
но кс куда более динамична, и да множество раз в кс убивали 6:02 причем по этой же причине в кс при должной реакции выскакивание иза угла при онлайн(а не лан) игре часто профитная затея
да люди жалуются.. на 64 тике даже гранаты не так летают (повторить раскидки с туриков смотря демки очень сложно), не говоря о постоянных ситуациях, когда чел телепортируется из-за угла и дает в жбан с дигла через всю карту... А при просмотре этого момента в демке, он спокойно выходит из-за угла, долго целится и стреляет.
Как работает сеть в играх? Что не так с пубгом? Как работает графика пубга: ruclips.net/video/oup3dSeGAhM/видео.html PUBG Render timelapse ruclips.net/video/QRrztpb24ag/видео.html Debug tools: ruclips.net/video/cnFpqtNOtnE/видео.html Что такое PBR: ruclips.net/video/VS1vu9oDDlc/видео.html Го в други vk.com/some_itshnik Го в группу vk.com/some_itshneg Канал CRYMAX'a ruclips.net/channel/UCCyF21ZEFP2snB0JJtIQmuw Почему тормозит PUBG? Как работает PUBG? Где оптимизация PUBG?
А МОЖНО СРАВНЕНИЕ РАБОТЫ СЕТЕВОГО ДВИЖКА С ТЕМ ЖЕ КС ГО ПРОСТО ДЛЯ БОЛЕЕ УДОБНОГО ПОНИМАНИЯ ПЛЮСЫ МИНУСЫ ЧТО РАБОТАЕТ СОВСЕМ ПО ДРУГОМУ ЧТО ТАК ЖЕ НУ И Т.Д.
Белорусский айтишник, будет контент по RB6: Siege? Очень сильно интересуют кишки этой замечательной игры. Как и сам графический движок (рендер кадров) так и неткод. Уверен, что таких как я найдутся больше трех с половиной анонимуса.
Очень много крутой иноформации, но подано всё без чётких иллюстраций. Хотелось бы видеть схематичное отображение, или, ещё лучше, реальную демонстрацию того или иного понятия. В остальном - круто.
Пабг сделан на unreal engine 4. Код движка доступен в открытом доступе на гитхаб. Так же есть и отличная документация по движку где описан весь сценарий работы сети. Любой может зайти и посмотреть как написан сетевой код. К слову по умолчанию тикрейт для дедикейтед сервера 30. Это прописано в Engine.ini или другом файле настроек более низком по иерархии конфигурационных файлов. Предполагаю что движок автоматически понижает тикрейт из-за большого количества игроков в начале. Просто железо сервера не тянет, так как я не видел в ue4 возможности динамически менять тикрейт в запущенном сервере. Еще могу предположить, что скорее всего для движения игроков используется стандпртный клас движения игрока который лежит в CharacterMovementComponent.cpp Там же есть методы для защиты от подделки клиентом TimeStamp (это локальное время клиента, которое он сообщает серверу при вызове rpc server_move. Подделка этого числа позволяет делать спидхаки). Однако детектор спидхаков по умолчанию отключен в движке. Видимо для оптимизации.
Удручают некоторые комменты. Я вам так скажу, что "то" говно, что "это" говно, вас говном кормят и продолжают кормить, а вы ещё спорите и дерётесь о том какое говно лучше. Видос топ, автор молодец, открывает глаза на многие вещи тем кто не знал, лайком уважение не передать.
Отличные видео! Успехов! Сделай, пожалуйста, видео по оптимизации сетевой карты, её доп настройке, твики в реестре, для лучшего "нагиба" в играх))) Спасибо.
Часть про именно PUBG была интересной. Как ни как, разбор частного случая. В сравнение с этим видео было бы очень интересно посмотреть аналогичный разбор Батлрояля в Fortnite, на сколько это возможно, как аналогичный по жанру игре на том же графическом движке, но с, явно, совсем иной сетевой частью.
Проблема в том, что у меня опыта в фортнайт мизер. 2 катки за плечами. Не прочувствовал игру. Графический движок античит не дает пощупать, а сеть только если тикрейт измерить сможем, да там и так статистика есть
я только до 2 минуты досмотрел но досмотрю а по поводу тикрейта вангую что если в контре тикрэйт 64 в мм то в ПУБГ в лучшем случае 16 ))) И НА САМОМ ДЕЛЕ СИНЯЯ ДЫРКА ТОЧНАЯ КОПИЯ ВОЛЬВО ПЕРВЫЙ ГОД ОНИ ДЕЙСТВИТЕЛЬНО БУДУТ ЧТО ТО ДЕЛАТЬ И МНОГО ОБЕЩАТЬ НЕ ЗАБЫВАЯ ПИЛИТЬ СКИНЫ)) ВТОРОЙ ГОД ОНИ УЖЕ БУДУТ ПРОСТО ОБЕЩАТЬ И ПИЛИТЬ СКИНЫ )) ТРЕТИЙ ГОД ИМ УЖЕ БУДЕТ ПО ХУЙ ИБО БАБЛА НАВАРИЛИ ХОТЬ ЖОПОЙ ЖУЙ НО ДЕЛАТЬ ВИД РАБОТЫ ВСЁ ЕЩЁ БУДУТ )) ЧЕТВЁРТЫЙ ГОД ДЕЛАТЬ ВИД УЖЕ ЛЕНЬ НУ И ВСЁ НА ЧТО НЕ ПО ХУЙ ЭТО СКИНЫ ))) Я МОГУ ВИДЕТЬ БУДУЩЕЕ ЧУВАКИ ПРОСТО ИЗИ
У вальве хотя бы игры получше сделаны. Тоже дыры есть, но они не доступны большинству игроков. А только читерам. Там не получится с респа убить всех и через стены пулять. А в пабжике - нефиг делать. И античит вальве хотя б работает и это видно. А здесь никакой инфы нет. Они набздели что 100 000 забанили. А как это проверить? Никак.
Молодец, показал людям лагсвитч) В определенных кругах этой теме уже много лет и вообще подобное на уровне чита рассматривается, т.е. банят за это на раз. И по поводу пинга ты конечно все верно сказал, но, как и все, ничего про протоколы конкретной игры нет. Т.е. о том, что пинг показывает инфу по icmp, а реальная задержка идет по udp, потому что и данные передаются по udp, ты ничего не сказал. Хотя большинству и так пофигу, что там и как. Кроме этих двух пунктов - хороший контент. Да и вообще красава, что поднимаешь подобные вопросы, т.к. обычно пилят видосы аля "Как поднять фпс в 1000раз прописав 2 строчки в реестре".
Кстати, больше чем OMAE WA из кулака северной звезды подошёл бы ZA WARUDO из ДжоДжо. И да. Найс "шум" на арте с 002 в конце, можешь создать отдельный файл и кинуть ссылку?
Ну там пацаны не первый день сетевой движок пилят, уже научились. Хотя там тоже например нет шифрования трафика и там тоже есть радар. Правда нафига нужер радар для батлы и батлфронта я не знаю. Но. 64 игрока, тикрейт 60 это отменно.
На реакцию очень легко выявлять читеров. Если чел уже знает что ты выходишь то он начинает стрелять раньше и ты моментально ловишь пули. Никакого секундного бонуса у тебя не будет)
Кстати. Заметил, когда в шутерах хреного залетает, то и звук тише и графон мыльнее и отдача гораздо больше, чем должна быть, как бы странно это не звучало, но такая тенденция с взаимосвязью прослеживается мной уже очень давно. Особенно это заметно при прослушивании шагов и стрельбой в том же пабге и в кс гоу такая же тема, из прицелов выше Х3 вообще стрелять нереально становится.
Хай, топ контент! Забыл под каким прошлым видео задавал этот вопрос, повторюсь. Есть игра escape from tarkov, на юнити. Сетевой код просто ад, пубг в сравнении идеален. Да, бета, бла бла бла. Короче, не мог бы объяснить, где нас наё..манывают, говоря, что это проблема именно движка, что из за большой карты, миллиона объектов которые нужно синхронизировать, такие жуткие десинки в несколько секун, не регистрация урона и тд и тп.
Беларуский АЙТИшник если найду ключ, обязательно скину. Просто есть ощущение, что где то обманывают, покрывая свою лень. Это же основа основ для хардкор шутера претендующего на сверх реализм. И за несколько лет работы над текущим продуктом + опыт работы с юнити в целом, не даёт им вообще никаких результатов. Может мы (подписота) скинемся на минимальный пак, чтобы ты обозрел всё своими глазами? )
годный видос, а есть ли способ что-то с этим сделать, может в конфигах что-то прописать, чтобы тикрейт выше был, по крайней мере сервер максимально насколько он могёт тебе его выдавал, и да, как разорвать соединение на 2 сек
Теперь вроде понял ) но радостнее от этого не стало, хех) Похоже, если хочешь играть с минимальными задержками - переезжай в америку, так как амазоновские серваки сейчас почти все игровые сервисы юзают вроде как
Молодец всё понятно обьяснил,советую глягуть батлнонсенс и брать пример. Расскажи про фортнайт overwstch и сдедай обзор кс Людям будет интересно#esports ready
то что игрок умерает уже будучи забежавшим за стену, это не проблема неткода или низкого тикрейта, это обычная анлаг стрельба или стрельба по клиенту, если сделать стрельбу по серверу как в quake3 то такой ситуации не будет, а вот хак с вырубанием интернета легко фиксится с небольшой логикой на отброс устаревших по времени пакетов, ну и хакнутая страничка ничего не дает, можно не фиксить.
Да. Чем реже нужно симулировать разные события и синхронизироваться, чем меньше нагрузка на пеку. Но все же больше всего напрягается сервак. Его же бомбят тиками все подключенные клиенты и он каждому должен отдать свою пачку данных.
Ну это понятно, хотелось бы на конкретных цифрах увидеть на сколько фпс будет разница между 30 и 60 гц например. В батле четвертой вон даже до 144 гц можно сервер сделать.
Господи, почему у тебя на 100% уникальный и качественный контент , но 8к подписчиков , а у кухни 160к , надеюсь ситуация изменится в обратную сторону !
Айтишник подскажи как в наших реалиях найти работу студенту программисту? Ну какие знания на практике стоит иметь? Допустим есть знания плюсов ассемблера джавы. Знаю что этот вопрос не подходит под формат видео, но ты сильный программист ,это видно, мб дашь совет?
Я не сильный программист)) Но. Делай, то что нравится. Постоянно что-то делай. Складывай свои проектики в паблик/прайват репы. Приведи в порядок линкедин профиль. Кидай реквесты на вакансии. Наверняка джуном возьмут куда-то. А там, если будешь шевелиться, и до мида раскачаешься и до сеньора. Потом тебе сами будут работу предлагать, а не ты искать. Я уже несколько лет сам никуда запросы не отправлял, сами все предлагают.
Такой вопрос: насколько дорого шифрование сетевых пакетов для синхронизации с сервером и валидация на сервере? Мне как айтишнику совершенно понятно как бороться с читерами в играх, но сам я не разрабатывал. Это, видимо, нецелесообразно из-за вычислительных ограничений, вот интересно, где боттлнек, в пропускной способности сети или мощности сервака?
Ответьте пожалуйста, так где выгоднее играть. На EU сервера, где вроде бы пинг меньше, или все таки пробовать лагать на Азии JP или NA серверах, где выгоднее пушить, или наоборот лучше вообще не играть?
Ооооо,тогда понятно.Не,чел,это лень.Комфорт тут вообще не причем.Расстроил ты меня.Давай хотя бы по абзацам начни.Поверь:от технически высокого сделанного ролика,твоя популярность только увеличиться.Не забывай,что не единым контентом живем на ютубе в 2к18
Добрый день. Наиграл в ПУБГ почти тысячу часов, естественно как и все мучаюсь из-за высокого пинга, постоянных лагов и разрывов соединения. В СНГ регионе принято играть на EU так как самый низкий пинг... Но я заметил закономерность и начал проверять. Во время игры на EU часто сталкиваюсь с такой ситуцией - при прицельном огне по человеку (допустим он находится вне укрытия и не двигается) на EU для нока приходится выпустить от 10 до 15 (а то и 20ти) пуль в авто режиме, значит ли это что часть из них не учитывается сервером? На сервере к примеру NA ситуация иная, там и двери открываются сразу и парашют не зависает в самых неожиданных местах, и на убийство уходит от 5 до 10ти патронов. мой пинг до NA как правило не ниже 290мс до EU 120мс. не могли бы вы провести сравнение? и если ситуация подтвердиться пояснить почему так...
Мужик, сейчас также как и раньше было, используются игровые циклы? т.е. идет одна итерация, прорисовка карты, обработка столкновений, получение координат игроков и.т.д. все последовательно в одной итерации. Или уже давно используется многопоточность? Просто интересно, возможен такой сценарий, чтобы у меня был тикрейт 124 Гц, но количество кадров стояло например 60 FPS? Или тикрейт всегда меньше или равен FPS? Пардон за нубский вопрос, единственный мой опыт в разработке игр был в школьные времена, и там мы использовали главный игровой цикл, и скорость перемещения имела коэффициент переменной "время". А сейчас многоядерные процессоры в тренде, и наверное уже во всю используется многопоточность.
Эксперимент неправильно поставили. 1-й игрок отключается на секунду высовывается и стреляет, а второй стоит на месте. Если бы второй отошел в это же время в сторону, тогда можно было показать, что клиент типа считает попадание, а не сервер, потому что на клиенте второй игрок стоял туда куда пуля летела, а на сервере игрока там уже не было. Но скорее всего этого как раз и не произойдет, пуля там серверная. А так вы показываете что в ситуации частичной потери пакетов сервер отрабатывает предсказуемо. Если таким делом кто злоупотребляет, его должен карать уже банхаммер под надзором BattleEye.
Делали и такое. Но я запись забыл включить. Впрочем это уже после фикса. Раньше вообще можно было довольно долго бегать расстреливать людей вот так вот в оффлайне.
кстати еще проблема такая, игра эта EFT. не нагружает видеокарту на 100% т.е скачет 50-70% и при этом фпс низкий подскажи как заставить игру нагружать на 100% может через дрова как то?игра эта на юнити тоже
Роман Малафеев Ты видишь противников в прошлом а себя в настоящем. Противники у себя на клиентах видят тебя в прошлом а себя в настоящем. Причем с двойным пингом. Так как сообщение о изменении позиции условного Васи идет сначала на сервер а с сервера к тебе. Попасть в таких условиях в голову, когда все быстро бегают - невозможно. Потому придумали хак. И назвали его метод компенсации лагов. То есть ты отправил на сервер сообщение о том, что выстрелил Васе в голову в момент времени t. На сервер оно дошло с опоздание из-за пинга. Сервер отмотал игровой мир, твою позицию и позицию Васи к моменту t и проверил корректность выстрела. Потом послал Васе сообщение, о том, что Вася - труп. Оно естественно дойдет с опозданием опять из-за пинга. Вася уже убежал за угол, но он уже труп. Он умер еще в момент t но узнал об этом, спустя время. :-)
Я думаю, сервак в пубжике особо ничего не валидирует. Большая нагрузка, нет времени на валидацию, поэтому есть читы где ты можешь кулаками убивать на расстоянии
2:53 что-то не так с вашими 60 Герц. Больше похоже на 10. 60 Герц - это плавнее Хобита взад назад. Не думал, что в современных играх еще существует такая сетевая модель. Т.е. мало того, что предсказание/компенсацию лага не делают, еще и Клиент решает попадания. Откуда у разрабов такие кривые руки? Не успели? Забили болт? Серверных ресурсов не хватило для просчета? Из-за p2p(слышал, что используют)?
Про то что нужно быстро выглядывать и стрелять: всё равно же у противника ты сначала появишься из-за укрытия, а только потом начнёшь стрелять, то есть у него будет точно такое же время среагировать как если бы пинга не было вовсе, или нет?
за стеной, после того как я пострелялся и спрятался, я умираю регулярно, а так чтобы меня убили из ниоткуда (до того как человек появлися у меня на экране) за 1к часов пока не было. я понимаю про разрыв соединения, но без этого "приёма" я не могу представить себе, чтобы проходил урон до того как на экране появился его источник
Беларуский АЙТИшник: Omae wa mou shindeiru.
PlayerUnknown: Nani?
С удовольствием подискутировал бы на тему сетевой синхронизации т.к. сам сейчас занимаюсь реализацией и изучением. Если в кратце то у меня получилась следующая схема и решенные проблемы:
1) Сервер авторитарен, т.е. все игровые события происходят только с его разрешения.
2) Тикрейт сервера и клиента отличается.
3) Часть команд сервера и клиента на каждой стороне буфферезируется. Исходя из важности команды на геймплей.
4) Все важные события(стрельба, юзы предметов) валидируется сервером. Т.е. клиент шлет серверу "я стрельнул" на тике N, сервер принимает команду и складывает в буфер, на своем тике последовательно мержатся все команды от всех игроков, доходит до команды стрельбы, сервер откатывает мир на тик N, проверяет куда стрельнул игрок и если попал то шлет подтверждение игроку а остальным что такойто стрельнул там то и попал тудато. Такая схема полностью избавляет от проблемы приведенной в ролике выше с дисконнектом но может родить другую проблему когда игрок видит у себя что попал но оно не засчитывается. Визуально такую проблему можно увидеть в overwatch и как по мне это решение более удачное. Так же это решает проблему читов которые телепортят игрока на клиенте к цели и делают выстрел, такой чит очень популярен в сорс движке, там проверка происходит только первой команды и проканывает такая схема: игрок шлет команду "я пошел с координаты 0-0 на 1000-0" и следующий пакет "я стрельнул в координате 1000-0 в координату 1001-0 ", в итоге сервер шлет ответ игроку "ты не мог сделать шаг в 1000-0 поэтому стой на 1-0, т.е. пшел нафиг читер" и получает следующий пакет о выстреле на что "хм ты попал с 1000-0 в координату 1001-0 , игрок убит". В конечном счете читер не смог телепортнуться далеко но смог сделать выстрел с того места куда хотел телепортироваться.
5) Сервер может снижать или повышать тикрейт подсистем физики\логики\сети исходя из затраченного времени на обработку каждой системы индивидуально. Т.е. к примеру если двиг физики вдруг начал жрать много времени на цикл то число его циклов насильно снижается и интерполируется. Да это может дать баги интерполяции но зато игроки не ощутят лагов сети. Кстати схожий принцип также есть в overwatch и заметен в жарких боях с кучей разрушений когда некоторые объекты начинают вести себя неадекватно, к примеру труп героя при смерте с космической скоростью улетает через карту, это какраз случай когда в момент начала работы физики тело получило импульс и сервер резко снизил тикрейт физики начав интерполяцию на N кадров и естественно она линейна а значит вместо гашения импульса он держит линейную скорость на основе коэф. трения который по всей видимости константен для всех тел . Точно также физика отрабатывает и на клиенте т.к. тики физики могут начать интерполироваться чтобы не упал фпс.
6) Физика существует 2х видов, серверная и клиентская. Серверная считается на нем и тупо синхронизирует координаты и ускорение для клиентов, клиенты просто применяют полученные координаты. Клиентская только не важные для геймплея объекты. Кстати на заметку, в overwatch регдолл игрока рассинхронизирован и сам регдол считается только у клиента но при этом на сервере также идет упрощенная физика типа кубика. Это видно мерсей т.к. рэгдол трупа и его "душа" очень часто разлетаются в разные стороны или с разной силой.
По тестам удалось добиться примерно схожей работы сети как в overwatch при 20 тиках сервера и 60 клиента. Ощущается все как в overwatch. Проблем все же еще много, самая главная это предсказания при дропах пакетов и интерполяция этого дропа между предыдщим и будущим пакетом.
1. если сервак может себе это позволить, то почему бы и нет
2. в пубжике так же. Клиент спамит примерно с тикрейтом 100.
3. ну тут фиг знает как в пубже сделано
4. в пубжике в прицнипе тоже валидируются пикапы, перелезания через окна, выпрыгивания/запрыгивания в транспорт. Особенно удобно чекать с lagswitch'ем.
5. это очень круто
ваще если все это удалось сделать, то нереально круто.
2) Тут главное лимитировать число команд от клиента на серверной стороне иначе сервер можно положить. Хотя на практике я остановился на том что лучше буферезировать. Т.е. накапливаем команды, к примеру 60 за секунду и шлем серверу, сервер у себя все 60 команд мержит в мире\энтии. Таким образом точность приемлемая в угоду свободности и разгузке сетевой подсистемы клиента и особенно сервера а также можно даже заюзать TCP. Такой подход кстати очень хорошо работает в ММО с огромным числом игроков.
3) Судя по багам в видео, буфферезаций нет т.к. в случае буфера клиент без дропов увидел бы как игрок в дисконнекте выглянул и стрельнул. Т.е. у клиента с лагами команды бы накопились в буфер и при конекте отправились на сервер. Хотя тут возможно так и есть но у них странно работает система рассчета устаревших данных.
4) Понятно что валидируются но все же странно это происходит т.к. есть читы на прострелы через всю карту. Хотя возможно выстрелы рассчитываются только на клиенте из разряда: клиент "я попал в М", сервер "ок скажу М что он убит не проверяя могли ты попасть".
5) Достаточно легко кстати сделать, просто считать время цикла каждой системы и если времени ушло больше нормы то выполнить упрощенный рассчет самой медленной системы или вообще дропнуть на столько то тактов а вместо них посчитать сколько итераций было пропущено и потом пересчитать их все когда появится больше ресурсов и другие системы их освободят. Т.е.
-шеф у нас проблема, система физики жрет слишком много времени и другие подсистемы не успевают отработать вовремя,
-ок сэр, снижаем число тиков другим системам и обсчитываем физику а когда время цикла нормируется возвращаем все обратно
-но шеф тут разгар боя и важнее подсистема логики
-ок, отставить снижение тиков других систем, дропаем кадры физики т.к. она менее важная и начинаем считать ее по упрощенной схеме с помощью интерполяции.
-теперь все отлично.
Схему конечно придется адаптировать для конкретного геймплея и его скорости.
>Серверная считается на нем и тупо синхронизирует координаты и ускорение для клиентов, клиенты просто применяют полученные координаты.
Я не копался, но имея достаточный опыт написания синхронного детерминированного мультиплеера для пары игр и зная косяки PUBG, могу сказать, что там скорее всего сделано очень примитивно и на откуп клиенту оставлено почти всё, поэтому возможно такое дикое количество читов с телепортами и т.п.
От этого и баги-читы (например X-Box пользователи сообщали что если здания и двери графически не подгрузились, но противник виден, то попадания в него засчитываются).
Pubg использует идеологию trust client, причём там нет даже примитивнейших проверок на валидность позиции, так как читеры могут телепортироваться.
Соответсвенно сервер имеет у себя просто примитивную модель мира, с позицией и другими параметрами, всё принимает от клиентов и пересылает другим клиентам.
Возможно, в целях оптимизации рассылка позиций происходит только в неком радиусе (поэтому аналогично формируется и реплей).
Могу добавить, что судя по таймингам, которые посчитал ув. автор в предыдущем видео, сетевая модель PUBG зело криволапа. 500-700 мс, это очень плохо и не должно быть таких задержек, особенно в ФПС. Особенно, если там сервер ничего не считает, не верифицирует. Там что-то явно сдохло и работает на паре граблей.
От этого оно играется немного странно, тот же Фортнайт по отклику как день и ночь. Фортнайт писали матёрые дядьки. Сеть и код, наверное, писали поляки из PeopleCanFly с опытом Painkiller.
>в пубжике в прицнипе тоже валидируются пикапы,
Судя по схожим видео про читы в ПУБГ валидации пикапа нет. Китайцы с читами сразу на старте лутаются из ниоткуда.
Почему такие крутые подробности того, чем мы пользуемся чуть ли не каждый день, столь непопулярны?
Спасибо за ролик и миллионы просмотров господину
Вопросы на которые видео отвечает не напрямую:
Почему PUBG имеет адаптивный тикрейт? (потому что бэтка, оптимизация и кол-во балбесов); Антипод - а я хз.
Почему client-side reg {или обрыв связи для победы - lagswitch}? (потому что эта изи закодить и ваще мы вас забаним, а вы еще копию купите); Антипод - R6: Siege.
Главная = web страница. Ой бля, сколько херни можно было себе поставить зайдя на неправильный серв в контре.
А тут, если ещё можно было скомпрометировать дата-центр, то можно такую подлянку устроить коннектящимся...
P.S. Видео получилось информативным и, после проверки у одного зарубежного ютюбера задержки передвижений и действий, весьма дополняющим.
бэтка говоришь? ты лопух уже кк минимум мес пубг в релизе!!!
Есть такое понятие как QA-готовность игры и готовность к релизу.
И если они были готовы к релизу, это не значит что они завершили стадию беты с точки зрения QA.
Справка:
QA = quality assurance (quality control). Когда игру ломают не то, чтобы полностью, а пробуют почти что дезинтегрировать с точки зрения нагрузки и багов. Если оно ещё живое после теста - го 2 раунд и так далее, пока тестируемая версия не может считаться "условно стабильным" (готовым к релизу).
P.S. И да, я люблю лопухи как растение, но "растение" в этой ветке - ты.
Евгений Трехлеб, судя по наполнению контента игра в бэте, а по оптимизации и сетевому коду игра в поздней альфе
и каким боком кол-во игроков говорит о качестве продукта?
ruclips.net/video/u0dWDFDUF8s/видео.html
ruclips.net/video/dAuHb9GjmN0/видео.html
Если передача данных между серваком и клиентом вообще никак не зашифрована, как сказал IT-шник, то для mitm атаки нужно знать только ip'шки подключенных клиентов
Интересного контента привносящего что то действительно новое и интересное на просторах сети становится все меньше. Приятно видеть исключение из правил.
>Когда люди в кс жалуются на 64тик
но кс куда более динамична, и да множество раз в кс убивали 6:02
причем по этой же причине в кс при должной реакции выскакивание иза угла при онлайн(а не лан) игре часто профитная затея
да люди жалуются.. на 64 тике даже гранаты не так летают (повторить раскидки с туриков смотря демки очень сложно), не говоря о постоянных ситуациях, когда чел телепортируется из-за угла и дает в жбан с дигла через всю карту... А при просмотре этого момента в демке, он спокойно выходит из-за угла, долго целится и стреляет.
Просто в КС 128 тик можно реализовать, а в пабге нет. А волво проводит такую политику. Что 64 максимум. Ибо есть игроки со слабым инетом
И правильно делают, ибо есть.
Аминь.
Как работает сеть в играх? Что не так с пубгом?
Как работает графика пубга: ruclips.net/video/oup3dSeGAhM/видео.html
PUBG Render timelapse ruclips.net/video/QRrztpb24ag/видео.html
Debug tools: ruclips.net/video/cnFpqtNOtnE/видео.html
Что такое PBR: ruclips.net/video/VS1vu9oDDlc/видео.html
Го в други vk.com/some_itshnik
Го в группу vk.com/some_itshneg
Канал CRYMAX'a ruclips.net/channel/UCCyF21ZEFP2snB0JJtIQmuw
Почему тормозит PUBG? Как работает PUBG? Где оптимизация PUBG?
А МОЖНО СРАВНЕНИЕ РАБОТЫ СЕТЕВОГО ДВИЖКА С ТЕМ ЖЕ КС ГО ПРОСТО ДЛЯ БОЛЕЕ УДОБНОГО ПОНИМАНИЯ ПЛЮСЫ МИНУСЫ ЧТО РАБОТАЕТ СОВСЕМ ПО ДРУГОМУ ЧТО ТАК ЖЕ НУ И Т.Д.
Отличный видос. Лайк
Да ты охренел такую крутоту пилить
Беларуский АЙТИшник воу воу воу, тоесть ты себе дал разрешение на создание кастомного сервера в пубг???
Привет! Хочешь увеличить количество подписчиков в разы? Сделай анализ механики уравнения статистики в WoT.)
Белорусский айтишник, будет контент по RB6: Siege? Очень сильно интересуют кишки этой замечательной игры. Как и сам графический движок (рендер кадров) так и неткод. Уверен, что таких как я найдутся больше трех с половиной анонимуса.
Я попробую, но хз как там с античитом
Абсолютно поддерживаю затею. У Осады много вопросов касательно технической стороны
Отличная аналитика! лайк + подписон. Всегда дико пригорает когда умираю спустя пару сек от выстрела, будучи уже за стеной. Теперь знаю почему...
мужык! красава, подписался. ты делаешь отличный контент, на узкую аудиторию. пусть это тебя не останаваливает.
Шикарно! Спасибо за ролики. :)
Очень много крутой иноформации, но подано всё без чётких иллюстраций. Хотелось бы видеть схематичное отображение, или, ещё лучше, реальную демонстрацию того или иного понятия.
В остальном - круто.
Пабг сделан на unreal engine 4. Код движка доступен в открытом доступе на гитхаб. Так же есть и отличная документация по движку где описан весь сценарий работы сети. Любой может зайти и посмотреть как написан сетевой код. К слову по умолчанию тикрейт для дедикейтед сервера 30. Это прописано в Engine.ini или другом файле настроек более низком по иерархии конфигурационных файлов. Предполагаю что движок автоматически понижает тикрейт из-за большого количества игроков в начале. Просто железо сервера не тянет, так как я не видел в ue4 возможности динамически менять тикрейт в запущенном сервере. Еще могу предположить, что скорее всего для движения игроков используется стандпртный клас движения игрока который лежит в CharacterMovementComponent.cpp Там же есть методы для защиты от подделки клиентом TimeStamp (это локальное время клиента, которое он сообщает серверу при вызове rpc server_move. Подделка этого числа позволяет делать спидхаки). Однако детектор спидхаков по умолчанию отключен в движке. Видимо для оптимизации.
Удручают некоторые комменты. Я вам так скажу, что "то" говно, что "это" говно, вас говном кормят и продолжают кормить, а вы ещё спорите и дерётесь о том какое говно лучше. Видос топ, автор молодец, открывает глаза на многие вещи тем кто не знал, лайком уважение не передать.
Я не знаю что сказать.... Твои видео-топ в мире, почему же тогда у тебя так мало подписчиков?!
Ладно, зацепил лови подписку)) Все лаконично и понятно, а самое главное интересно)
Просьба звук громче делать. А то приходится на 100% выкручивать.
Жжёшь чувак. :)
Прикольнаяаудио редакция момента со стрельбой в оффлайне :)
Посмотрел и аж затрясло, срочно строчу коммент.
Просто наткнулся случайно всем посоветовал. Красава.
Про читы и античиты пплзззз
Три дизлайка это те кто не врубились в сказанное...но мне кажеться их намного больше.
Шикарнео видео Спасибо.
дизы от блюхолс)
Просто хотел написать спасибо. Очень интересная информация про тикрейт в пубг. Удачи автору на поприще ютубера.
Контент супер. Один совет , готовь текст тщательней , что бы не было задержек в речи , это сильно бьёт по ушам
Да. Надо взяться за озвучку. На очереди новый видос. Постараюсь...
Отличные видео! Успехов! Сделай, пожалуйста, видео по оптимизации сетевой карты, её доп настройке, твики в реестре, для лучшего "нагиба" в играх))) Спасибо.
Erich Weiss ага, хотелось бы такое видео) особенно когда стремишь, чтобы пинг в игре не подскакивал)
А там особо нечего твикать. Большинство челиков ваще по wifi сидят и типа не парятся. Хотя некий образовательный видос можно наклепать.
Беларуский АЙТИшник спасибо
*_Офигенно! Меня бы кто научил так всё понимать (и делать игры в юнити)))_*
Часть про именно PUBG была интересной. Как ни как, разбор частного случая.
В сравнение с этим видео было бы очень интересно посмотреть аналогичный разбор Батлрояля в Fortnite, на сколько это возможно, как аналогичный по жанру игре на том же графическом движке, но с, явно, совсем иной сетевой частью.
Проблема в том, что у меня опыта в фортнайт мизер. 2 катки за плечами. Не прочувствовал игру. Графический движок античит не дает пощупать, а сеть только если тикрейт измерить сможем, да там и так статистика есть
"Классно" что сервер не волнует перемещения подключенного игрока и отключенный игрок может его убить. Это п......ц.
я только до 2 минуты досмотрел но досмотрю а по поводу тикрейта вангую что если в контре тикрэйт 64 в мм то в ПУБГ в лучшем случае 16 ))) И НА САМОМ ДЕЛЕ СИНЯЯ ДЫРКА ТОЧНАЯ КОПИЯ ВОЛЬВО ПЕРВЫЙ ГОД ОНИ ДЕЙСТВИТЕЛЬНО БУДУТ ЧТО ТО ДЕЛАТЬ И МНОГО ОБЕЩАТЬ НЕ ЗАБЫВАЯ ПИЛИТЬ СКИНЫ)) ВТОРОЙ ГОД ОНИ УЖЕ БУДУТ ПРОСТО ОБЕЩАТЬ И ПИЛИТЬ СКИНЫ )) ТРЕТИЙ ГОД ИМ УЖЕ БУДЕТ ПО ХУЙ ИБО БАБЛА НАВАРИЛИ ХОТЬ ЖОПОЙ ЖУЙ НО ДЕЛАТЬ ВИД РАБОТЫ ВСЁ ЕЩЁ БУДУТ )) ЧЕТВЁРТЫЙ ГОД ДЕЛАТЬ ВИД УЖЕ ЛЕНЬ НУ И ВСЁ НА ЧТО НЕ ПО ХУЙ ЭТО СКИНЫ ))) Я МОГУ ВИДЕТЬ БУДУЩЕЕ ЧУВАКИ ПРОСТО ИЗИ
Никто Никакой да не, уже третий год, а все збс, обновы клепают, в марте будет новая карта
В смысле 3й год? Пубж в паблик вышел в 2017. Он анонсирован был только в 2016.
Беларуский АЙТИшник, оо, привет) ну в 2016 уже альфы были, и геймплей есть в инете, я взял за начало отсчёта 2016, наверно не прав, ну тогда 2 года
У вальве хотя бы игры получше сделаны. Тоже дыры есть, но они не доступны большинству игроков. А только читерам.
Там не получится с респа убить всех и через стены пулять. А в пабжике - нефиг делать.
И античит вальве хотя б работает и это видно. А здесь никакой инфы нет. Они набздели что 100 000 забанили. А как это проверить? Никак.
У видео самый высокий лайк/дизлайк рейтинг что я видел) Вполне заслуженно, очень интересно, спасибо
Уже нет, ктото дизов посыпал(
Годно, поставил лайки на детальные разборы мыла и богомерзкого неткода ПАБГа.
*Так, стоп! Выходит, что ты нашёл новый баг о котором пока что знает малое кол-во людей и данный способ можно юзать. Хмм, великолепно.*
Молодец, показал людям лагсвитч) В определенных кругах этой теме уже много лет и вообще подобное на уровне чита рассматривается, т.е. банят за это на раз.
И по поводу пинга ты конечно все верно сказал, но, как и все, ничего про протоколы конкретной игры нет. Т.е. о том, что пинг показывает инфу по icmp, а реальная задержка идет по udp, потому что и данные передаются по udp, ты ничего не сказал. Хотя большинству и так пофигу, что там и как.
Кроме этих двух пунктов - хороший контент. Да и вообще красава, что поднимаешь подобные вопросы, т.к. обычно пилят видосы аля "Как поднять фпс в 1000раз прописав 2 строчки в реестре".
Кулхацкер не по годам
Блин, такой уникальный контент
Молодец, как по полочкам! Сделай пожалуйста такой же разбор полетов к escapefromtarkov?
Много запросов на тарков. Попробую
оч годно, удачи тебе сябр :D
Кстати, больше чем OMAE WA из кулака северной звезды подошёл бы ZA WARUDO из ДжоДжо.
И да. Найс "шум" на арте с 002 в конце, можешь создать отдельный файл и кинуть ссылку?
Не зря все-таки подписался. Но вот вопрос: а по другим играм сетевым такой разбор будет?
Ну-с. Понятное дело, пубж на пике хайпа. Хорошо помогает привлекать аудиторию на канал. Но по другим играм тоже будут разборы.
Для мониторинга тикрейта юзал Wireshark. Плюс мне подмогла маленькая прога NetLimiter 4
Беларуский АЙТИшник а как ты кратко временно разрывал соединение ?
Беларуский АЙТИшник спасибо за контент)
я маленькую прогу написал что бы на хоткей можно было дисконектиться и обратно подрубаться
а где можно скачать программу?) подходит для всех онлайн игр?
Подойдет наверняка для многих игр. Но я не выкладывал никуда. А то еще распространителем читов стану))
Большое спасибо за видео. Может сделай видео как можно повысить тикрейт, пинг и т.д.
Вот это эксклюзивный контент)
Отличные интересные видео! Продолжай в том же духе.
Хорош )
Лишний раз подкрепил моё не желание играть в ПУГБ...
Спосибо за видос.
Как тебе battlefield 1 или 4 в плане оптимизации? мне кажется там всё норм "отлично".
Ну там пацаны не первый день сетевой движок пилят, уже научились. Хотя там тоже например нет шифрования трафика и там тоже есть радар. Правда нафига нужер радар для батлы и батлфронта я не знаю. Но. 64 игрока, тикрейт 60 это отменно.
Братан сделай подобные видосы по warface и контрухе.
На реакцию очень легко выявлять читеров.
Если чел уже знает что ты выходишь то он начинает стрелять раньше и ты моментально ловишь пули.
Никакого секундного бонуса у тебя не будет)
Начало орное. Жиза жизулечка))
Кстати. Заметил, когда в шутерах хреного залетает, то и звук тише и графон мыльнее и отдача гораздо больше, чем должна быть, как бы странно это не звучало, но такая тенденция с взаимосвязью прослеживается мной уже очень давно. Особенно это заметно при прослушивании шагов и стрельбой в том же пабге и в кс гоу такая же тема, из прицелов выше Х3 вообще стрелять нереально становится.
Супер давай ещё очень занимательная тема!
Уже пилю
Плиз такой же обзор на Escape from Tarkov там сейчас это актуально очень
Хай, топ контент! Забыл под каким прошлым видео задавал этот вопрос, повторюсь. Есть игра escape from tarkov, на юнити. Сетевой код просто ад, пубг в сравнении идеален. Да, бета, бла бла бла. Короче, не мог бы объяснить, где нас наё..манывают, говоря, что это проблема именно движка, что из за большой карты, миллиона объектов которые нужно синхронизировать, такие жуткие десинки в несколько секун, не регистрация урона и тд и тп.
Пилить контент к игре куда проще чем сделать стабильное сетевое ядро. У меня нету таркова, но уже много просят. Попробую когда-нибудь
Беларуский АЙТИшник если найду ключ, обязательно скину. Просто есть ощущение, что где то обманывают, покрывая свою лень. Это же основа основ для хардкор шутера претендующего на сверх реализм. И за несколько лет работы над текущим продуктом + опыт работы с юнити в целом, не даёт им вообще никаких результатов. Может мы (подписота) скинемся на минимальный пак, чтобы ты обозрел всё своими глазами? )
годный видос, а есть ли способ что-то с этим сделать, может в конфигах что-то прописать, чтобы тикрейт выше был, по крайней мере сервер максимально насколько он могёт тебе его выдавал, и да, как разорвать соединение на 2 сек
ничего нельзя сделать. для разрыва я прогу писал
Расскажи про Rainbow Six Siege, или The Division 2 типа там новыц движок SnowDrop.
Очень интересные видео у тебя, спасибо за контент
спасибо. приятно
Теперь вроде понял ) но радостнее от этого не стало, хех) Похоже, если хочешь играть с минимальными задержками - переезжай в америку, так как амазоновские серваки сейчас почти все игровые сервисы юзают вроде как
Как говорится полезно знать :)
Спасибо очень все доступно и понятно. Сделайте пожалуйста новое видео о пабг , после последних патчей .
будет будет. жду когда они патчи все актуальные применят. у них там целая очередь уже образовалась
Вот кстати... Вышел патч на 900 мегабайт... в нем вроде как добавили функцию на сервера выравнивать игроков по пингу
А в последнем патче вроде как раз что то про подбор игроков с примерно одинаковым пингом было.
Молодец всё понятно обьяснил,советую глягуть батлнонсенс и брать пример.
Расскажи про фортнайт overwstch и сдедай обзор кс
Людям будет интересно#esports ready
Супрер, ещё видео про пубг и новый колду
уже пилю про колду
круто, Спасибо! Пили ещё по обновам )))
Святая годнота
то что игрок умерает уже будучи забежавшим за стену, это не проблема неткода или низкого тикрейта, это обычная анлаг стрельба или стрельба по клиенту, если сделать стрельбу по серверу как в quake3 то такой ситуации не будет, а вот хак с вырубанием интернета легко фиксится с небольшой логикой на отброс устаревших по времени пакетов, ну и хакнутая страничка ничего не дает, можно не фиксить.
Хорошее видео, неплохо было бы еще узнать как тикрейт влияет на производительность пк. Не зря же его занижают.
Да. Чем реже нужно симулировать разные события и синхронизироваться, чем меньше нагрузка на пеку. Но все же больше всего напрягается сервак. Его же бомбят тиками все подключенные клиенты и он каждому должен отдать свою пачку данных.
Ну это понятно, хотелось бы на конкретных цифрах увидеть на сколько фпс будет разница между 30 и 60 гц например. В батле четвертой вон даже до 144 гц можно сервер сделать.
хм. есть одна идейка. косвенная. Но на самом деле разница может быть не большой.
Давай видео о том, как работает графический движок WoW
Вроде как патч #14 изменил тикрейт на 64.. Может заново потестишь данное изобретение корейских умов?? По ощущениям вроде приятнее стало.
враньё, всё стало ещё хуже!
боже. какая жесть. спасибо за контент! можно ли узнать какие сейчас, в 2024, тикрейты на сервах?
Да все можно. Почти в любой игре можно узнать ruclips.net/video/TxLZkME0mnY/видео.html
@@bel_itman слушай, круто! спасибо)
годный контент, подписка однозначно
Трафик не шифруется?!
Вот сегодня наткнулся на Radar Pubg. Офигеть!
Вчера-сегодня появилась куча видео по ней.
Жуть какая-то!
Уже запиливаю новый видос. Скоро будет))
Господи, почему у тебя на 100% уникальный и качественный контент , но 8к подписчиков , а у кухни 160к , надеюсь ситуация изменится в обратную сторону !
Подписчик идет. Сейчас буду пилить о других играх что-нибудь
Качественный контент ежжи.
Айтишник подскажи как в наших реалиях найти работу студенту программисту? Ну какие знания на практике стоит иметь? Допустим есть знания плюсов ассемблера джавы. Знаю что этот вопрос не подходит под формат видео, но ты сильный программист ,это видно, мб дашь совет?
Я не сильный программист)) Но. Делай, то что нравится. Постоянно что-то делай. Складывай свои проектики в паблик/прайват репы. Приведи в порядок линкедин профиль. Кидай реквесты на вакансии. Наверняка джуном возьмут куда-то. А там, если будешь шевелиться, и до мида раскачаешься и до сеньора. Потом тебе сами будут работу предлагать, а не ты искать. Я уже несколько лет сам никуда запросы не отправлял, сами все предлагают.
Беларуский АЙТИшник благодарю, надо бы еще в сленге разобраться :)
Интересен разбор сетевой части Танков к примеру, какой там тикрейт и почему там сервер не доверяет клиенту и все довольны?
Посмотрим, они же обнову движка готовят. Надо будет заценить
Такой вопрос: насколько дорого шифрование сетевых пакетов для синхронизации с сервером и валидация на сервере? Мне как айтишнику совершенно понятно как бороться с читерами в играх, но сам я не разрабатывал. Это, видимо, нецелесообразно из-за вычислительных ограничений, вот интересно, где боттлнек, в пропускной способности сети или мощности сервака?
Ответьте пожалуйста, так где выгоднее играть. На EU сервера, где вроде бы пинг меньше, или все таки пробовать лагать на Азии JP или NA серверах, где выгоднее пушить, или наоборот лучше вообще не играть?
Нихера не понял, но было интересно. Лойс.
Интересно как работает графика и сетевой движок у BF1
По батле есть только рендер таймлапс ruclips.net/video/QVag9DM2sRU/видео.html
Бля,чел,ты запарил.Афигенное видео и афигенный контент,но я тебе уже писал:перезаписывай свои неудачные дубли.Почему ты этого не делаешь?
Это на самом деле уже после нескольких перезаписей
Ты чо,весь текст одним дублем говоришь?
Да. Мне адово некомфортно писать кусочками. Хотя писать по абзацу было бы качественнее.
Ооооо,тогда понятно.Не,чел,это лень.Комфорт тут вообще не причем.Расстроил ты меня.Давай хотя бы по абзацам начни.Поверь:от технически высокого сделанного ролика,твоя популярность только увеличиться.Не забывай,что не единым контентом живем на ютубе в 2к18
Супер! Можешь музыку скинуть из видео?
Музыка использованная в видео:
pdj.cc/frnNX
pdj.cc/frodO
pdj.cc/frsvu
pdj.cc/frs9I
pdj.cc/frsjo
Добрый день. Наиграл в ПУБГ почти тысячу часов, естественно как и все мучаюсь из-за высокого пинга, постоянных лагов и разрывов соединения. В СНГ регионе принято играть на EU так как самый низкий пинг... Но я заметил закономерность и начал проверять. Во время игры на EU часто сталкиваюсь с такой ситуцией - при прицельном огне по человеку (допустим он находится вне укрытия и не двигается) на EU для нока приходится выпустить от 10 до 15 (а то и 20ти) пуль в авто режиме, значит ли это что часть из них не учитывается сервером? На сервере к примеру NA ситуация иная, там и двери открываются сразу и парашют не зависает в самых неожиданных местах, и на убийство уходит от 5 до 10ти патронов. мой пинг до NA как правило не ниже 290мс до EU 120мс. не могли бы вы провести сравнение? и если ситуация подтвердиться пояснить почему так...
В WarFace измеряли, 12-17 тикрейт. У кого пинг низкий, еще что-то как-то, а с пингом 40+ (спасибо тебе Ростелеком) играй наугад называется.
Мужик, сейчас также как и раньше было, используются игровые циклы? т.е. идет одна итерация, прорисовка карты, обработка столкновений, получение координат игроков и.т.д. все последовательно в одной итерации. Или уже давно используется многопоточность? Просто интересно, возможен такой сценарий, чтобы у меня был тикрейт 124 Гц, но количество кадров стояло например 60 FPS? Или тикрейт всегда меньше или равен FPS? Пардон за нубский вопрос, единственный мой опыт в разработке игр был в школьные времена, и там мы использовали главный игровой цикл, и скорость перемещения имела коэффициент переменной "время". А сейчас многоядерные процессоры в тренде, и наверное уже во всю используется многопоточность.
Сервер будет бомбить инфой независимо от твоего фпс. Но ты будешь меньше тиков отправлять серваку если у тебя низкий фпс.
Сделай пожалуйста разбор сети overwatch
Так стоит ли надеется на исправление ситуации? Поможет ли открытие российского сервера? Когда покупал даже не думал что такие проблемы будут.
Все круто, но плиз погромче
1 раз зайдя в коменты стал отличником по информатике.
Эксперимент неправильно поставили. 1-й игрок отключается на секунду высовывается и стреляет, а второй стоит на месте. Если бы второй отошел в это же время в сторону, тогда можно было показать, что клиент типа считает попадание, а не сервер, потому что на клиенте второй игрок стоял туда куда пуля летела, а на сервере игрока там уже не было. Но скорее всего этого как раз и не произойдет, пуля там серверная.
А так вы показываете что в ситуации частичной потери пакетов сервер отрабатывает предсказуемо. Если таким делом кто злоупотребляет, его должен карать уже банхаммер под надзором BattleEye.
Делали и такое. Но я запись забыл включить. Впрочем это уже после фикса. Раньше вообще можно было довольно долго бегать расстреливать людей вот так вот в оффлайне.
кстати еще проблема такая, игра эта EFT. не нагружает видеокарту на 100% т.е скачет 50-70% и при этом фпс низкий подскажи как заставить игру нагружать на 100% может через дрова как то?игра эта на юнити тоже
спасибо за видео. Вопрос, а как разорвать коннект?
Способов тыщи
пару примеров подскажите ))
Реально интересно... Я думал меня из-за пинг все время из будущего убивают) а оказывается там ещё и читаков безнаказанно таким же методом поощряет
Роман Малафеев Ты видишь противников в прошлом а себя в настоящем. Противники у себя на клиентах видят тебя в прошлом а себя в настоящем. Причем с двойным пингом. Так как сообщение о изменении позиции условного Васи идет сначала на сервер а с сервера к тебе. Попасть в таких условиях в голову, когда все быстро бегают - невозможно. Потому придумали хак. И назвали его метод компенсации лагов. То есть ты отправил на сервер сообщение о том, что выстрелил Васе в голову в момент времени t. На сервер оно дошло с опоздание из-за пинга. Сервер отмотал игровой мир, твою позицию и позицию Васи к моменту t и проверил корректность выстрела. Потом послал Васе сообщение, о том, что Вася - труп. Оно естественно дойдет с опозданием опять из-за пинга. Вася уже убежал за угол, но он уже труп. Он умер еще в момент t но узнал об этом, спустя время. :-)
Я думаю, сервак в пубжике особо ничего не валидирует. Большая нагрузка, нет времени на валидацию, поэтому есть читы где ты можешь кулаками убивать на расстоянии
Проверил бы еще для сравнения американский сервер, как по мне там стабильней, есть подозрение, что там тикрейт выше.
И у меня такое мнение. На американских серверах с пингом 150+ комфортнее играть чем на евро с 50-80...
Поправок нет, спасибо за видео
omae wa mou shindeiru!
nani?
2:53 что-то не так с вашими 60 Герц. Больше похоже на 10. 60 Герц - это плавнее Хобита взад назад.
Не думал, что в современных играх еще существует такая сетевая модель. Т.е. мало того, что предсказание/компенсацию лага не делают, еще и Клиент решает попадания.
Откуда у разрабов такие кривые руки? Не успели? Забили болт? Серверных ресурсов не хватило для просчета? Из-за p2p(слышал, что используют)?
10:40 xss тоже канает? есть куда скрипт вписать? я просто хз, в пубг не играл
Про то что нужно быстро выглядывать и стрелять: всё равно же у противника ты сначала появишься из-за укрытия, а только потом начнёшь стрелять, то есть у него будет точно такое же время среагировать как если бы пинга не было вовсе, или нет?
pamahite нет. Он уже мертв
за стеной, после того как я пострелялся и спрятался, я умираю регулярно, а так чтобы меня убили из ниоткуда (до того как человек появлися у меня на экране) за 1к часов пока не было. я понимаю про разрыв соединения, но без этого "приёма" я не могу представить себе, чтобы проходил урон до того как на экране появился его источник
Где ты всему этому научился?))
В интернетах
Попробуй разобраться в Escape From Tarkov
попробую