Size: a a a

2020 October 12

ЦЦ

Цап Царап in Unreal Engine
NoCodeBugsFree
да, было дело. не тот инстанс дебажил ))
Нажимаю на Play, он мне сразу выводит строку на экране, но паузу не делает((
источник

ЦЦ

Цап Царап in Unreal Engine
т.е. точки то вроде ставлю там где надо)
источник

AD

Aleksei DTG in Unreal Engine
Цап Царап
Нажимаю на Play, он мне сразу выводит строку на экране, но паузу не делает((
Инстанс-то тот выбран? NoCodeBugsFree правильно подсказывает
источник

ЦЦ

Цап Царап in Unreal Engine
Aleksei DTG
Инстанс-то тот выбран? NoCodeBugsFree правильно подсказывает
Блин, я не про то подумал...Действительно, проблема в инстансе. Я просто когда ставил точку остановки на PlayerPawn, он у меня 2 раза на ней спотыкался(на мне и на боте). Я подумал, что с анимацией будет так же, но видимо нет
источник

ЦЦ

Цап Царап in Unreal Engine
NoCodeBugsFree
да, было дело. не тот инстанс дебажил ))
Спасибо!
источник

N

NoCodeBugsFree in Unreal Engine
Цап Царап
Спасибо!
источник

Ю

Юрий in Unreal Engine
Кто-нибудь может подсказать как в анриле работает экстраполяция сущностей? Статейка мо быть какая...
источник

n

norlin in Unreal Engine
Юрий
Кто-нибудь может подсказать как в анриле работает экстраполяция сущностей? Статейка мо быть какая...
а что имеется в виду вообще? что такое "экстраполяция сущностей"?
источник

Ю

Юрий in Unreal Engine
dead reckoning
тот самый кейс когда клиент А не обладает актуальной информацией о местоположении клиента Б и ему приходиться домысливать
источник

Ю

Юрий in Unreal Engine
в исходниках я вродь как нашел код который этим таки занимается но как то понять все что там накодировано сложно
источник

n

norlin in Unreal Engine
а, по сети я не подскажу, опыта с ней в анриле очень мало.
источник

n

norlin in Unreal Engine
можно гуглить network prediction или как-то так
источник

Denis Кришнаход... in Unreal Engine
Была статья по halflife и еще одна большая научная книга, больше ничего толкового по сетевой экстраполяции не встречал до сих пор.
источник

Ю

Юрий in Unreal Engine
Denis Кришнаход
Была статья по halflife и еще одна большая научная книга, больше ничего толкового по сетевой экстраполяции не встречал до сих пор.
а где их найти не подскажете?
источник

МЛ

Михаил Лукьянов... in Unreal Engine
ну эта штука... считай по уровню сравнима с пресловутой теорией "Всего"
ведь задача экстраполяции предсказать математически действия игрока с достаточно высокой точностью. Алгоритмов не так много существует.
Обычно, как самый простой и относительно действенный вариант - это вынос игровой логики (движений, стрельбы и прочих активностей, которые одномоменто может выполнить игрок каким-либо путем воздействия) за игровой тик (сабтики, треды с константным временем шага, итд). В общем любой метод, который позволяет как можно больше сблизить игровые обновления клиента с обновлениями сервера.
В таком сценарии если сетевое отклонение, из-за потерь, или пингов и будет, то оно будет относительно небольшое, и их можно добить обычной интерполяцией данных через промежуточное значение.

Минус такого подхода - зависимость от железа, поэтому игры, которые этот метод используют как правило уходят в полный авторитарный сервер, который крутится на офигенно крутом железе (Elite: Dangerous, Star Citezen, как пример, где такой метод используется на данный момент). Но из-за его фактической простоты реализации используется почти везде в том или ином виде.

Есть метод предсказания, где интерполяция происходит без участия сети по факту. Тут сам клиент думает где он должен бы оказаться и подталкивает игрока к этому месту, слегка воздействуя на инпуты. Но он гораздо сложнее, и как правило более непредсказуем. Используется по этой причине редко, но активно разрабатывается (на факультативной основе)
источник

МЛ

Михаил Лукьянов... in Unreal Engine
с dead reckoning конкретно все более сложно.
Как правило, используется один из двух вариантов
1) Зажатая клавиша - В случае пропадания соединения, сетевая сущность рекурсивно залипает на последнем пассивном действии (если игрок), или на активном и пассивном действии (если ии). В первом случае, если сеть восстановилась то игрок телепортируется (или мягко перемещается через интерполяцию) в нужные координаты. Активные действия (стрельба) не засчитываются. ИИ же либо действует по тому же сценарию, либо в момент восстановления сети пытается обменятся всеми выполненными действиями, а сервер уже решит что засчитать, а что нет в зависимости от собственной дельты.
2) Idle - все ровно тоже самое, но в этом случае игнорируются любые действия как ИИ, так и игроков до момента восстановления, за исключением пассивных собственных действий отвалившегося клиента.

в UE реализован второй метод как метод по умолчанию. Детали программируется.
источник
2020 October 13

LB

Leonid Bilousov in Unreal Engine
мигрейтнул материал с Custom Expression с одного проекта на другой (версия проекта совпадает). В оригинальном проекте все работает, в другом  ошибки (в основном что то вроде [SM5] /Engine/Generated/Material.ush(1886:22): error: reference to local variable 'VariableName' declared in enclosing function 'CustomExpression0')
Чего может не хватать?
источник

ДК

Денис Кузнецов... in Unreal Engine
Leonid Bilousov
мигрейтнул материал с Custom Expression с одного проекта на другой (версия проекта совпадает). В оригинальном проекте все работает, в другом  ошибки (в основном что то вроде [SM5] /Engine/Generated/Material.ush(1886:22): error: reference to local variable 'VariableName' declared in enclosing function 'CustomExpression0')
Чего может не хватать?
Нигде скобки фигурные не потерял?)
А то говорит, что функция не закрыта
источник

Denis Кришнаход... in Unreal Engine
Юрий
а где их найти не подскажете?
Очень неплохо есть такой классический пример из халвы,тим форттреса и из сорса движка как он проводит экстраполяцию все идентично. Например враг стреляет в вас во время лага или задержки пинга, вы стоите или заворачиваете за угл и пуля по идее на сервере врезается в стену. Для игрока это выглядит следующим образом вы замечаете что снайпер в вас сейчас выстрелит нырете за стену и уже мгновение думаете что пронесло, но сервер вас убивает как будто вы не успели скрыться вовремя. Насколько помню халву и сорс там сервер авторитарный который пишет всю историю игрока Снапшутинг до нужного момента чтобы отмотать спорный момент и решить кто сдохнет 😂. Тривиальный момент для сетевого гуру и вовсе не тривиальная задача для имплементации на сервере ибо даже в ААА шутанах в больших компаниях иногда ложили болта на это как и Эпики в своей реализации. Сорс один из лучших решений так как он расситан вообще на отклонения в пинге как и должно быть для CS,Halflife,TF соревновательных шутеров. Насколько помню базовые алгоритмы там брались из открытых исходников Дума так как там были одни из первых таких наработок в зачаточном состояние. https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking
источник

Ю

Юрий in Unreal Engine
Михаил Лукьянов
ну эта штука... считай по уровню сравнима с пресловутой теорией "Всего"
ведь задача экстраполяции предсказать математически действия игрока с достаточно высокой точностью. Алгоритмов не так много существует.
Обычно, как самый простой и относительно действенный вариант - это вынос игровой логики (движений, стрельбы и прочих активностей, которые одномоменто может выполнить игрок каким-либо путем воздействия) за игровой тик (сабтики, треды с константным временем шага, итд). В общем любой метод, который позволяет как можно больше сблизить игровые обновления клиента с обновлениями сервера.
В таком сценарии если сетевое отклонение, из-за потерь, или пингов и будет, то оно будет относительно небольшое, и их можно добить обычной интерполяцией данных через промежуточное значение.

Минус такого подхода - зависимость от железа, поэтому игры, которые этот метод используют как правило уходят в полный авторитарный сервер, который крутится на офигенно крутом железе (Elite: Dangerous, Star Citezen, как пример, где такой метод используется на данный момент). Но из-за его фактической простоты реализации используется почти везде в том или ином виде.

Есть метод предсказания, где интерполяция происходит без участия сети по факту. Тут сам клиент думает где он должен бы оказаться и подталкивает игрока к этому месту, слегка воздействуя на инпуты. Но он гораздо сложнее, и как правило более непредсказуем. Используется по этой причине редко, но активно разрабатывается (на факультативной основе)
Что то совершенно не понял часть про метод предсказания, где интерполяция происходит без участия сети по факту.
Если вы имеете ввиду, что этот метод применяется не к другим игрокам, а к нам самим, то получается, что этот метод будет использован в случае когда сервер решит что клиент не там где клиент на самом деле есть, но мы вместо того что бы подкорректировать как-то мнение сервера, корректируем мнение клиента?
Если же вы говорите про то, что этот метод будет применяться к другим игрокам, которых видит наш игрок, то это получается по факту тот же dead reckoning. По крайней мере, если верить тем статьям, которые я читал.
источник