Делаю мультиплеер. - Форум Игроделов
Чт, 02 Май 2024, 11:51 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум Игроделов » UNITY3D » СКРИПТИНГ » Делаю мультиплеер. (В этом новичек.)
Делаю мультиплеер.
VolkOrievithДата: Чт, 24 Сен 2015, 19:36 | Сообщение # 1
Нет аватара
 
Сообщений: 222
Награды: 0
Репутация: 53
Статус: Offline
Нужна помощь. Игра про танки.

Основа на ригидбоди и wheel collider.
Схема такая:
скрипт Tracks управляет колесами.
скрипт Turret управляет башней и инстантирует снаряд.
снаряд посылает луч и инстантирует эффект взрыва.

Написал в скрипте Tracks, чтобы он не воспринимал Input, если !networkView.isMine.

Как синхронизировать все по сети?
Я погуглил, посмотрел мануал... Понял, что способов не мало, но либо с пониманием туго, либо еще что-то.

Поставил на корпус и башню танка NetworkView. Запустил в юне сервер, а на билде клиент. Визуально - как будто работает, но как будто высокий пинг, дергается при езде. На сервере выглядит хорошо, как надо. Когда на клиенте стреляю по серверу, на клиенте отдачу видно, а на сервере - нет. Когда на сервере стреляю по клиенту, на клиенте танк сервера начинает мерцать, и кик будто проподает с сцены, но на сервере такого нет. Так же танки клиента и сервера плохо взаимодействуют (ригидбоди). Реагируют друг на друга сликом резко. Еще не проходит урон при выстреле, хотя снаряд инстантиирую через Network.Instantiate .

Геймплей офф-лайн уже готов. Есть AI танки, все такое... Даже можно поиграть прикольный бой. Но не знаю, как сделать из этого мультиплеер.
p.s.
Чтобы не тратить время на скрипты соединения сервера - клиента, нашел в Хабрахабре учебный проектик по Networking и качнул его.


Сообщение отредактировал VolkOrievith - Чт, 24 Сен 2015, 19:48
 
СообщениеНужна помощь. Игра про танки.

Основа на ригидбоди и wheel collider.
Схема такая:
скрипт Tracks управляет колесами.
скрипт Turret управляет башней и инстантирует снаряд.
снаряд посылает луч и инстантирует эффект взрыва.

Написал в скрипте Tracks, чтобы он не воспринимал Input, если !networkView.isMine.

Как синхронизировать все по сети?
Я погуглил, посмотрел мануал... Понял, что способов не мало, но либо с пониманием туго, либо еще что-то.

Поставил на корпус и башню танка NetworkView. Запустил в юне сервер, а на билде клиент. Визуально - как будто работает, но как будто высокий пинг, дергается при езде. На сервере выглядит хорошо, как надо. Когда на клиенте стреляю по серверу, на клиенте отдачу видно, а на сервере - нет. Когда на сервере стреляю по клиенту, на клиенте танк сервера начинает мерцать, и кик будто проподает с сцены, но на сервере такого нет. Так же танки клиента и сервера плохо взаимодействуют (ригидбоди). Реагируют друг на друга сликом резко. Еще не проходит урон при выстреле, хотя снаряд инстантиирую через Network.Instantiate .

Геймплей офф-лайн уже готов. Есть AI танки, все такое... Даже можно поиграть прикольный бой. Но не знаю, как сделать из этого мультиплеер.
p.s.
Чтобы не тратить время на скрипты соединения сервера - клиента, нашел в Хабрахабре учебный проектик по Networking и качнул его.

Автор - VolkOrievith
Дата добавления - 24 Сен 2015 в 19:36
NapalmRainДата: Пт, 25 Сен 2015, 10:34 | Сообщение # 2
 
Сообщений: 473
Награды: 0
Репутация: 31
Статус: Offline
Цитата VolkOrievith ()
Визуально - как будто работает, но как будто высокий пинг, дергается при езде.

Советую погуглить в сторону интерполяции. Методика предназначенная как раз для сглаживания движений в данном контексте.
 
Сообщение
Цитата VolkOrievith ()
Визуально - как будто работает, но как будто высокий пинг, дергается при езде.

Советую погуглить в сторону интерполяции. Методика предназначенная как раз для сглаживания движений в данном контексте.

Автор - NapalmRain
Дата добавления - 25 Сен 2015 в 10:34
VolkOrievithДата: Вт, 29 Сен 2015, 14:11 | Сообщение # 3
Нет аватара
 
Сообщений: 222
Награды: 0
Репутация: 53
Статус: Offline
Насчет интерполяции, я так понял, это самому надо скрипт писать, встроенного в юне нет такого. Lerp'ом сглаживать дрожания.
А можно так сделать, чтобы ригидбоди было на сервере, а скрипт Tracks на клиенте, он бы отправлял серверу значения силы вращения и торможения колес, сервер бы все просчитывал и отправлял бы клиенту только позицию танка? Чтобы не было проблем с ригидбоди и на сервере, и на клиенте.
Если кто знает хороший пример мультиплеера в свободном доступе, может поделитесь ссылочкой? То, что качнул с Хабрахабра - совсем чуть-чуть, и большей частью не пашет.

Добавлено (29 Сен 2015, 14:11)
---------------------------------------------
Спасибо огромное, такая щедрость, такая помощь... Я прям сразу понял все про Unity Networking, прям до слез, какой форум хороший.


Сообщение отредактировал VolkOrievith - Вт, 29 Сен 2015, 14:12
 
СообщениеНасчет интерполяции, я так понял, это самому надо скрипт писать, встроенного в юне нет такого. Lerp'ом сглаживать дрожания.
А можно так сделать, чтобы ригидбоди было на сервере, а скрипт Tracks на клиенте, он бы отправлял серверу значения силы вращения и торможения колес, сервер бы все просчитывал и отправлял бы клиенту только позицию танка? Чтобы не было проблем с ригидбоди и на сервере, и на клиенте.
Если кто знает хороший пример мультиплеера в свободном доступе, может поделитесь ссылочкой? То, что качнул с Хабрахабра - совсем чуть-чуть, и большей частью не пашет.

Добавлено (29 Сен 2015, 14:11)
---------------------------------------------
Спасибо огромное, такая щедрость, такая помощь... Я прям сразу понял все про Unity Networking, прям до слез, какой форум хороший.

Автор - VolkOrievith
Дата добавления - 29 Сен 2015 в 14:11
Форум Игроделов » UNITY3D » СКРИПТИНГ » Делаю мультиплеер. (В этом новичек.)
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2024