Синхронизация столкновений по сети.

Синхронизация столкновений по сети.

Сообщение WebWolf 11 сен 2012, 22:03

Привет. Не можем избавиться от бага синхронизации столкновений. При столкновении танков на фотоне они разлетаются в разные стороны, как буд то один коллайдер вошел в другой. Подскажите пожалуйста как лучше сделать синхронизацию столкновений? Пробовал скрипт из юнити примера с интерполяцией NetworkRigidbody.. от него танк движется рывками и так же разлетаются они.
WTF? _WolfGames3D.com / Все в Tanks Heroes Вконтакте!
Аватара пользователя
WebWolf
Старожил
 
Сообщения: 532
Зарегистрирован: 19 дек 2009, 15:49
Откуда: Russian Federation
  • Сайт
  • ICQ

Re: Синхронизация столкновений по сети.

Сообщение Kayler 11 сен 2012, 22:37

та же проблема.. при столкновении машин машины не врезаются а ездят друг по другу, как будто перед треугольный
Аватара пользователя
Kayler
Адепт
 
Сообщения: 1038
Зарегистрирован: 25 авг 2010, 23:49
Откуда: Чувашия

Re: Синхронизация столкновений по сети.

Сообщение IDoNotExist 12 сен 2012, 05:22

Сервер пойди не авторитарный? Либо синхронизируете позицию Rigidbody, что плохо сказывается на рассчете физики.
Тема похожая была, я там советовал как можно побороть http://www.unity3d.ru/distribution/viewtopic.php?f=5&t=10108
IDoNotExist писал(а):
Diab10 писал(а):Надо как то решить проблему с разлётами, а так всё норм

Легко сказать:), без костыля не обойтись полюбому, один выход который я вижу: не синхронизировать позицию Rigidbody, синхронизировать только velocity и angularVelocity и при разнице позиций на клиентах додвигать его до нужного места "силами" AddForce.

Вот смотрите: получается что на каком - либо клиенте А, Rigidbody игрока - клиента является источником данных для другого клиента В (клиентов), в то же время клиент A является приемником данных от клиента B, клиент B у вас передает позицию своего Rigidbody, а двигать Rigidbody как известно из документации нужно только силами, во избежания проблем которые возникли у вас. То же самое возникнет без всяких сетей, если просто попробуете сдвинуть позицию Rigidbody внутрь другого Rigidbody/Коллайдера.

UPD. Еще метод придумал, синхронизировать позицию в нем можно, даже нужно, но перед этим делать Rigidbody.SweepTest, от предыдущей позиции, и если SweepTest натыкается на другой Rigidbody, корректировать полученную позицию так чтобы он не оказался внутри (достаточно её сместить на полученный RaycastHit.distance, и Rigidbody окажется впритык к другому).
Аватара пользователя
IDoNotExist
Адепт
 
Сообщения: 1432
Зарегистрирован: 23 мар 2011, 09:18
Skype: iamnoexist

Re: Синхронизация столкновений по сети.

Сообщение WebWolf 12 сен 2012, 12:42

Photon Cload
Короче как мы выяснили это из за ригидбоди. Попробуй его отрубить на сетевых машинах.. и он будут врезаться как каменные но уже что то :) остается настроить ригидбоди.
WTF? _WolfGames3D.com / Все в Tanks Heroes Вконтакте!
Аватара пользователя
WebWolf
Старожил
 
Сообщения: 532
Зарегистрирован: 19 дек 2009, 15:49
Откуда: Russian Federation
  • Сайт
  • ICQ

Re: Синхронизация столкновений по сети.

Сообщение IDoNotExist 12 сен 2012, 15:12

WebWolf писал(а):Photon Cload

Не знаю такого, знаю только Photon Cloud.

WebWolf писал(а):Короче как мы выяснили это из за ригидбоди. Попробуй его отрубить на сетевых машинах.. и он будут врезаться как каменные но уже что то :) остается настроить ригидбоди.

Щито? А как физика будет без Rigidbody вычисляться?

И при чем тут его настройки, вы ж вначале сказали что проблемы из-за синхронизации, начали за здравие, а закончили за упокой.
Аватара пользователя
IDoNotExist
Адепт
 
Сообщения: 1432
Зарегистрирован: 23 мар 2011, 09:18
Skype: iamnoexist

Re: Синхронизация столкновений по сети.

Сообщение Syberex 12 сен 2012, 17:46

А как у вас танки движуться? rigidbody.velocity или transform.Translate() ?
Аватара пользователя
Syberex
Адепт
 
Сообщения: 2292
Зарегистрирован: 14 янв 2011, 20:35
Откуда: Кострома
  • Сайт

Re: Синхронизация столкновений по сети.

Сообщение mrcoder 20 сен 2012, 12:26

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

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

з.ы. неужели в фотоне нет простого байтового обмена клиента с сервером?(реализуйте через него, то что неполучается. рассчитывать столкновения игроков, пусть и грубо,-пара пустяков). или к фотону даже полноценного экстендера нету?.
Аватара пользователя
mrcoder
Старожил
 
Сообщения: 704
Зарегистрирован: 28 июн 2012, 22:40

Re: Синхронизация столкновений по сети.

Сообщение troyanich 04 окт 2012, 18:50

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

не понятно как всё же вы решили проблему (popcorn1)
troyanich
UNIт
 
Сообщения: 120
Зарегистрирован: 14 июл 2010, 17:18
Откуда: Волгоград
  • ICQ

Re: Синхронизация столкновений по сети.

Сообщение WebWolf 04 окт 2012, 20:56

troyanich писал(а):
Короче как мы выяснили это из за ригидбоди. Попробуй его отрубить на сетевых машинах.. и он будут врезаться как каменные но уже что то остается настроить ригидбоди.

не понятно как всё же вы решили проблему (popcorn1)

Нет не решили.. пока с отключенным ригидбоди :(
WTF? _WolfGames3D.com / Все в Tanks Heroes Вконтакте!
Аватара пользователя
WebWolf
Старожил
 
Сообщения: 532
Зарегистрирован: 19 дек 2009, 15:49
Откуда: Russian Federation
  • Сайт
  • ICQ


Вернуться в Photon

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

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