RPC, помогите рещить проблему с косяками после выстрелов..

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

RPC, помогите рещить проблему с косяками после выстрелов..

Сообщение KorsaiR 23 окт 2012, 18:24

Всем приветь!:) в кузне выкладывал свой проект "космическая мультиплеерная леталка".можете ознкомиться, полетать, весело там. Хотя версия уже обновилась (много сделал работы над графикой и т.п). Так вот. Недавно при тесте с друзьями выявил баг: игроки подсоеденяются нормально до тех пор, пока кто - то не выстрелит/убьётся об что - то/убьет другого. После чего то из этого списка - у того, кто пытается присоедениться тупо игра зависает.Причём во время этого зависания другие наблюдают кучу взрывов, создания вспышек(как от попадания снаряда в астероид например) и т.п. вообщем спавнится что -попало,но не новый игровозможно я напортачил с тем, что..как сказать..вообщем каждый выстрел,взрыв и т.п..все обьекты, которые создаются в игре(при выстреле или смерти допустим) создаются просто через Network.Instantiate.то есть я думаю нужно сделать, чтобы вместо обработки этого на клиенте, это обрабатывалось на сервере. то есть..блигн как бы обьяснить чтобы вас не запутать))
вообщем сейчас вот так:
Синтаксис:
Используется csharp
if(Input.GetMouseButton(0))if(timer <= 0){//если зажимаем лкм, если перерыв между выстрелами прошел
                                       
                                        Network.Instantiate(bull, spawning.position, camera.rotation,1);//спавним обьект "пуля" в точке спавна около пушки
                                       
               
                                       
                                        timer = 0.2f;//ну, и паузу снова ставим.
                                       
                                       
                                }
                       


но это вызывает у меня сомнения, а поскольку я пока что не очень разбираюсь именно в сетевом коде, то я вообще в заблуждении. Что можете подсказать?только не кидайте меня в справку пожалуйста, я там уже всё обсмотрел, и многому оттуда научился.но сейчас мне хочется именно услышать ваши отзывы.
З.Ы: кстати ребят, кому интересно- добавляемся вк! :) http://vk.com/korsair1997 помогу вам в скриптах(вам, всмысле я обращаюсь к новичкам), да и в моделировании довольно силён :)
Последний раз редактировалось KorsaiR 29 окт 2012, 14:08, всего редактировалось 2 раз(а).
Мои игры: Sunrise, Fireground, Spacerift
Sunrise: _www.sunsurv.ru , _https://store.steampowered.com/app/6631 ... _survival/
Fireground: _https://store.steampowered.com/app/1026 ... ND/?beta=0
Spacerift: _https://vk.com/spacerift
Аватара пользователя
KorsaiR
Старожил
 
Сообщения: 797
Зарегистрирован: 09 июл 2012, 12:20
Откуда: Новосибирск
Skype: pwiliya

Re: RPC, выстрел(подскажите как сделать лучше..)

Сообщение Kayler 23 окт 2012, 18:50

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

Re: RPC, выстрел(подскажите как сделать лучше..)

Сообщение KorsaiR 23 окт 2012, 19:07

не от частоты зависит.вот я создаю сервак. ко мне подсоеденяются - всё ок. стоит кому - то выстрелить, и после этого у тех кто пытается подсоедениться игра виснет, а у тех, кто подсоеденился уже - игра норм работает.
Мои игры: Sunrise, Fireground, Spacerift
Sunrise: _www.sunsurv.ru , _https://store.steampowered.com/app/6631 ... _survival/
Fireground: _https://store.steampowered.com/app/1026 ... ND/?beta=0
Spacerift: _https://vk.com/spacerift
Аватара пользователя
KorsaiR
Старожил
 
Сообщения: 797
Зарегистрирован: 09 июл 2012, 12:20
Откуда: Новосибирск
Skype: pwiliya

Re: RPC, выстрел(подскажите как сделать лучше..)

Сообщение KorsaiR 23 окт 2012, 19:09

если хочешь можешь сам протестить - http://NF-studiogames.taba.ru/fid/ZmlsZ ... os(minimum).exe

создаешь сервак, подсоеденяешься сам к себе(вводишь свой ip), пробуешь пострелять и подсоеденяешься снова.)
Мои игры: Sunrise, Fireground, Spacerift
Sunrise: _www.sunsurv.ru , _https://store.steampowered.com/app/6631 ... _survival/
Fireground: _https://store.steampowered.com/app/1026 ... ND/?beta=0
Spacerift: _https://vk.com/spacerift
Аватара пользователя
KorsaiR
Старожил
 
Сообщения: 797
Зарегистрирован: 09 июл 2012, 12:20
Откуда: Новосибирск
Skype: pwiliya

Re: RPC, выстрел(подскажите как сделать лучше..)

Сообщение Kayler 23 окт 2012, 19:22

KorsaiR писал(а):если хочешь можешь сам протестить - http://NF-studiogames.taba.ru/fid/ZmlsZ ... os(minimum).exe

создаешь сервак, подсоеденяешься сам к себе(вводишь свой ip), пробуешь пострелять и подсоеденяешься снова.)

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

Re: RPC, выстрел(подскажите как сделать лучше..)

Сообщение KorsaiR 23 окт 2012, 19:25

тогда попробуй подсоедениться, убить один корабль и присоедениться)
Мои игры: Sunrise, Fireground, Spacerift
Sunrise: _www.sunsurv.ru , _https://store.steampowered.com/app/6631 ... _survival/
Fireground: _https://store.steampowered.com/app/1026 ... ND/?beta=0
Spacerift: _https://vk.com/spacerift
Аватара пользователя
KorsaiR
Старожил
 
Сообщения: 797
Зарегистрирован: 09 июл 2012, 12:20
Откуда: Новосибирск
Skype: pwiliya

Re: RPC, выстрел(подскажите как сделать лучше..)

Сообщение Kayler 23 окт 2012, 19:28

KorsaiR писал(а):тогда попробуй подсоедениться, убить один корабль и присоедениться)

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

Re: RPC, выстрел(подскажите как сделать лучше..)

Сообщение Kann 23 окт 2012, 19:33

KorsaiR писал(а):Причём во время этого зависания другие наблюдают кучу взрывов, создания вспышек(как от попадания снаряда в астероид например) и т.п. вообщем спавнится что -попало

скорей всего это происходит из за buffered RPC call. смотрите в своем коде как вы уничтожаете объекты, посмотрите как это реализовано в уроке M2N
Kann
Старожил
 
Сообщения: 553
Зарегистрирован: 05 ноя 2009, 14:06

Re: RPC, выстрел(подскажите как сделать лучше..)

Сообщение KorsaiR 23 окт 2012, 19:40

точно..вот про уничтожение возможно тема правильно зашла, они удаляются простым Destroy..раньше делал Network Destroy, но почему то из за этого происходили ошибки в дебаг окне..хотя и network view вроде на всех обьектах был..
Мои игры: Sunrise, Fireground, Spacerift
Sunrise: _www.sunsurv.ru , _https://store.steampowered.com/app/6631 ... _survival/
Fireground: _https://store.steampowered.com/app/1026 ... ND/?beta=0
Spacerift: _https://vk.com/spacerift
Аватара пользователя
KorsaiR
Старожил
 
Сообщения: 797
Зарегистрирован: 09 июл 2012, 12:20
Откуда: Новосибирск
Skype: pwiliya

Re: RPC, выстрел(подскажите как сделать лучше..)

Сообщение Kann 23 окт 2012, 19:47

у вас должно быть так
Синтаксис:
Используется csharp
 Network.RemoveRPCs(networkView.viewID);
        Network.Destroy(gameObject);

после каждого объекта созданным с помощью Network.Instantiate
и то не факт что будет все ок, раньше это глючило, хз поправили или нет, смотрите реализацию фикса в M2N
Kann
Старожил
 
Сообщения: 553
Зарегистрирован: 05 ноя 2009, 14:06

Re: RPC, выстрел(подскажите как сделать лучше..)

Сообщение KorsaiR 23 окт 2012, 20:28

пасиб :) буду пробовать)
Мои игры: Sunrise, Fireground, Spacerift
Sunrise: _www.sunsurv.ru , _https://store.steampowered.com/app/6631 ... _survival/
Fireground: _https://store.steampowered.com/app/1026 ... ND/?beta=0
Spacerift: _https://vk.com/spacerift
Аватара пользователя
KorsaiR
Старожил
 
Сообщения: 797
Зарегистрирован: 09 июл 2012, 12:20
Откуда: Новосибирск
Skype: pwiliya

Re: RPC, выстрел(подскажите как сделать лучше..)

Сообщение KorsaiR 24 окт 2012, 07:33

и всё равно игра виснет когда после выстрелов пытаюсь ещё подключить клиентов..скрипты ,где обьекты уничтожаются вот в таком виде:
Синтаксис:
Используется csharp
 public void OnCollisionEnter(Collision obj)//это скрипт снаряда. при столкновении с чем то

               

    {   Network.Instantiate(syst,transform.position,transform.rotation,0);//создается система частиц

                 Network.RemoveRPCs(networkView.viewID);

         Network.Destroy(gameObject);//сам снаряд уничтожается



               

               

               

        }

ещё пытался сделать так:
Синтаксис:
Используется csharp
void OnCollisionEnter(Collision obj){
         networkView.RPC("de", RPCMode.All, new Vector3());
}

[RPC]

        public void de(Vector3 location){

               

                Network.Instantiate(syst,transform.position,transform.rotation,0);

                Network.Destroy(gameObject);

               

        }



 

но результат один и тот же, игра виснет когда другие подсоеденяются после выстрелов..
Мои игры: Sunrise, Fireground, Spacerift
Sunrise: _www.sunsurv.ru , _https://store.steampowered.com/app/6631 ... _survival/
Fireground: _https://store.steampowered.com/app/1026 ... ND/?beta=0
Spacerift: _https://vk.com/spacerift
Аватара пользователя
KorsaiR
Старожил
 
Сообщения: 797
Зарегистрирован: 09 июл 2012, 12:20
Откуда: Новосибирск
Skype: pwiliya

Re: RPC, выстрел(подскажите как сделать лучше..)

Сообщение Kann 24 окт 2012, 11:20

KorsaiR писал(а):но результат один и тот же, игра виснет когда другие подсоеденяются после выстрелов..

ну уничтожается в первом коде RPC вызовы от самого снаряда, а от системы частиц которую вы инстансите через Network.Instantiate где уничтожение ?
к тому же я писал, что раньше это глючило, и RemoveRPCs толком не работало, отсюда я вам и дал ссылку на урок от M2N там показанно как обойти эту проблему
Kann
Старожил
 
Сообщения: 553
Зарегистрирован: 05 ноя 2009, 14:06

Re: RPC, выстрел(подскажите как сделать лучше..)

Сообщение eligma 25 окт 2012, 01:24

всё равно игра виснет когда после выстрелов

так это элементарно у тебя еще комп видать слабоватый. Грузяи сами префабы пуль их очень много получаются и все летят. делай например через 2 сек на префабе пули скрипт дестрой. такое у меня тоже в игре. щас все лучом делают а не пулями.
Gleeko Multiplayer Gameplay------Знаете ли вы что протокол IPV6 в 1 000 000 раз превышает по возможностям протокол IPV4? А также протокол IPV6 официально был запущен в прошлом году 6.06 числа в 6 часов утра. Это событие отмечали во всем мире.
Аватара пользователя
eligma
Старожил
 
Сообщения: 778
Зарегистрирован: 29 фев 2012, 03:35
  • Сайт

Re: RPC, выстрел(подскажите как сделать лучше..)

Сообщение KorsaiR 25 окт 2012, 12:44

3.0 ghc x2, 4gb OЗУ (ddr3), Radeon 5700 series(ddr5). Не в компе дело,говорю ж, другие даже не могут подсоедениться
Мои игры: Sunrise, Fireground, Spacerift
Sunrise: _www.sunsurv.ru , _https://store.steampowered.com/app/6631 ... _survival/
Fireground: _https://store.steampowered.com/app/1026 ... ND/?beta=0
Spacerift: _https://vk.com/spacerift
Аватара пользователя
KorsaiR
Старожил
 
Сообщения: 797
Зарегистрирован: 09 июл 2012, 12:20
Откуда: Новосибирск
Skype: pwiliya

След.

Вернуться в Почемучка

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

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