Страница 1 из 1

Синхронизация падающего supply ящика

СообщениеДобавлено: 13 дек 2016, 09:18
novavision
Приветствую.

У меня несколько нестандартная задача по синхронизации Rogidbody объекта по сети. Я использую PhotonUnityNetworking.
Вот прототип того, как выпадает этот самый ящик. Видео

Ящик синхронизируется по Transform и Rigidbody, но по факту, у клиентов в мультиплеере зачастую появляется баг, когда ящик прыгает/дергается на месте. Как я предполагаю это из-за коллизий с поверхностью на самом клиенте, когда как на мастер клиенте (хосте) позиция ящика отличается клиентской позиции.

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

Я пытался найти возможные решения в сети, но безрезультатно.
Есть еще одна сложность - нужно чтобы ящик при падении взаимодействуя с коллайдерами объектов на сцене не переворачивался. Другими словами немного корректировать его физику предоставляя только определенный диапазон в ~ +/- 30 градусов по X и Z осям.

В итоге у меня слишком много вопросов, и нет ответов.. Нужна помощь в виде толкового совета )
Заранее спасибо

Re: Синхронизация падающего supply ящика

СообщениеДобавлено: 13 дек 2016, 12:57
Syberex
Вообще-то так не делают, ящики падающие по сети не синхронизируют, есть смысл спавнить синхронизованно, задавать точку приземления и синхронизировать момент срабатывания/уничтожения/исчезания.

Re: Синхронизация падающего supply ящика

СообщениеДобавлено: 16 дек 2016, 18:32
novavision
Syberex писал(а):Вообще-то так не делают, ящики падающие по сети не синхронизируют, есть смысл спавнить синхронизованно, задавать точку приземления и синхронизировать момент срабатывания/уничтожения/исчезания.

Вообще я так и предполагал изначально, только вот есть 1 НО - что если ящик на 1 клиенте падая задевает объект (персонажа например) и взаимодействует с динамическими твердыми телами на сцене, а на 2-ом клиенте нет? (из - за рассинхронизации каких-либо объектов например, или "разброса" взаимодействия физики. Получается нужно просто полностью убирать с ящика твердое тело?

Re: Синхронизация падающего supply ящика

СообщениеДобавлено: 17 дек 2016, 20:31
Syberex
Это уже частные случаи, все их исключить очень трудно, не стоит зря тратить время. Вот если у вас начнутся массовые проблемы с этим, тогда да надо будет разбираться, искать решение :)

Re: Синхронизация падающего supply ящика

СообщениеДобавлено: 22 дек 2016, 07:52
novavision
Спасибо, сделаю по такой логике. Для меня вообще много неясностей по этим сетевым логикам.. В плане не понятно, как с подобными задачами справляются game dev компании высокого уровня. Все-таки хотелось бы сразу идти по верному пути. Вот например, смерт персонажа и инициализация его трупа, который еще в добавок и может куда-то улететь (упасть в яму, с обрыва) на 1 клиенте, но остаться на краю у 2-ого клиента. Так вот, в моем случае мне пришлось инициализировать по сети нового персонажа (максимально облегченного по скриптам и 3D объектам), и подгонять его позиции костей и тела под те, какие были параметры у реального персонажа на момент смерти и только потом запускать ragdoll для симулации смерти.. Вот на 100% уверен, что это корявое решение, но как его реализовывают "по уму", не знаю...

Re: Синхронизация падающего supply ящика

СообщениеДобавлено: 22 дек 2016, 08:30
Syberex
Дак скорее всего без разницы как труп после падения лежит на одном экране и на другом :ymparty:
Это же не меняет игровой процесс ... если конечно игрокам не требуется снимать с него ботинки ;))

Re: Синхронизация падающего supply ящика

СообщениеДобавлено: 22 дек 2016, 10:55
novavision
Syberex писал(а):Дак скорее всего без разницы как труп после падения лежит на одном экране и на другом :ymparty:
Это же не меняет игровой процесс ... если конечно игрокам не требуется снимать с него ботинки ;))

Да, именно про лут и идет речь. Могут быть случаи когда входя в зону лута (сферический колайдер) персонаж будет лутать пустое место :)

Re: Синхронизация падающего supply ящика

СообщениеДобавлено: 22 дек 2016, 11:24
Syberex
Тогда именно лут и надо синхронизировать, а не труп :-w