Вопросы по оф. уроку "Network" \ свой сервер и другое

Сеть в Unity3D

Вопросы по оф. уроку "Network" \ свой сервер и другое

Сообщение Nolex 19 янв 2011, 18:42

Здравствуйте!

Скажите, в уроке Network Tutorial есть скрипт "NetworkRigidbody.cs", а в этом скрипте есть два параметра:
public double m_InterpolationBackTime = 0.1;
public double m_ExtrapolationLimit = 0.5;

За что отвечают эти переменные?

Дальше такой вопрос:

Моя ситуация. Есть простая игра гонок. Как только зашло, например, 4 человека на сайт, нажали кнопку "ГОТОВ", игра запускаеться и начинаются гонки..
Тоесть чтобы НЕ пользователи (игроки) сами запускали Сервера и играли друг с другом по типу Counter Strike, а рулил именно сервер..

Что можете посоветовать? Может примеры какие-то доступные есть?
Насколько сложно переделать схему работы в Network Example на такую, где рулит сервер?

Заранее спасибо!
Разработка игр в студии Brinemedia .
Аватара пользователя
Nolex
UNIверсал
 
Сообщения: 483
Зарегистрирован: 17 окт 2010, 12:26
Откуда: Украина
Skype: exlumen
  • Сайт
  • ICQ

Re: Вопросы по оф. уроку "Network" \ свой сервер и другое

Сообщение stash 19 янв 2011, 23:55

public double m_InterpolationBackTime = 0.1; задержка интерполяции
Про это читай здесь http://developer.valvesoftware.com/wiki ... working:ru

public double m_ExtrapolationLimit = 0.5; максимальное время экстраполяции
Если данных о местоположении объекта давно нет (проблемы с сетью), то клиент пытается предположить, где находиться объект на основании предшествующих данных о скорости, положении, угловой скорости, кватернионе объекта, которые он получил от сервера. И будет он это делать на протяжении времени m_ExtrapolationLimit, после этого погрешность считается слишком большой, чтобы ее можно было предположить, где находится объект.

Вообще это описано получше в M2H Networking Tutorial. Перевод http://www.unity3d.ru/distribution/view ... =11&t=2220.

В качестве ответа на второй вопрос рекомендую еще раз прочитать M2H Networking Tutorial. По времени - месяц, пока разберешься, а потом собственно переделывать неделя.

В официальном проекте от Юнити - Networking есть папка Authoritative Server и там все скрипты, что нужны для построения авторитетной сетевой архитектуры. Включая скрипт GraduallyUpdateState в котором реализовано самое сложное (для меня по крайней мере) - Client Side Prediction.
stash
UNец
 
Сообщения: 5
Зарегистрирован: 26 дек 2010, 22:47

Re: Вопросы по оф. уроку "Network" \ свой сервер и другое

Сообщение Nolex 21 янв 2011, 00:22

stash, большое спасибо за подробный ответ! :-bd

По поводу второго вопроса, я, наверное, неправильно изложил свою мысль.

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

Мне в принципе это не нужно пока, я просто хочу запустить сервер на собственном VPS, который выполнял бы роль хоста. То есть, чтоб не было такого, что для того чтоб поиграть, одному из игроков приходилось создавать свой сервер и к нему уже подключался народ. А чтоб все непосредственно подключались к VPS.. Как-то так. Может я некорректно немного объяснил, поправьте пожалуйста, но в целом суть должна быть понятна.

Вот я думаю мне надо что-то подобное(да?):
http://unity3d.com/master-server/index.html
http://unity3d.com/support/documentatio ... Build.html
http://unity3d.com/support/documentatio ... erver.html
Если да, то хотелось бы почитать\посмотреть какие-то доступные уроки по этому делу!

Нужен Ваш совет! Заранее спасибо.
Разработка игр в студии Brinemedia .
Аватара пользователя
Nolex
UNIверсал
 
Сообщения: 483
Зарегистрирован: 17 окт 2010, 12:26
Откуда: Украина
Skype: exlumen
  • Сайт
  • ICQ

Re: Вопросы по оф. уроку "Network" \ свой сервер и другое

Сообщение stash 21 янв 2011, 01:39

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

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

Если первое - то посмотри на Call Of Duty MF2 Multiplayer. Там люди просто выбирают тип игры в который хотят поиграть, а все остальное делает за них игра. Из лобби автоматически выбирается один человек с реальным IP и назначается сервером, причем он об этом даже не знает, а все остальные подключаются к нему.

Если второе - ну это все равно авторитетный сервер.
А почитать - если английский знаешь, то для начала - http://www.gafferongames.com/networking ... networking.

Ну и вообще весь раздел будет полезен http://gafferongames.com/networking-for ... ogrammers/
stash
UNец
 
Сообщения: 5
Зарегистрирован: 26 дек 2010, 22:47

Re: Вопросы по оф. уроку "Network" \ свой сервер и другое

Сообщение Nolex 21 янв 2011, 12:25

stash писал(а):Сформулируй чего именно ты не хочешь - чтобы игрок нажимал кнопку "создать сервер", а остальные подключались к нему - или ты хочешь постояннодействующий сервер по типу любой MMO.

Вообще я хочу второй вариант. Чтоб был сервер по типу ММО.
А чего НЕ хочу, так что это чтоб из-за плохо интернета игрока-сервера, страдали все игроки-клиенты. Тоесть, если у меня интернет очень медленный и я создам Start Server, то все будут лагать :)

Вот такой вариант, как вэтой игре мне, наверное, подойдет(в меню жать Multi-Player) — http://www.gamevial.com/playgames.php?g ... likeabird3 (кстати веселая игра ) :)

Пользователь gnoblin посоветовал мне установить что-то типа smartFox \ ElectroServer и т д.
Разработка игр в студии Brinemedia .
Аватара пользователя
Nolex
UNIверсал
 
Сообщения: 483
Зарегистрирован: 17 окт 2010, 12:26
Откуда: Украина
Skype: exlumen
  • Сайт
  • ICQ

Re: Вопросы по оф. уроку "Network" \ свой сервер и другое

Сообщение stash 21 янв 2011, 13:45

В этой игре после того как ты нажал Log in появляется список серверов на которых ты можешь поиграть. Возможно серверами выступают игроки, но скорее всего один компьютер со множеством постоянно запущенных сессий сервера. Но в таком случае реализация не отличается от обычного авторитетного сервера. Просто получается что каждый сервер выделенный, и сам одним из игроков не является.
В любом случае чтобы сделать доступ к этим отдельным серверам, как сделано в этой игре нужно курить-читать мастер сервер. В M2H туториале есть реализация мастер сервера. Так что про него и читать.
stash
UNец
 
Сообщения: 5
Зарегистрирован: 26 дек 2010, 22:47


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

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

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