Список онлайна

Сеть в Unity3D

Список онлайна

Сообщение troyanich 02 июл 2011, 10:55

Здравствуйте! Появилась задача для проекта сделать мультиплеер. Для этого нужно построение списка игроков в онлайне. Может уже кто-нибудь сталкивался с такой задачей? Очень необходим правильный совет
troyanich
UNIт
 
Сообщения: 120
Зарегистрирован: 14 июл 2010, 17:18
Откуда: Волгоград
  • ICQ

Re: Список онлайна

Сообщение Lestar 02 июл 2011, 11:19

Вам при коннекте к нужно передавать какой либо идентификатор пользователя и писать его в коллекцию на уровне сервера.Через определенный промежуток времени проверять сессии,на случай случайного разрыва.При необходимости список подчищать.При выходе пользователя опять же правим список. В общих чертах алгоритм такой.
Lestar
UNIт
 
Сообщения: 114
Зарегистрирован: 05 июн 2011, 02:36

Re: Список онлайна

Сообщение troyanich 02 июл 2011, 11:40

Можете подробнее описать как это сделать. Не знаю важно ли это , но работать должно с мобильными платформами
troyanich
UNIт
 
Сообщения: 120
Зарегистрирован: 14 июл 2010, 17:18
Откуда: Волгоград
  • ICQ

Re: Список онлайна

Сообщение troyanich 02 июл 2011, 11:43

Думаю что обычного хостинга под сайте здесь не хватит, нужен VPS
troyanich
UNIт
 
Сообщения: 120
Зарегистрирован: 14 июл 2010, 17:18
Откуда: Волгоград
  • ICQ

Re: Список онлайна

Сообщение Lestar 02 июл 2011, 11:54

На уровне сервера есть какой то Dictionary<id, name>.При коннекте пользователя,вы добавляете его в эту коллекцию и в случае разрыва/выхода пользователя с ней оперируете.Для того,чтобы просмотреть список онлайн,вам нужно будет ее прочесть и вывести.У вас реальное отображение пользователей онлайн будет запаздывать на вашу дельту проверки сессии.То есть возможны варианта,когда пользователь вышел,но он еще висит в списке.Я не вижу смысла проверять сессии чаще чем раз 3-5 секунд.
Как подробнее расписать хз,на этом форуме не принято за других код писать.
Lestar
UNIт
 
Сообщения: 114
Зарегистрирован: 05 июн 2011, 02:36

Re: Список онлайна

Сообщение troyanich 02 июл 2011, 12:13

на чём писать хотя бы скажите. что из себя должен представлять сервер?
troyanich
UNIт
 
Сообщения: 120
Зарегистрирован: 14 июл 2010, 17:18
Откуда: Волгоград
  • ICQ

Re: Список онлайна

Сообщение troyanich 02 июл 2011, 13:21

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

Re: Список онлайна

Сообщение Lestar 02 июл 2011, 13:28

У вас же мультиплеер.Что то же должно выполнять функцию сервера.Если у вас сервер создается на стороне клиента,тогда вам нужен какой то свой global statistic сервер,который будет собирать статистику о запущенных серверах,а с них уже считывать коннекты пользователей.Я не вижу общей картины проекта.Глобальный сервер статистики на чем хотите,на том и пишите.Хоть на php.При создании игрового сервера на него будет отправляться пакет с данными сервера и дальше по вышеописанному.Но на мобильной платформе я бы не делал игровые сервера на стороне клиента.
Lestar
UNIт
 
Сообщения: 114
Зарегистрирован: 05 июн 2011, 02:36

Re: Список онлайна

Сообщение troyanich 02 июл 2011, 13:48

получается что нужно серверу пинговать постоянно клиенты? либо клиентам постоянно что-то отсылать на сервер, т.е. записывать в базу данных?
troyanich
UNIт
 
Сообщения: 120
Зарегистрирован: 14 июл 2010, 17:18
Откуда: Волгоград
  • ICQ

Re: Список онлайна

Сообщение Lestar 02 июл 2011, 13:57

У вас между клиентом и сервером и так постоянно идет обмен траффиком.Мне кажется мы говорим немного на разных языках.Я не знаю нужна вам БД или не нужна.Если это обычный шутер,она и на не на.Если какая то стратегия/рпг,где существует вариант прокачки и необходимость сохранения этих данных,вам без нее не обойтись.Мне наш диалог напоминает
-А может?
--Не стоит
-А если?
--Нет,только не это
-А вот так?
--А так попробуйте

При всем уважении у меня нет желания тратить время на угадывание в чем заключается мультиплеерность,жанр игры ,какие требования к серверу и т.д. и т.п.
Lestar
UNIт
 
Сообщения: 114
Зарегистрирован: 05 июн 2011, 02:36

Re: Список онлайна

Сообщение troyanich 02 июл 2011, 14:07

сервер нужен только для регистрации, авторизации и формирования списка онлайн, ну и допустим ведения счёта. игра создаваться будет напрямую между двумя устройствами.
troyanich
UNIт
 
Сообщения: 120
Зарегистрирован: 14 июл 2010, 17:18
Откуда: Волгоград
  • ICQ

Re: Список онлайна

Сообщение Lestar 02 июл 2011, 14:26

В этом случае вам нужна БД для регистрации и авторизации.При коннекте пользователя шлем серверу пакет данных о том,что пользователь подключился,пишем его в список подключенных,но не играющих пользователей.Согласно какой то логике ищем ему оппонента.Нашли,подключаем на уровне сервера одного игрока к другому.Вычеркиваем обоих из списка ожидающих не играющих.Если один из игроков вышел,оставшегося опять в список.Во время игры опрашиваем раз в несколько секунд обоих игроков играет/не играет(на вариант случайного дисконнекта).Параллельно если нужно держим список с состоявшимися игровыми парами.В зависимости от нужд вывода онлайн,опрашиваем наши списки.При вышеописанном раскладе мы можем выводить:
-ожидает партнера
-играет пар
-общее число игроков
Lestar
UNIт
 
Сообщения: 114
Зарегистрирован: 05 июн 2011, 02:36

Re: Список онлайна

Сообщение troyanich 02 июл 2011, 14:37

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


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

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

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