Войти
ПрограммированиеФорумСеть

Объясните на пальцах тыры пыры девять десять - как правильно синхронизировать передвижение.

Страницы: 1 2 38 9 Следующая »
#0
10:05, 8 авг. 2015

Не могу понять как работать с ping что отправлять и через сколько чтобы время в lerp клиента не запаздывало "всегда".
Как я понял для онных целей частота обновления на сервере должна быть меньше клиентской.

Не нужно никчемной нудятины от valve от которой нет никакого практического толку.
Хочу рабочий пример на С# unity3d + чистые сокеты!;)


#1
12:36, 8 авг. 2015

Без нудятины не выйдет. Есть такое слово "экстраполяция", с ним придется ознакомиться и реализовать в своей физике. Насколько подробная нужна экстраполяция - зависит от игры, иногда сойдет и линейная, простенькая, но не всегда. Бывает что и полноценную физику запускать приходится для этого.
Во все пакеты включаются метки времени.

Сокеты тут вообще ни при чем.

#2
12:38, 8 авг. 2015

Семёныч
Если тебе даже туториалы кажутся сложными, то тебе лучше заняться чем нибудь другим. Программисты зарабатывают хорошо, но не все, таким как ты никто много платить не будет. Тебе лучше другую профессию найти. Например иди асфальт класть.

#3
12:44, 8 авг. 2015

Семёныч
> Не нужно никчемной нудятины от valve от которой нет никакого практического
> толку
Если ты про ту статью, о которой я подумал, то сочувствую. Это один из самых простых материалов.

#4
13:48, 8 авг. 2015

Семёныч
> Не нужно никчемной нудятины от valve от которой нет никакого практического
> толку.
> Хочу рабочий пример на С# unity3d + чистые сокеты!;)

Такие дешевые понторезы идут сразу в лес...
Документация ему видите ли нудятина, готовый код на блюдечке подавай.
Школу сначала закончи...

#5
15:26, 8 авг. 2015

Zab
Мне нужно понять не то сколько времени на клиенте добавить а то на сколько притормозить сервер. 90% примеров что я нашел в сети вообще это никак не учитывают! А 10% оставшихся я не могу отыскать...

9К720
Они не кажутся мне сложными в них нет необходимой мне практической пользы.

tumblerr
Так в том то и дело чтобы понять мне нужен пример на чистых сокетах, т.е. без использования стандартной сетевой подсистемы unity .

Если бы я задал вопрос по другому я бы получил ссылку на valve статью или на не нужные мне примеры с unity network, photon.
Потом вылез бы какой-нибудь паренек и задвинул бы про erlang и пр - все это мне не нужно ;)

#6
16:03, 8 авг. 2015

Семёныч
> на сколько притормозить сервер
Что значит "притормозить сервер"?

#7
16:04, 8 авг. 2015

Для разных объектов надо "притормаживать" на разную величину, лаги то до каждого клиента индивидуальны и отличаются на несколько порядков.
Код сетевого модуля тебе и не может ничего объяснить, ибо к транспортному уровню сети компенсация лагов не имеет никакого отношения. Реализация обычно живет внутри кода объектов-представителей.
Поскольку надо засекать время, придется еще и с синхронизацией таймеров помучиться. В винде есть механизм синхронизации, но он запросто может оказаться отключен.

#8
20:05, 8 авг. 2015

Семёныч
> не то сколько времени на клиенте добавить а то на сколько притормозить сервер
сервер ненада тормозить, это система массового обслуживания, а добавить время это практически ничего не стоит и никого не тормозит : )

#9
4:50, 9 авг. 2015

Sh.Tac.
> сервер ненада тормозить, это система массового обслуживания, а добавить время
> это практически ничего не стоит и никого не тормозит : )
Как ничего не стоит? - мало того что клиент и так из за пинга притормозит так еще и добавится доп. время на сглаживание передвижения.
Если сервер притормозить т.е. понизить фпс обработки физики/логики он и реально тормозить меньше будет :)
Просто до того как мне эта тема стала интересной я просматривал пример где что-то подобное делалось...

#10
5:59, 9 авг. 2015

Семёныч
Объясни, как ты хочешь это делать?
Чем больше будет тормозить клиент, тем больше у тебя будет тормозить клиент.

#11
7:28, 9 авг. 2015

Все я понял в чем моя проблема... в надежде уменьшить размер отправляемых пакетов, я склеивал изменения в один большой, не подумав об очередности событий - это приводило к тому, что иногда игровые персонажи выкакивали стенки до момента перемещения в нужную клетку.

#12
8:03, 9 авг. 2015

лаг варьируется от 4мс до 1 секунды. Что с этим собрался делать? Когда то были игры, работающие синхронно, первый дум, к примеру, но сейчас таких не найдешь, в интернете они нежизнеспособны.

#13
15:59, 17 сен. 2015

Привет!

Поделитесь пожалуйста ссылками  на качественные реализации интерполяции, предсказания и лагокомпенсации для сессионного шутера.
Очень нужна качественная информация. Статья от Valve очень абстрактная, как и весь топ гугла. Язык русский или английский.

Спасибо

#14
17:41, 17 сен. 2015

Сначала хотя бы реализуй, чтобы всё работало гладко, но мир обновлялся с задержкой относительно твоих нажатий клавиш.
Задержка неизбежна в любом случае, потому что узнать, какие клавиши нажал Вася, быстрее, чем среагрует сеть, ты не можешь.

Экстраполяция - это просто костыль, который скрывает задержку, чтобы казалось, что всё реагирует моментально. Я его не реализовывал в своей игрухе, но мне кажется, что это как раз самое простое в сетевой игре.

Zab
> лаг варьируется от 4мс до 1 секунды
Это где такое говно, что 1 секунда? Везде кикают за пинг больше 100.

Страницы: 1 2 38 9 Следующая »
ПрограммированиеФорумСеть

Тема в архиве.