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

Сеть в Unity3D

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

Сообщение novavision 13 дек 2016, 09:18

Приветствую.

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

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

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

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

В итоге у меня слишком много вопросов, и нет ответов.. Нужна помощь в виде толкового совета )
Заранее спасибо
Аватара пользователя
novavision
UNITрон
 
Сообщения: 158
Зарегистрирован: 05 ноя 2014, 19:21

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

Сообщение Syberex 13 дек 2016, 12:57

Вообще-то так не делают, ящики падающие по сети не синхронизируют, есть смысл спавнить синхронизованно, задавать точку приземления и синхронизировать момент срабатывания/уничтожения/исчезания.
Аватара пользователя
Syberex
Адепт
 
Сообщения: 2292
Зарегистрирован: 14 янв 2011, 20:35
Откуда: Кострома
  • Сайт

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

Сообщение novavision 16 дек 2016, 18:32

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

Вообще я так и предполагал изначально, только вот есть 1 НО - что если ящик на 1 клиенте падая задевает объект (персонажа например) и взаимодействует с динамическими твердыми телами на сцене, а на 2-ом клиенте нет? (из - за рассинхронизации каких-либо объектов например, или "разброса" взаимодействия физики. Получается нужно просто полностью убирать с ящика твердое тело?
Аватара пользователя
novavision
UNITрон
 
Сообщения: 158
Зарегистрирован: 05 ноя 2014, 19:21

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

Сообщение Syberex 17 дек 2016, 20:31

Это уже частные случаи, все их исключить очень трудно, не стоит зря тратить время. Вот если у вас начнутся массовые проблемы с этим, тогда да надо будет разбираться, искать решение :)
Аватара пользователя
Syberex
Адепт
 
Сообщения: 2292
Зарегистрирован: 14 янв 2011, 20:35
Откуда: Кострома
  • Сайт

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

Сообщение novavision 22 дек 2016, 07:52

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

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

Сообщение Syberex 22 дек 2016, 08:30

Дак скорее всего без разницы как труп после падения лежит на одном экране и на другом :ymparty:
Это же не меняет игровой процесс ... если конечно игрокам не требуется снимать с него ботинки ;))
Аватара пользователя
Syberex
Адепт
 
Сообщения: 2292
Зарегистрирован: 14 янв 2011, 20:35
Откуда: Кострома
  • Сайт

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

Сообщение novavision 22 дек 2016, 10:55

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

Да, именно про лут и идет речь. Могут быть случаи когда входя в зону лута (сферический колайдер) персонаж будет лутать пустое место :)
Аватара пользователя
novavision
UNITрон
 
Сообщения: 158
Зарегистрирован: 05 ноя 2014, 19:21

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

Сообщение Syberex 22 дек 2016, 11:24

Тогда именно лут и надо синхронизировать, а не труп :-w
Аватара пользователя
Syberex
Адепт
 
Сообщения: 2292
Зарегистрирован: 14 янв 2011, 20:35
Откуда: Кострома
  • Сайт


Вернуться в Сеть

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1